Quelle est la différence entre #
et .
quand déclarer un ensemble de styles pour un élément et quelles sont les sémantiques qui entrent en jeu pour décider lequel utiliser?
la source
Quelle est la différence entre #
et .
quand déclarer un ensemble de styles pour un élément et quelles sont les sémantiques qui entrent en jeu pour décider lequel utiliser?
#
est un sélecteur d'identifiant , utilisé pour cibler un seul élément spécifique avec un identifiant unique, mais. est un sélecteur de classe utilisé pour cibler plusieurs éléments avec une classe particulière. Pour le dire autrement:
#foo {}
stylisera l' élément unique déclaré avec un attributid="foo"
.foo {}
va styliser tous les éléments avec un attribut class="foo"
(vous pouvez aussi avoir plusieurs classes assignées à un élément, il suffit de les séparer avec des espaces, par exemple class="foo bar"
)De manière générale, vous utilisez # pour styliser quelque chose que vous savez n'apparaître qu'une seule fois, par exemple, des éléments comme la mise en page de haut niveau divise ces barres latérales, zones de bannière, etc.
Les classes sont utilisées lorsque le style est répété, par exemple, si vous dirigez une forme spéciale d'en-tête pour les messages d'erreur, vous pouvez créer un style h1.error {}
qui ne s'appliquerait qu'à<h1 class="error">
Un autre aspect où les sélecteurs diffèrent est leur spécificité - un sélecteur d'identifiant est réputé être plus spécifique qu'un sélecteur de classe. Cela signifie que lorsque les styles entrent en conflit sur un élément, ceux définis avec le sélecteur plus spécifique remplaceront les sélecteurs moins spécifiques. Par exemple, étant donné <div id="sidebar" class="box">
toutes les règles pour #sidebar
remplacer les règles conflictuelles pour.box
Voir Selectutorial pour plus d'amorces sur les sélecteurs CSS - ils sont incroyablement puissants, et si votre conception est simplement que "# est utilisé pour les DIV", vous feriez bien de lire exactement comment utiliser CSS plus efficacement.
EDIT: Il semble que Selectutorial soit allé sur le grand site Web dans le ciel, alors essayez plutôt ce lien d'archive .
Le
#
signifie qu'il correspond à laid
d'un élément. le.
signifie le nom de la classe:Notez que dans un document HTML, l'attribut id doit être unique , donc si vous avez plus d'un élément nécessitant un style spécifique, vous devez utiliser un nom de classe.
la source
Le point (
.
) signifie un nom de classe tandis que le hachage (#
) signifie un élément avec un identifiant spécifique attribut . La classe s'appliquera à tout élément décoré avec cette classe particulière, tandis que le style # ne s'appliquera qu'à l'élément avec cet id particulier.Nom du cours:
Élément nommé:
la source
Il convient également de noter que dans la cascade , un sélecteur id (
#
) est plus spécifique qu'un.
sélecteur ab ( ). Par conséquent, les règles de l'instruction id remplaceront les règles de l'instruction class.Par exemple, si les deux déclarations suivantes:
sont appliqués au même élément HTML:
la règle couleur: bleu aurait priorité sur la règle couleur: rouge .
la source
Quelques extensions rapides sur ce qui a déjà été dit ...
Un
id
doit être unique, mais vous pouvez utiliser le même identifiant pour rendre différents styles plus spécifiques.Par exemple, étant donné cet extrait HTML:
Vous pouvez appliquer différents styles avec ceux-ci:
Une autre chose utile à savoir: vous pouvez avoir plusieurs classes sur un élément, en les délimitant dans l'espace ...
Ce qui vous permet d'avoir un style commun
.menu
avec des styles spécifiques en utilisant.main.menu
et.sub.menu
la source
.class
cible l'élément suivant:#class
cible l'élément suivant:Notez que l'ID DOIT être unique dans tout le document, tandis que n'importe quel nombre d'éléments peuvent partager une classe.
la source
Comme presque tout le monde l'a déjà dit:
Un point (
.
) indique une classe et un hachage (#
) indique un ID .La différence fondamentale entre les deux est que vous pouvez réutiliser une classe sur votre page encore et encore, tandis qu'un ID peut être utilisé une fois. C'est, bien sûr, si vous vous en tenez aux normes WC3.
Une page sera toujours affichée si vous avez plusieurs éléments avec le même ID, mais vous rencontrerez des problèmes si / lorsque vous essayez de mettre à jour dynamiquement lesdits éléments en les appelant avec leur ID, car ils ne sont pas uniques.
Il est également utile de noter que les propriétés ID remplaceront les propriétés de classe.
la source
Le # est un sélecteur d'identifiant. Il ne correspond qu'aux éléments avec un identifiant correspondant. La règle de style suivante correspondra à l'élément qui a un attribut id avec une valeur "verte":
Voir http://www.w3schools.com/css/css_syntax.asp pour plus d'informations
la source
Voici mon approche pour expliquer les règles
.style
et#style
font partie d'une matrice. que s'ils ne sont pas dans le bon ordre, ils peuvent se remplacer ou provoquer des conflits.Voici le line up.
Matrice
si vous voulez remplacer ces deux, vous pouvez utiliser
<style></style>
un niveau de matrice ou la1,0,0,0.
requête @media remplacera tout ce qui précède ... Je ne suis pas sûr de cela, mais je pense que le sélecteur d'ID#
ne peut être utilisé qu'une seule fois dans une page.la source