2012-10-20 4 views
1

J'ai un problème avec l'utilisation nth-child(n). Disons que j'ai cette liste:nième-enfant ne fonctionne pas comme prévu

<ul> 
    <li></li> 
    <li></li> 
    <li></li> 
    <li></li> 
    <li></li> 
    <li></li> 
    <li></li> 
    <li></li> 
</ul> 

et styles:

li { 
    margin: 0 10px 0 0; 
} 
li:nth-child(6n+6) { 
    margin: 0; 
} 

Pour une raison quelconque, une telle combinaison fixe margin: 0 pour chaque quatrième élément li. Ce que j'essaye de réaliser est de mettre cette marge zéro pour chaque sixième li. Pouvez-vous s'il vous plaît me conseiller comment mon css devrait ressembler?

+1

Vous devez avoir quelques éléments parasites inbetween votre 'li' parce que cela fonctionne pour moi http://jsfiddle.net/duopixel/f25eE/ – Duopixel

Répondre

4

6n+6 moyens commencent à 6 puis faire tous les 6 à partir de ce moment-là si juste en utilisant 6n est équivalent dans cette situation:

li:nth-child(6n) { 
    margin: 0; 
} 

En outre, cette ressource peut être utile: http://css-tricks.com/examples/nth-child-tester/

Si cette ne fonctionne pas pour vous, votre sélecteur est faux. Utilisez quelque chose de plus spécifique comme body > ul > li:nth-child(6n) ou body > ul > li:nth-of-type(6n) qui ne sélectionnera que tous les 6 éléments li.

1

Il vise en fait le sixième comme indiqué dans http://jsfiddle.net/6F37a/ (bien que le +6 est redondant)

Peut-être une autre règle salit les marges ..

+0

bien c'est une cause un peu étrange quand je vais utiliser "Inspecter" pour le quatrième 'li', je peux voir dans l'inspecteur d'objets que ce' nth- child (6n) 'est appliqué à cet élément – mbajur

+1

@mbajur, êtes-vous sûr qu'il n'y a que des éléments' li' sous le 'ul' et que votre html est valide ates? –

Questions connexes