Comment puis-je sélectionner tous les tr
éléments sauf le premier tr
dans un tableau avec CSS?
J'ai essayé d'utiliser cette méthode, mais j'ai constaté que cela ne fonctionnait pas.
css
css-selectors
Alexander Abakumov
la source
la source
<tr>
et une classe différente pour les autres.Réponses:
En ajoutant une classe au premier
tr
ou au suivanttr
s. Il n'y a aucun moyen de sélectionner les lignes que vous souhaitez avec CSS seul.Cependant, si vous ne vous souciez pas d'Internet Explorer 6, 7 ou 8:
la source
tr:not(:first-of-type)
une solution potentielle également, si vous recherchez la première instance d'un sélecteur spécifique plutôt que le premier enfant généralisé.Je suis surpris que personne n'ait mentionné l'utilisation de combinateurs frères, qui sont pris en charge par IE7 et versions ultérieures:
Ils fonctionnent tous deux exactement de la même manière (dans le contexte des tableaux HTML de toute façon) que:
la source
elem + elem
est une excellente solution générale lorsque les éléments que vous souhaitez cibler ne sont pas les seuls enfants. Par exemple, si a<h2>
est suivi de plusieurs<p>
balises, la première<p>
n'est pas le premier enfant dans ce cas.solution idéale mais non prise en charge dans IE
la deuxième solution serait de styliser tous les tr, puis de remplacer avec css pour le premier enfant:
la source
sonne comme la `` première ligne '' dont vous parlez est votre en-tête de table - vous devriez donc vraiment penser à utiliser
thead
ettbody
dans votre balisage ( cliquez ici ) ce qui entraînerait un `` meilleur '' balisage (sémantiquement correct, utile pour des choses comme les lecteurs d'écran ) et des possibilités plus faciles à utiliser pour tous les navigateurs pour la sélection css (table thead ... { ... }
)la source
Bien que la question ait déjà une réponse décente, je veux juste souligner que la
:first-child
balise va sur le type d'élément qui représente les enfants.Par exemple, dans le code:
Si vous souhaitez affecter uniquement les deux seconds éléments avec une marge, mais pas le premier, vous feriez:
c'est-à-dire, puisque les
input
s sont les enfants, vous placeriezfirst-child
sur la partie d'entrée du sélecteur.la source
Désolé, je sais que c'est vieux mais pourquoi ne pas styler tous les éléments tr comme vous le souhaitez, sauf le premier et utiliser la classe psuedo: premier enfant où vous révoquez ce que vous avez spécifié pour tous les éléments tr.
Mieux décrit par cet exemple:
http://jsfiddle.net/DWTr7/1/
/ Patrik
la source
Étant donné que
tr:not(:first-child)
n'est pas pris en charge par IE 6, 7, 8. Vous pouvez utiliser l'aide de jQuery. Vous pouvez le trouver icila source
Une autre option:
la source
Peut-être que quelqu'un peut en bénéficier, voici ce que j'ai utilisé
la source
Vous pouvez également utiliser un pseudo sélecteur de classe dans votre CSS comme ceci:
Cela n'appliquera pas la classe au premier élément avec la classe .desc.
Voici un JSFiddle avec un exemple: http://jsfiddle.net/YYTFT/ , et ceci est une bonne source pour expliquer les sélecteurs de pseudo-classe: http://css-tricks.com/pseudo-class-selectors/
la source
first-child
ignore les classes.Vous pouvez créer une classe et utiliser la classe lorsque vous définissez tous vos futurs que vous voulez (ou ne voulez pas) être sélectionnés par le CSS.
Cela se ferait en écrivant
puis dans votre css ayant les lignes (et en utilisant la commande text-align comme exemple):
la source