28111 sujets

CSS et mise en forme, CSS3

Saluton,
J'ai besoin de créer un tableau de n lignes (<tr>) de deux <td> chacune.
Mais j'aimerais que les <td> de gauche aient une encre bleue et ceux de droite une encre verte.
Comme je ne veux pas déclarer une class dans chaque <td>, j'ai défini deux <col> (dans un <colgroup>) à chacune desquelles j'ai attribué un id.
Mais apparemment l'attribut color n'est pas accessible pour les éléments <col> du DOM, et ces éléments n'ont pas d'enfants dans le DOM.
Savez-vous comment impacter l'attribut color des <td> d'une <col> via la feuille de style ?
Merci.
Modifié par Maljuna Kris (07 Dec 2011 - 11:56)
Bonjour,

Je n'ai pas tout compris de ta demande alors :
1 . si tu souhaites changer la couleur de fond, tu peux le faire en css sur le col, cela fonctionne.

2 . sinon, tu peux cibler tes td génériquement, et surcharger les règles génériques avec td+td. Cela ne sélectionnera que la deuxième cellule, et te permettra de distinguer les deux. Et tu pourras même te passer des balises >col>.

J'espère t'avoir un peu avancé ! Bon courage.
Avant tout, merci.

Il s'agit bien de l'attribut color des <td> et non du background-color qu'on peut lui impacter via le style de <col>.

La solution avec td+td fonctionne effectivement avec deux colonnes, mais, soyons fous, et s'il y avait 3 colonnes et que l'on souhaitait leur attribuer, à chacune, une couleur différente, y-aurait-il une autre astuce pour faire cela simplement en CSS ?

Merci encore.

Oups ! Smiley confused j'ai la réponse c'est tout bêtement td+td+td.
Je viens de découvrir un truc, là.
Modifié par Maljuna Kris (07 Dec 2011 - 13:41)
Bonjour,

pour être plus précis encore, je te suggère de lire ceci.

En réalité, si tu te contentes de td+td+td, cela ciblera tous les td précédés d'au moins deux td. Pour être vraiment efficace, M. Goetter conseille d'utiliser :first-child, afin de cibler un td en particulier.

Bonne continuation !