Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> :first-child i :last-child nie działa
siutek
post 24.10.2017, 19:05:08
Post #1





Grupa: Zarejestrowani
Postów: 173
Pomógł: 1
Dołączył: 26.10.2005
Skąd: Toruń

Ostrzeżenie: (0%)
-----


Witam,
tworzę sobie widok tabelaryczny z następującym układem:

  1. <div class="postsDiv">
  2. <div class="postRow">1</div>
  3. <div class="postRow">2</div>
  4. <div class="postRow">3</div>
  5. </div>


css:
  1. .postsDiv {
  2. width: ~"calc(100% - 100px)";
  3. padding: 20px 50px;
  4. text-align: center;
  5. }
  6. .postRow {
  7. background-color: #fff;
  8. border-radius: 5px;
  9. padding: 15px;
  10. margin-bottom: 10px;
  11. text-align: left;
  12. font-size: 14px;
  13. border-bottom: 2px solid transparent;
  14. }
  15. .postRow:first-child {
  16. margin-top:30px;
  17. }
  18. .postRow:last-child {
  19. margin-bottom:30px;
  20. }


zapisałem calc w taki a nie inny sposób gdyż do generowania cssa korzystam z lessa


Chciałbym aby nad pierwszym elementem na liście zawsze był margines 30px, ten sam odstęp musi się znajdować pod ostatnim elementem. Dlatego wykorzystałem następujący zapis:

Niestety instrukcje first-child i last-child nie działają :/

Drugie pytanie:

Jak zrobić by mając tylko jeden element z klasą .postRow zastosowanie do niego miała pseudoklasa zarówno first-child jak i last:child? Tak by przy jednym wyświetlanym wierszu nad nim i pod nim był margines?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
NetPax
post 24.10.2017, 19:16:10
Post #2





Grupa: Zarejestrowani
Postów: 33
Pomógł: 1
Dołączył: 30.11.2011

Ostrzeżenie: (0%)
-----


Hej,

a to nie powinno być tak

  1. .postsDiv:first-child div {
  2. margin-top:30px;
  3. }


Ten post edytował NetPax 24.10.2017, 19:16:57
Go to the top of the page
+Quote Post
siutek
post 24.10.2017, 20:05:46
Post #3





Grupa: Zarejestrowani
Postów: 173
Pomógł: 1
Dołączył: 26.10.2005
Skąd: Toruń

Ostrzeżenie: (0%)
-----


Cytat(NetPax @ 24.10.2017, 20:16:10 ) *
Hej,

a to nie powinno być tak

  1. .postsDiv:first-child div {
  2. margin-top:30px;
  3. }


Próbowałem tak, tylko zamiast .postsDiv:first-child div wpisałem .postsDiv:first-child .postRow - muszę się ograniczyć tylko do elementów z klasą .postRow, bo mam tez inne divy w tym kontenerze.
Niestety powyższy zapis nie zadziałał jak należy. Skutkiem działania kodu było to, że KAŻDY element z klasą .postRow przyjął wartość z :last-child, czyli margin-bottom:30px;

trueblue: Natomiast mój pierwotny kod, który twierdzisz, że działa, w moim przypadku nie działa wcale. nawet z instrukcją !inportant (tak na wszelki wypadek, bo pierwotnie .postRow ma margin-bottom: 10px;).
divy z klasą .postRow nie mają przypisanych ani instrukcji przeznaczonych dla :first-child ani dla :last-child sad.gif
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 8.05.2024 - 21:19