Sélectionnez un enfant pair, à l'exclusion de l'enfant caché
Entre la ligne 2 et 3 est caché <div>
. Je ne veux pas que l'on soit pris dans la odd/even css
règle.
Quelle serait la meilleure approche pour obtenir que cela fonctionne? http://jsfiddle.net/k0wzoweh/
<style>
.box:not(.hidden):nth-child(even) {background: green}
.box:not(.hidden):nth-child(odd) {background: orange}
.hidden {display:none;}
</style>
<div class="wrap">
<div class="box">xx</div>
<div class="box">xx</div>
<div class="box hidden">xx</div>
<div class="box">xx</div>
<div class="box">xx</div>
<div class="box">xx</div>
<div class="box">xx</div>
</div>
Remarque: Il peut y avoir plusieurs hidden
éléments.
source d'informationauteur caramba
Vous devez vous connecter pour publier un commentaire.
Pseudo-sélecteurs de ne pas la pile, de sorte que votre
:not
n'affecte pas la:nth-child
(et il n'affectent:nth-of-type
etc.Si vous pouvez recourir à jQuery, vous pouvez utiliser le
:visible
pseudo-sélecteur de là, même si ce n'est pas une partie de la CSS.Si vous êtes à la génération du HTML et peut le changer, vous pouvez appliquer pair/impair avec la logique au moment de l'exécution, par exemple en PHP:
Même essayer de faire quelque chose de délicat comme
ne fonctionne pas, parce que le pseudo-sélecteur n'a même pas de pile sur le sélecteur d'attributs.
Je ne suis pas sûr que il y a moyen de le faire uniquement avec du CSS, je ne peux pas penser à tout instant.
Depuis mes lignes sont masquées avec du js, j'ai trouvé que l'approche la plus simple pour moi était juste ajouter une supplémentaire caché la ligne après chaque ligne que je cache et supprimer les lignes masquées quand j'ai montrer la vraie lignes de nouveau.
Merci Joe (+1) pour désigner la css pseudo-sélecteur de règles et le code php qui je pouvait très bien utiliser 1:1 en jQuery qui ressemble à ceci:
Masquer les lignes que vous souhaitez masquer l'appel .hide() pour chaque ligne de la table, puis d'appeler
$("tr:visible:même").css( "background-color", "" ); //effacer l'attribut pour toutes les lignes
$("tr:visible:même").css( "background-color", "#ddddff" ); //attribut de jeu, même pour les lignes
(ajouter le nom de votre table pour le sélecteur pour être plus précis)
(aide :même fait sauter la ligne d'en-Tête)
Comme @Fateh Khalsa souligné, j'ai eu un problème similaire et depuis que j'avais de manipuler mon tableau avec JavaScript (jQuery pour être précis), j'ai été en mesure de faire ce qui suit:
(Note: Ceci suppose l'utilisation de JavaScript/jQuery qui l'OP n'est pas de savoir si ou de ne pas être à leur disposition. Cette réponse suppose oui, il serait, et que nous voulons activer /désactiver la visibilité des lignes masquées à un certain point.)
Ce processus est inversé lorsque le lien est cliqué à nouveau.
Voici le code JavaScript (jQuery) pour ce faire:
Le lien HTML est simple