CSS : selecteurs d'attribut

Résolu/Fermé
le hollandais volant Messages postés 4998 Date d'inscription samedi 8 mars 2008 Statut Membre Dernière intervention 23 décembre 2023 - 25 déc. 2009 à 17:32
zoby44 Messages postés 818 Date d'inscription vendredi 3 novembre 2006 Statut Membre Dernière intervention 7 avril 2010 - 25 déc. 2009 à 18:33
Salut et bon noël à tous !
J'espère que quelqu'un pourra m'éclairer car y'a un truc que je n'arrive pas à faire…

Sur ma page d'accueil, j'ai un petit calendrier qui est un tableau. Certaines cellules contiennent un lien, d'autres non.

J'ai du CSS sur les <td> mais j'aimerais mettre du CSS spécifique uniquement sur les <td> contenant un lien <a>.

Par exemple : mettre les bordures du premier <td> en rouge, et le second en gris :
<td>
   <a>lien</a>
</td>
<td>
   texte
</td>

La page étant dynamique, il est pas possible de faire chaque <td> séparément. Ce qu'il me faudrait, c'est pouvoir cibler uniquement les <td> parents de <a> et pas les <td> vides de liens. Vous voyez ?

Un peu l'inverse de ça : td > a, c'est à dire a < td. Est-ce possible ça ?

EDIT : c'est bon pour mon effet : pour le moment, je dois étirer le <a> aux bords de la cellule, et le résultat est celui que le veux mais j'aimerais savoir tout le même…
A voir également:

3 réponses

zoby44 Messages postés 818 Date d'inscription vendredi 3 novembre 2006 Statut Membre Dernière intervention 7 avril 2010 199
25 déc. 2009 à 18:10
Salut.
Apparemment, a < td ne fonctionne pas. Le sélecteur parent est +, j'ai testé avec a + td, ça ne donne rien.
Sinon, tu peux applique le style au lien qui est dans la cellule, c'est plus simple.
Un truc du genre :
td {
	width:20px;
	height:20px;
	text-align:center;
	border: solid 2px gray;
	background:silver;
	padding:0;
}
td > a {
	width:20px;
	height:20px;
	display:block;
	background:gray;
	margin:-2px;
	border: solid 2px red;
}


C'est pas terrible comme code mais le résultat est là.
Sans surprise, ça ne fonctionne pas sous ie6 (je n'ai pas les autres versions).
Après, vu que tu utilises un background à moitié transparent, faut voir ce que ca donne.
Sinon, il reste toujours la solution javascript.
0
le hollandais volant Messages postés 4998 Date d'inscription samedi 8 mars 2008 Statut Membre Dernière intervention 23 décembre 2023 1 056
25 déc. 2009 à 18:23
Merci !
En effet, c'est la solution que j'utilise actuellement. Le résultat est bon, par contre, le selecteur "+" est le sélecteur adjascent : par exemple le code appliqué à E+F ciblera tous les F situé à coté de E, et non pas les E dans F.

Merci d'avoir répondu en tout cas, et pour IE, j'ai un CSS spécial (faut bien hein^^) c'est moche mais tant pis. Je ne supporte pas non plus Firefox 0.5 (même époque). D'ailleurs, j'ai du faire un CSS pour chaque version de IE…

Le javascript ? Je devrais m'y mettre un de ces quatre, mais il n'y pas un brin de JS sur mon site, et j'aimerais bien continuer^^

Bref, joyeuses fêtes !
0
zoby44 Messages postés 818 Date d'inscription vendredi 3 novembre 2006 Statut Membre Dernière intervention 7 avril 2010 199
25 déc. 2009 à 18:33
Ok, merci pour la précision. Je n'est encore jamais eut besoin d'utiliser le selecteur "+".
Merci IE ^^, il y à encore des gens qui utilisent FF 0.5 ?!!
Perso, j'ai bien javascript, enfin avec jQuery, sinon c'est bien prise de tête (pour les mêmes raisons que le CSS d'ailleurs).
Merci, et joyeuse fête à toi aussi.
0