Je suis un peu confus au sujet du CSS et de l' class
attribut. J'ai toujours pensé que l'ordre dans lequel je spécifiais plusieurs classes dans la valeur d'attribut avait une signification. La dernière classe pourrait / devrait écraser les définitions de la précédente, mais cela ne semble pas fonctionner. Voici un exemple:
<html>
<head>
<style type="text/css">
.extra {
color: #00529B;
border:1px solid #00529B; /* Blue */
background-color: #BDE5F8;
}
.basic {
border: 1px solid #ABABAB;
}
</style>
</head>
<body>
<input type="text" value="basic" class="basic"/>
<input type="text" value="extra" class="extra"/>
<input type="text" value="basic extra" class="basic extra"/>
<input type="text" value="extra basic" class="extra basic"/>
</body>
</html>
Je m'attendrais à ce que le troisième exemple avec class="basic extra"
devrait avoir une bordure bleue, car la bordure spécifiée supplémentaire écraserait la bordure de base.
J'utilise FF 3 sur Ubuntu 9.04
L'ordre des classes dans l'attribut n'est pas pertinent. Toutes les classes de l'
class
attribut sont appliquées de la même manière à l'élément.La question est: dans quel ordre les règles de style apparaissent-elles dans votre fichier .css. Dans votre exemple,
.basic
vient après.extra
donc les.basic
règles prévaudront dans la mesure du possible.Si vous voulez fournir une troisième possibilité (par exemple, que c'est
.basic
mais que les.extra
règles doivent toujours s'appliquer), vous devrez peut-être inventer une autre classe.basic-extra
, qui le prévoit explicitement.la source
Cela peut être fait, mais vous devez faire preuve d'un peu de créativité avec vos sélecteurs. En utilisant les sélecteurs d'attributs, vous pouvez spécifier des choses comme "commence par", "se termine par", "contient", etc. Voir l'exemple ci-dessous en utilisant votre même balisage, mais avec des sélecteurs d'attribut.
la source