Voici un exemple que je ne comprends pas:
.container_12 .grid_6,
.container_16 .grid_8 {
width: 460px;
}
Il me semble que cela width: 460px
s'applique à toutes les classes mentionnées ci-dessus. Mais pourquoi certaines classes sont séparées par une virgule ( ,
), et d'autres par un espace?
Je suppose que cela width: 460px
ne sera appliqué qu'aux éléments qui combinent des classes de la manière mentionnée dans le fichier CSS. Par exemple, il sera appliqué à <div class='container_12 grid_6'>
mais il ne sera pas appliqué au <div class='container_12'>
. Cette hypothèse est-elle correcte?
css
css-selectors
romain
la source
la source
Réponses:
Cela dit "faites en sorte que tous les .grid_6 dans les .container_12 et tous les .grid_8 dans les .container_16 de 460 pixels de large." Ainsi, les deux éléments suivants auront le même rendu:
Quant aux virgules, elles appliquent une règle à plusieurs classes, comme ceci.
C'est fonctionnellement équivalent à:
Mais réduit la verbosité.
la source
.container_12 .grid_6
va de même pour les seuls.grid_6
éléments trouvés dans les.container_12
éléments.Cette règle fait correspondre un nœud DOM avec une classe
container_12
qui a un descendant (pas nécessairement un enfant) avec une classegrid_6
, et applique les règles CSS à l'élément DOM avec classegrid_6
.Mettre
>
entre eux indique que legrid_6
nœud doit être un enfant direct du nœud avec la classecontainer_12
.Une virgule, comme d'autres l'ont indiqué, est un moyen d'appliquer des règles à de nombreux nœuds différents à la fois. Dans ce cas, les règles s'appliquent à tout nœud avec une classe de
container_12
ougrid_6
.la source
<space>
et>
entre les classes / ids.Pas exactement ce qui a été demandé, mais peut-être que cela aidera.
Pour appliquer un style à un élément uniquement s'il a les deux classes, votre sélecteur ne doit utiliser aucun espace entre les noms de classe.
Par exemple:
la source
La virgule regroupe les classes (leur applique le même style à toutes), un espace vide indique que le sélecteur suivant doit être dans le premier sélecteur.
Par conséquent
applique ce style uniquement à la classe
.grid_6
qui est dans la.container_12
classe et à la.grid_8
classe qui est à l'intérieur.container_16
.la source
Le
width: 460px;
sera appliqué à l'élément avec la.grid_8
classe, contenu à l' intérieur des éléments avec la.container_16
classe, et les éléments avec la.grid_6
classe, contenus à l' intérieur des éléments avec.container_12
.L'espace signifie patrimoine et la virgule signifie «et». Si vous mettez des propriétés avec un sélecteur comme
.class-a, .class-b
, vous aurez les propriétés appliquées aux éléments avec n'importe laquelle des deux classes.J'espère avoir aidé.
la source
Vous avez quatre classes et deux sélecteurs dans votre exemple:
Donc
.container_12
et.grid_6
sont les deux classes, mais la règlewidth: 460px
ne sera appliquée qu'aux éléments qui ont la.grid_6
classe qui sont les descendants d'un élément qui a la.container_16
classe.Par exemple:
la source
Ce qui précède signifie que vous appliquez des styles à deux classes, indiquées par la virgule.
Lorsque vous voyez deux éléments côte à côte non séparés, vous pouvez supposer qu'il fait référence à une zone dans une zone. Donc, dans ce qui précède, ce style s'applique uniquement aux classes grid_6 à l'intérieur des classes container_12 et aux classes grid_8 à l'intérieur des classes container_16.
dans l'exemple:
Le premier grid_6 ne sera pas effectué alors que la deuxième classe grid_6 le sera car il est contenu dans un container_12.
Une déclaration comme
N'appliquerait que le gras à
les balises dans les zones qui ont la classe "description" qui sont à l'intérieur d'une zone avec l'ID "admin", telles que:
la source
width:460px
ne sera appliqué qu'à.grid_6
et.grid_8
Edit: Voici un très bon article pour vous
http://css-tricks.com/multiple-class-id-selectors/
la source
.grid_6
&.grid_8
réside dans un.container_12
or.container_16
Les combinaisons de sélecteurs ont différentes significations - l'image ci-jointe explique facilement
a) Plusieurs sélecteurs séparés par une virgule («,») - Les mêmes styles sont appliqués à tous les éléments sélectionnés.
Ici, le style de bordure est appliqué aux éléments DIV et aux éléments appliqués à la classe CSS (.elmnt-color).
b) Sélecteurs multiples séparés par un espace - Ceux-ci sont appelés sélecteurs descendants.
}
Ici, le style de bordure est appliqué aux éléments appliqués de la classe CSS (.elmnt-color) qui sont des éléments enfants de l'élément DIV.
c) Sélecteurs multiples spécifiés sans espace - Ici, les styles sont appliqués aux éléments qui répondent à toutes les combinaisons.
Ici, le style de bordure est appliqué aux éléments DIV appliqués de la classe CSS (.elmnt-color) uniquement.
Les détails sont joints à https://www.csssolid.com/css-tips.html
Remarque: la classe CSS est l'un des sélecteurs CSS. La règle ci-dessus est applicable à tous les sélecteurs CSS (ex: Classe, Élément, ID, etc.).
la source