Bonjour,
Je pense que les difficultés proviennent des priorités (poids) des règles CSS.
Lorsque vous réalisez un import d'une feuille CSS dans styles.css, le navigateur traite dans un premier temps les règles de styles des feuilles importées puis les règles de styles de la feuille courante.
Prenons un exemple ou dans styles.css, vous importez la feuille de styles commun.css:
@import url(commun.css);
Votre fichier commun.css contient la règle suivant pour le body:
body {
background-color: #FF0000;//Couleur rouge
}
Votre fichier styles.css contient aussi une règle pour le body:
body {
background-color: #0000FF;//Couleur bleue
}
Dans ce cas, le navigateur va d'abord interprété la règle du fichier commun.css donc appliqué le rouge puis il va ensuite interprété les règles du fichier styles.css et donc se trouver avec un conflit puisqu'il doit travailler avec 2 règles définissant le même élément.
Il va donc régler le conflit en utilisant les priorités(poids) des règles CSS. Ces priorités sont calculées en fonction du nombre d'élément HTML, du nombre de classe et du nombre d'id de la règle CSS.
Voici un article intéressant expliquant simplement le mode de calcul:
Calculer le poids des règles CSSDans notre cas, les 2 règles CSS ont le même sélecteur, body, donc la même priorité(poids). Donc dans ce cas, le navigateur va utiliser la dernière règle qu'il a rencontré donc celle du fichier styles.css et donc c'est la couleur bleue qui l'emportera.
Pour contourner cette problématique et faire en sorte que ce soit la couleur rouge qui soit utilisée donc la règle de commun.css, vous avez 2 solutions:
Créer une règle ayant une priorité plus importantePour cela, il suffit d'utiliser un contexte dans le sélecteur de la règle en utilisant l'élément parent de body. La règle contiendra donc 2 éléments HTML donc elle a une priorité supérieure à la règle ne contenant qu'un seul élément HTML:
html body {
background-color: #FF0000;//Couleur rouge
}
Utiliser la declaration !importantEn savoir plus sur la déclaration !important:
http://www.zonecss.fr/style_css/feuille_css_important.htmlhttp://www.w3.org/TR/2008/REC-CSS2-20080411/cascade.html#x11body {
background-color: #FF0000 !important;//Couleur rouge
}
Bien évidemment, ces technique sont valables pour tous les éléments HTML.
Bonne journée
Antony