<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>
Je veux sélectionner #com19
?
.comment {
width:470px;
border-bottom:1px dotted #f0f0f0;
margin-bottom:10px;
}
.comment:last-child {
border-bottom:none;
margin-bottom:0;
}
Cela ne fonctionne pas tant que j'en ai un autre div.something
comme dernier enfant dans la commentList. Est-il possible d'utiliser le sélecteur du dernier enfant dans ce cas pour sélectionner la dernière apparition de article.comment
?
last-of-class
.:nth-match(selector)
et:nth-last-match(selector)
. Voir w3.org/TR/selectors4 pour plus de détails.:nth-last-child(An+B of selector)
comme cela a:nth-last-match()
été abandonné bien avant cela, mais ils n'ont pas pris la peine de mettre à jour le WD. Voir stackoverflow.com/questions/21167159/css-nth-match-doesnt-workSi vous faites flotter les éléments, vous pouvez inverser l'ordre
c'est
float: right;
à dire au lieu defloat: left;
Et puis utilisez cette méthode pour sélectionner le premier enfant d'une classe.
Cela applique en fait la classe à la LAST instance uniquement parce qu'elle est maintenant dans l'ordre inverse.
Voici un exemple de travail pour vous:
la source
.some-class~.some-class
fonctionne très bien pour moi lorsque seulement 2 éléments sont répétés.Je suppose que la réponse la plus correcte est: utiliser
:nth-child
(ou, dans ce cas précis, son homologue:nth-last-child
). La plupart ne connaissent ce sélecteur que par son premier argument pour saisir une plage d'éléments basée sur un calcul avec n, mais il peut également prendre un deuxième argument "de [n'importe quel sélecteur CSS]".Votre scénario pourrait être résolu avec ce sélecteur:
.commentList .comment:nth-last-child(1 of .comment)
Mais être techniquement correct ne signifie pas que vous pouvez l'utiliser, car ce sélecteur n'est actuellement implémenté que dans Safari.
Pour en savoir plus:
la source
Quelque chose que je pense devrait être commenté ici qui a fonctionné pour moi:
Utilisation
:last-child
plusieurs fois aux endroits nécessaires pour qu'il obtienne toujours le dernier des derniers.Prenons ceci par exemple:
la source
Et cette solution?
la source
article
ici, donc: not (: last-child) n'est pas nécessaire pour l'exemple donné.something
n'existe pas dans le HTML d'origine et est inséré dynamiquementhover
? Cette solution n'échouera-t-elle pas?si le dernier type d'élément est également article,
last-of-type
ne fonctionnera pas comme prévu.peut-être que je ne comprends pas vraiment comment ça marche.
démo
la source