CSS Dernier Impair Enfant?
J'ai une liste non ordonnée, qui peut contenir un nombre pair ou impair d'éléments. Je suis à la recherche d'un CSS seule façon de le supprimer de la frontière à partir de la dernière 2 li
balises si le nombre de li
s est même. Le :last-child
pseudo-sélecteur supprime le dernier un peu.
li {
float: left;
border-bottom: 1px solid #000;
}
li:last-child{
border-bottom: none;
}
Fonctionne pour un Nombre Impair de li
s
+============================================+
+ 1 | 2 +
+--------------------------------------------+
+ 3 | +
+============================================+
Mais pour un nombre pair, j'ai besoin d'enlever le fond de la cellule #3
+============================================+
+ 1 | 2 +
+--------------------------------------------+
+ 3 | 4 +
+--------------------- +
+============================================+
Alors j'ai pensé que je pourrais utiliser li:nth-last-child()
mais je ne peux pas déterminer quelle devrait être l'équation pour attraper le dernier impair enfant.
Ce n'est pas 2n+1
, 2n-1
, n-1
, ou quoi que ce soit je pense. S'il vous plaît aider.
- LOL @ vos modifier
Vous devez vous connecter pour publier un commentaire.
nth-last-child compte à rebours à partir de la dernière enfant, afin de saisir la seconde à la dernière, l'expression est:
Vous pouvez combiner des pseudo-sélecteurs, afin de sélectionner le 2ème et dernier enfant, mais seulement lorsque c'est bizarre, utilisation:
Et donc, toute chose doit être:
En réponse à @ithil la question, voici comment j'allais l'écrire dans SASS:
Ce n'est pas beaucoup plus simple, puisque la sélection de "l'avant-dernier impair enfant" est toujours exiger le "two step" sélecteur.
En réponse à @Caspert de la question, vous pouvez le faire arbitrairement beaucoup de derniers éléments en regroupant plusieurs sélecteurs (il se sent comme il devrait y avoir quelques
xn+y
motif de le faire sans que le regroupement, mais AFAIU ces habitudes de travail juste en comptant à rebours à partir du dernier élément).Pour les trois derniers éléments:
C'est un endroit où quelque chose comme SASS peut aider, pour générer les sélecteurs pour vous. Je voudrais structure présente comme un espace réservé à la classe, et d'étendre l'élément avec elle, et définir le nombre de colonnes dans une variable comme ceci:
Une autre alternative:
Ici est un violon: http://jsfiddle.net/W72nR/
éventuellement:
vous pouvez utiliser le n-ième sélecteur d'enfant:
Cependant, puisque ce n'est pas pris en charge dans IE 8... vous devriez vous suffit de définir une classe à ces deux li éléments et l'utilisation de la spécificité de la frontière-bas à aucun.