Bonjour à tous,
Je viens de découvrir un comportement qui me semble étrange et contre intuitif ayant trait à la précédence des règles CSS. Mieux vaut un exemple qu'une longue explication :
Voici le code XHTML :
Et le CSS correspondant :
A priori je pensais que tous les éléments de la liste auraient un background rouge, sauf le premier (dont l'ID est homeMenu) qui aurait un background bleu.
Mais il n'en est rien !!! Tous ont un background-rouge. Il semblerait que la première règle CSS a précédence sur la deuxième, pourtant elle est définie *avant*¨.
Une explication ? Un workaround ? Merci d'avance !
Modifié par Piloutje (08 Jan 2007 - 20:49)
Je viens de découvrir un comportement qui me semble étrange et contre intuitif ayant trait à la précédence des règles CSS. Mieux vaut un exemple qu'une longue explication :
Voici le code XHTML :
<body>
<ul id="mainMenu">
<li id="homeMenu"><a href="" title="Accueil">Accueil</a></li>
<li id="workMenu"><a href="" title="Travaux">Travaux</a></li>
<li id="cvMenu"><a href="" title="Curriculum Vitae">CV</a></li>
<li id="contactMenu"><a href="" title="Contact">Contact</a></li>
<li id="blogMenu"><a href="" title="Blog">Blog</a></li>
</ul>
</body>
Et le CSS correspondant :
ul#mainMenu li {
background-color: red;
}
li#homeMenu {
background-color: blue;
}
A priori je pensais que tous les éléments de la liste auraient un background rouge, sauf le premier (dont l'ID est homeMenu) qui aurait un background bleu.
Mais il n'en est rien !!! Tous ont un background-rouge. Il semblerait que la première règle CSS a précédence sur la deuxième, pourtant elle est définie *avant*¨.
Une explication ? Un workaround ? Merci d'avance !
Modifié par Piloutje (08 Jan 2007 - 20:49)