![]() |
![]() ![]() |
![]() |
![]()
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: css:
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? |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 33 Pomógł: 1 Dołączył: 30.11.2011 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 6 799 Pomógł: 1827 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Twój CSS działa poprawnie.
A co za tym idzie, odpowiadając na drugie pytanie, nic nie musisz robić, bo te pseudoklasy zadziałają również na jeden element. -------------------- |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 173 Pomógł: 1 Dołączył: 26.10.2005 Skąd: Toruń Ostrzeżenie: (0%) ![]() ![]() |
Hej, a to nie powinno być tak
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 ![]() |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 6 799 Pomógł: 1827 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Być może masz do czynienia ze zjawiskiem margin collapse.
Czy ten blok elementów styka się jeszcze z innymi? Jeśli tak, to dodaj float:left dla .postRow. -------------------- |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 173 Pomógł: 1 Dołączył: 26.10.2005 Skąd: Toruń Ostrzeżenie: (0%) ![]() ![]() |
Być może masz do czynienia ze zjawiskiem margin collapse. Czy ten blok elementów styka się jeszcze z innymi? Jeśli tak, to dodaj float:left dla .postRow. Spowodowało to całkowite rozjechanie się elementów wewnątrz divów z klasą .postRow, natomiast one same jak nie miały marginów tak nie mają nadal. Dodam dla ścisłości, że zarówno nad divami .postRow jak i pod nimi są przyciski <button></button> o następujących klasach:
uściślając więc wygląda to tak: Nie sądzę by to miało znaczenie, ale idąc Twoim tropem trueblue, tak, divy .postRow stykają się jeszcze z innymi elementami wewnątrz diva .postsDiv. Ten post edytował siutek 24.10.2017, 20:30:58 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 6 799 Pomógł: 1827 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Gdybyś od razu pokazał cały kod, byłoby łatwiej.
Nie :first-child i :last-child, a :first-of-type i :last-of-type. -------------------- |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 173 Pomógł: 1 Dołączył: 26.10.2005 Skąd: Toruń Ostrzeżenie: (0%) ![]() ![]() |
Gdybyś od razu pokazał cały kod, byłoby łatwiej. Nie :first-child i :last-child, a :first-of-type i :last-of-type. Pięknie! teraz działa, wytłumacz mi tylko dlaczego musiałem zastosować .postRow:first-of-type a nie .postRow:first-child? Przecież nawet biorąc pod uwagę, że tam były buttony, to nie miały one klasy .postRow, a first-child i last-child miały się odnosić tylko do elementów z klasą .postRow. Chyba, że dla nich klasa nie ma znaczenia. odnoszą się do pierwszego i ostatniego dziecka, bez względu na to jaką klasę wskażę przed : |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 6 799 Pomógł: 1827 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Klasa jest brana pod uwagę jednak nie w takim sensie. :first-child to zawsze pierwsze dziecko, czyli w tym przypadku warunek spełni element z taką klasą i pierwszy w kolejności (obydwa warunki spełnione).
Oczywiście rozszerzanie selektora :first-child o klasę przy wyborze nie ma sensu - wystarczy :first-child. P.S. W :first-of-type oraz :last-of-type, klasa również nie ma sensu. P.P.S. Dodawanie klasy nie ma sensu w Twoim przypadku. Ten post edytował trueblue 24.10.2017, 21:23:28 -------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 23.05.2025 - 00:57 |