28172 sujets

CSS et mise en forme, CSS3

Bonjour tout le monde,

ma question est sans aucun doute une question de gros débutant mais il y a quelque chose qui me chiffonne dans le css depuis quelques temps sur l'imbrication de blocs, type div par exemple ... Donc, excusez-moi si cette question insulte vos compétences : ce n'était pas le but Smiley smile

J'ai deux blocs div imbriqués l'un dans l'autre. Le premier est associé à un identifiant css #corps qui mets en rouge les liens hypertextes
#corps a{color: red;}

et le deuxième (imbriqué) à une classe nommée .intern qui souhaiterait, lui, mettre en bleu les liens hypertextes
.intern a{color: blue;}

Pourtant, si je tape le code html suivant
<div id="corps"><div class="intern"><p><a href=#>puissant lien</a></p></div></div>

alors le lien est affiché en rouge (du à div#corps) et non en bleu. Pourtant, le div le plus proche hiérarchiquement de la balise <a> est bien de class "intern". Pour que le lien soit bleu je dois spécifier dans la feuille css toute la hiérarchie:
#corps .intern a{color: blue;}


Est-ce normal ? Smiley biggrin Je pensais que le design css prit en compte était toujours celui du plus proche parent, sans avoir à préciser toute la hiérarchie. J'imagine que je me fourvoyais tout simplement depuis le début... Smiley confused

En tout cas, merci d'avance et bonne fin de journée !
Bonsoir,

Il n'existe pas de questions idiotes (enfin si, mais pas là Smiley lol )
Je te laisse faire un peu de saine lecture pour comprendre la cascade en CSS et la priorité des sélecteurs

Si tu fais des recherches sur ton moteur préféré, on parle fréquemment de poids des sélecteurs Smiley cligne
Bonsoir,

merci beaucoup, je vais m'atteler à la lecture de tout cela Smiley smile

Bonne soirée !

Edit: lecture faite, tout est maintenant plus claire, merci beaucoup !!
Modifié par Thosbk (20 May 2013 - 21:15)