<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>
Eu quero selecionar #com19
?
.comment {
width:470px;
border-bottom:1px dotted #f0f0f0;
margin-bottom:10px;
}
.comment:last-child {
border-bottom:none;
margin-bottom:0;
}
Isso não funciona, desde que eu tenha outro div.something
último filho real na commentList. É possível usar o seletor de último filho neste caso para selecionar a última aparência de article.comment
?
html
css
css-selectors
mate
fonte
fonte
last-of-class
.:nth-match(selector)
e:nth-last-match(selector)
. Veja w3.org/TR/selectors4 para mais detalhes.:nth-last-child(An+B of selector)
como:nth-last-match()
foi descartado muito antes disso, mas eles não se preocuparam em atualizar o WD. Veja stackoverflow.com/questions/21167159/css-nth-match-doesnt-work/…Se você está flutuando os elementos, pode reverter a ordem
ou seja, em
float: right;
vez defloat: left;
E, em seguida, use esse método para selecionar o primeiro filho de uma classe.
Na verdade, isso está aplicando a classe à instância LAST apenas porque agora está em ordem inversa.
Aqui está um exemplo de trabalho para você:
fonte
.some-class~.some-class
funciona muito bem para mim quando apenas 2 elementos se repetem.Acho que a resposta mais correta é: Use
:nth-child
(ou, nesse caso específico, sua contraparte:nth-last-child
). A maioria conhece apenas esse seletor pelo seu primeiro argumento para pegar um intervalo de itens com base em um cálculo com n, mas também pode usar um segundo argumento "de [qualquer seletor de CSS]".Seu cenário pode ser resolvido com este seletor:
.commentList .comment:nth-last-child(1 of .comment)
Porém, estar tecnicamente correto não significa que você possa usá-lo, porque esse seletor agora está implementado apenas no Safari.
Para leitura adicional:
fonte
Algo que eu acho que deveria ser comentado aqui que funcionou para mim:
Use
:last-child
várias vezes nos locais necessários para que ele sempre seja o último dos últimos.Veja isso por exemplo:
fonte
E essa solução?
fonte
article
aqui, então: not (: last-child) não é necessário para um determinado exemplo.something
não existir no HTML original e estiver sendo inserido dinamicamentehover
? Esta solução não irá falhar?se o último tipo de elemento também for artigo,
last-of-type
não funcionará conforme o esperado.talvez eu realmente não entenda como isso funciona.
demonstração
fonte