28172 sujets

CSS et mise en forme, CSS3

J'aimerais que chaque <div> contenant des liens hypertextes <a> ait un fond gris clair.

J'ai essayé le code :
div>a {background:silver}
mais il colore chaque lien <a> séparément, alors que j'aimerais colorer les <div>.

Quelqu'un a une idée ?
Modifié par e-miel (04 Aug 2012 - 08:54)
Bonjour,
Il n'existe pas de sélecteur CSS ascendant (tout est descendant).
Mais peut-être peux-tu transformer ton élément a en block à l'aide de display : block ?
Merci pour la réponse.

Dommage qu'il n'y ait pas de solution, mais à la vitesse où CSS évolue en ce moment, j'espère voir une solution arriver. En attendant j'utiliserai une classe, ce qui est sale car cela engendre de la redondance d'informations.

Pour répondre à ta question, transformer les <a> en "block" n'irait pas dans mon exemple :
<div>Michel a une voiture.</div>
<div>Pierre a une <a href="http://www.page-de-pierre.fr">page perso</a>.</div>
<div>Zorro a un cheval.</div>
où il faudrait colorer la 2ème <div>.
Il faut voir la classe utilisée...

Sinon, tu peux te tourner vers JavaScript, jQuery, par exemple, possède des sélecteurs tels que :has() (je sais plus trop c'est quoi la syntaxe) qui permet de dire "élément x qui possède des éléments y".
Sinon le plus simple serais me mettre une classe aux div voulu. Au moins tu ne te prend pas la tête. Certe ça fait redondant mais plus pratique ^^
Merci à chacun pour votre aide.

Sujet fermé... jusqu'au jour où ce sera possible. Smiley cligne
Modifié par e-miel (04 Aug 2012 - 08:56)