<div class="commentList">
<article class="comment " id="com21"></article>
<article class="comment " id="com20"></article>
<article class="comment " id="com19"></article>
<div class="something"> hello </div>
</div>
Chcę wybrać #com19
?
.comment {
width:470px;
border-bottom:1px dotted #f0f0f0;
margin-bottom:10px;
}
.comment:last-child {
border-bottom:none;
margin-bottom:0;
}
To nie działa, dopóki mam inne, div.something
ostatnie dziecko na liście commentList. Czy w tym przypadku można użyć selektora ostatniego elementu podrzędnego, aby wybrać ostatni wygląd article.comment
?
html
css
css-selectors
matowe
źródło
źródło
last-of-class
.:nth-match(selector)
i:nth-last-match(selector)
. Więcej szczegółów znajdziesz na w3.org/TR/selectors4 .:nth-last-child(An+B of selector)
jak:nth-last-match()
zostało usunięte długo wcześniej, ale nie zadali sobie trudu, aby zaktualizować WD. Zobacz stackoverflow.com/questions/21167159/css-nth-match-doesnt-work/…Jeśli pływasz elementami, możesz odwrócić kolejność
tj.
float: right;
zamiastfloat: left;
Następnie użyj tej metody, aby wybrać pierwsze dziecko z klasy.
W rzeczywistości jest to stosowanie tej klasy tylko do OSTATNIEJ instancji, ponieważ jest teraz w odwrotnej kolejności.
Oto działający przykład:
źródło
.some-class~.some-class
działa świetnie, gdy powtarzają się tylko 2 elementy.Myślę, że najbardziej poprawna odpowiedź brzmi: użyj
:nth-child
(lub w tym konkretnym przypadku jego odpowiednika:nth-last-child
). Większość zna ten selektor tylko po pierwszym argumencie, aby pobrać zakres elementów w oparciu o obliczenia z n, ale może również przyjąć drugi argument „z [dowolnego selektora CSS]”.Twój scenariusz można rozwiązać za pomocą tego selektora:
.commentList .comment:nth-last-child(1 of .comment)
Jednak bycie poprawnym technicznie nie oznacza, że możesz go używać, ponieważ ten selektor jest obecnie zaimplementowany tylko w Safari.
Więcej informacji:
źródło
Coś, co moim zdaniem powinno zostać tutaj skomentowane, co zadziałało dla mnie:
Posługiwać się
:last-child
wielokrotnie w potrzebnych miejscach, aby zawsze dotarło do ostatniego z ostatnich.Weź to na przykład:
źródło
A co z tym rozwiązaniem?
źródło
article
tutaj, więc: not (: last-child) nie jest konieczne dla podanego przykładu.something
nie istnieje w oryginalnym HTML i jest wstawiany dynamiczniehover
? Czy to rozwiązanie nie zawiedzie?jeśli ostatnim typem elementu jest również artykuł,
last-of-type
nie będzie działać zgodnie z oczekiwaniami.może naprawdę nie rozumiem, jak to działa.
próbny
źródło