Contacts

Que choisira le sélectionneur ? Sélecteurs. Le texte inclus dans ces balises sera en lettres plus petites et de couleur grise.

CSS (feuilles de style en cascade) est un langage de feuille de style qui vous permet d'attacher un style (tel que des polices et des couleurs) à des documents structurés (tels que des documents HTML et des applications XML). Les styles CSS sont généralement utilisés pour créer et styliser des éléments de pages Web et d'interfaces utilisateur écrites en HTML et XHTML, mais peuvent également être appliqués à tout type de document XML, notamment XML, SVG et XUL. En séparant le style de présentation du document du contenu du document, CSS facilite la création de pages Web et la maintenance des sites.

CSS prend en charge les feuilles de style spécifiques aux médias afin que les auteurs puissent adapter la présentation de leurs documents aux navigateurs visuels, aux appareils auditifs, aux imprimantes, aux appareils braille, aux appareils portables, etc.

Les feuilles de style en cascade décrivent les règles de formatage des éléments à l'aide de propriétés et les valeurs autorisées pour ces propriétés. Pour chaque élément, vous pouvez utiliser un ensemble limité de propriétés ; les autres propriétés n'auront aucun effet sur celui-ci.

Une déclaration de style se compose de deux parties : sélecteur Et les publicités. En HTML, les noms d'éléments ne sont pas sensibles à la casse, donc "h1" fonctionne de la même manière que "H1". La déclaration se compose de deux parties : le nom de la propriété (par exemple, couleur) et la valeur de la propriété (gris). Le sélecteur indique au navigateur quel élément formater, et le bloc de déclaration (code entre accolades) répertorie les commandes de formatage - les propriétés et leurs valeurs.

Riz. 1. Structure des annonces

Bien que l'exemple fourni tente uniquement d'affecter quelques propriétés nécessaires au rendu d'un document HTML, il est considéré comme une feuille de style à part entière. Lorsqu'elle est combinée avec d'autres feuilles de style (une caractéristique fondamentale du CSS est que les feuilles de style sont combinées), la règle déterminera la présentation finale du document.

Types de feuilles de style en cascade et leurs spécificités

1. Types de feuilles de style

1.1. Feuille de style externe

Feuille de style externe est un fichier texte avec l'extension .css, qui contient un ensemble de styles CSS pour les éléments. Le fichier est créé dans un éditeur de code, tout comme une page HTML. Le fichier ne peut contenir que des styles, sans balisage HTML. Une feuille de style externe est connectée à une page Web à l'aide d'une balise , situé à l'intérieur de la section . Ces styles fonctionnent pour toutes les pages du site.

Vous pouvez joindre plusieurs feuilles de style à chaque page Web en ajoutant plusieurs balises en séquence , indiquant l'objectif de cette feuille de style dans l'attribut de balise média. rel="stylesheet" précise le type de lien (lien vers une feuille de style).

L'attribut type="text/css" n'est pas requis par la norme HTML5, il peut donc être omis. Si l'attribut est manquant, la valeur par défaut est type="text/css" .

1.2. Styles internes

Styles internes intégré dans une section Document HTML et sont définis à l'intérieur de la balise. Les styles internes ont priorité sur les styles externes, mais sont inférieurs aux styles en ligne (spécifiés via l'attribut style).

...

1.3. Styles intégrés

Quand on écrit styles en ligne, nous écrivons le code CSS dans le fichier HTML, directement à l'intérieur de la balise element en utilisant l'attribut style :

Faites attention à ce texte.

De tels styles n'affectent que l'élément pour lequel ils sont définis.

1.4. @règle d'importation

@règle d'importation Permet de charger des feuilles de style externes. Pour que la directive @import fonctionne, elle doit apparaître dans la feuille de style (externe ou interne) avant toutes les autres règles :

La règle @import est également utilisée pour inclure les polices Web :

@import url(https://fonts.googleapis.com/css?family=Open+Sans&subset=latin,cyrillic) ;

2. Types de sélecteurs

Sélecteurs représentent la structure d'une page Web. Ils aident à créer des règles de formatage des éléments de page Web. Les sélecteurs peuvent être des éléments, leurs classes et identifiants, ainsi que des pseudo-classes et pseudo-éléments.

2.1. Sélecteur universel

Correspond à n’importe quel élément HTML. Par exemple, * (marge : 0 ;) réinitialisera les marges de tous les éléments du site. Le sélecteur peut également être utilisé en combinaison avec une pseudo-classe ou un pseudo-élément : *:after (styles CSS) , *:checked (styles CSS) .

2.2. Sélecteur d'éléments

Les sélecteurs d'éléments permettent de formater tous les éléments d'un type donné sur toutes les pages du site. Par exemple, h1 (font-family : Lobster, cursive ;) définira le style de formatage global pour tous les en-têtes h1.

2.3. Sélecteur de classe

Les sélecteurs de classe permettent de définir des styles pour un ou plusieurs éléments portant le même nom de classe, placés à différents endroits de la page ou sur différentes pages du site. Par exemple, pour créer un titre avec la classe headline, vous devez ajouter l'attribut class avec la valeur headline à la balise d'ouverture.

et définissez le style pour la classe spécifiée. Les styles créés à l'aide d'une classe peuvent être appliqués à d'autres éléments, pas nécessairement de ce type.

.headline ( transformation de texte : majuscule ; couleur : bleu clair ; )

Si un élément possède plusieurs attributs de classe, leurs valeurs sont concaténées avec des espaces.

Instructions pour l'utilisation d'un ordinateur personnel

2.4. Sélecteur d'identifiant

Le sélecteur d'ID vous permet de formater unélément spécifique. La valeur id doit être unique, ne peut apparaître qu'une seule fois sur une seule page et doit contenir au moins un caractère. La valeur ne doit pas contenir d'espaces.

Il n'y a pas d'autres restrictions sur la forme que peut prendre l'identifiant ; en particulier, les identifiants peuvent être composés uniquement de chiffres, commencer par un chiffre, commencer par un trait de soulignement, n'avoir que des signes de ponctuation, etc.

L'ID unique d'un élément peut être utilisé à diverses fins, notamment pour faire référence à des parties spécifiques d'un document à l'aide d'ID de fragment, pour cibler un élément lors de l'écriture de scripts et pour styliser un élément spécifique à partir de CSS. .

#sidebar (largeur : 300 px ; float : gauche ; )

2.5. Sélecteur de descendants

Les sélecteurs descendants appliquent des styles aux éléments d'un élément conteneur. Par exemple, ul li (text-transform: uppercase;) - sélectionnera tous les éléments li qui sont des enfants de tous les éléments ul.

Si vous souhaitez formater les descendants d'un élément particulier, vous devez attribuer à cet élément une classe de style :

p.first a (couleur : vert ;) - ce style sera appliqué à tous les liens descendants du paragraphe de première classe ;

p .first a (couleur : vert ;) - si vous ajoutez un espace, les liens situés à l'intérieur de toute balise de classe .first qui est un enfant de l'élément seront stylés

D'abord a (couleur : vert ;) - ce style sera appliqué à tout lien situé à l'intérieur d'un autre élément, désigné par class.first .

2.6. Sélecteur d'enfant

Un élément enfant est un enfant direct de son élément conteneur. Un élément peut avoir plusieurs éléments enfants, mais chaque élément ne peut avoir qu'un seul élément parent. Le sélecteur d'enfant vous permet d'appliquer des styles uniquement si l'élément enfant vient immédiatement après l'élément parent et qu'il n'y a aucun autre élément entre eux, c'est-à-dire que l'élément enfant n'est imbriqué dans rien d'autre.
Par exemple, p > strong sélectionnera tous les éléments forts qui sont des enfants de l'élément p.

2.7. Sélecteur de soeur

La sororité se produit entre des éléments qui partagent un parent commun. Les sélecteurs frères et sœurs vous permettent de sélectionner des éléments dans un groupe d'éléments du même niveau.

h1 + p - sélectionnera tous les premiers paragraphes immédiatement après n'importe quelle balise

sans affecter les paragraphes restants ;

h1 ~ p - sélectionnera tous les paragraphes qui sont frères d'un en-tête h1 et immédiatement après celui-ci.

2.8. Sélecteur d'attribut

Les sélecteurs d'attribut sélectionnent les éléments en fonction du nom ou de la valeur de l'attribut :

[attribut] - tous les éléments contenant l'attribut spécifié - tous les éléments pour lesquels l'attribut alt est spécifié ;

selector[attribute] - éléments de ce type contenant l'attribut spécifié, img - uniquement les images pour lesquelles l'attribut alt est spécifié ;

selector[attribute="value"] - éléments de ce type contenant l'attribut spécifié avec une valeur spécifique, img - toutes les images dont le titre contient le mot fleur ;

selector[attribute~="value"] - éléments contenant partiellement une valeur donnée, par exemple, si plusieurs classes sont spécifiées pour un élément séparées par un espace, p - paragraphes dont le nom de classe contient feature ;

selector[attribute|="value"] - éléments dont la liste des valeurs d'attribut commence par le mot spécifié, p - paragraphes dont le nom de classe est feature ou commence par feature ;

selector[attribute^="value"] - éléments dont la valeur d'attribut commence par la valeur spécifiée, a - tous les liens commençant par http:// ;

selector[attribute$="value"] - éléments dont la valeur d'attribut se termine par la valeur spécifiée, img - toutes les images au format png ;

selector[attribute*="value"] - éléments dont la valeur d'attribut contient le mot spécifié n'importe où, a - tous les liens dont le nom contient book .

2.9. Sélecteur de pseudo-classe

Les pseudo-classes sont des classes qui ne sont pas réellement attachées aux balises HTML. Ils permettent d'appliquer des règles CSS aux éléments lorsqu'un événement se produit ou obéit à une règle spécifique. Les pseudo-classes caractérisent les éléments ayant les propriétés suivantes :

:hover - tout élément sur lequel le curseur de la souris est survolé ;

:focus - un élément interactif sur lequel vous avez navigué à l'aide du clavier ou activé à l'aide de la souris ;

:active - élément qui a été activé par l'utilisateur ;

:valid - champs de formulaire dont le contenu a été vérifié dans le navigateur pour vérifier sa conformité avec le type de données spécifié ;

:invalid — champs de formulaire dont le contenu ne correspond pas au type de données spécifié ;

:enabled - tous les champs de formulaire actifs ;

:disabled — champs de formulaire bloqués, c'est-à-dire dans un état inactif ;

:in-range - champs de formulaire dont les valeurs se trouvent dans la plage spécifiée ;

:hors plage - champs de formulaire dont les valeurs ne se trouvent pas dans la plage spécifiée ;

:lang() - éléments avec du texte dans la langue spécifiée ;

:not(selector) - éléments qui ne contiennent pas le sélecteur spécifié - classe, identifiant, nom ou type de champ de formulaire - :not() ;

:target est un élément avec le symbole # référencé dans le document ;

:checked — éléments de formulaire sélectionnés (sélectionnés par l'utilisateur).

2.10. Sélecteur de pseudo-classe structurelle

Les pseudo-classes structurelles sélectionnent les éléments enfants en fonction du paramètre spécifié entre parenthèses :

:nth-child(odd) - éléments enfants impairs ;

:nth-child(even) - éléments pairs enfants ;

:nth-child(3n) - un élément sur trois parmi les enfants ;

:nth-child(3n+2) - sélectionne un élément sur trois, en commençant par le deuxième enfant (+2) ;

:nth-child(n+2) - sélectionne tous les éléments à partir du second ;

:nth-child(3) - sélectionne le troisième élément enfant ;

:nth-last-child() - dans la liste des éléments enfants, sélectionne l'élément avec l'emplacement spécifié, similaire à :nth-child() , mais en commençant par le dernier, dans la direction opposée ;

:first-child - vous permet de styliser uniquement le tout premier élément enfant de la balise ;

:last-child - vous permet de formater le dernier élément enfant de la balise ;

:only-child - sélectionne un élément qui est le seul élément enfant ;

:empty - sélectionne les éléments qui n'ont pas d'enfants ;

:root - sélectionne l'élément qui est la racine du document - l'élément html.

2.11. Sélecteur de pseudo-classe de type structurel

Indique un type spécifique de balise enfant :

:nth-of-type() - sélectionne des éléments similaires à :nth-child() , mais ne prend en compte que le type de l'élément ;

:first-of-type - sélectionne le premier enfant d'un type donné ;

:last-of-type - sélectionne le dernier élément de ce type ;

:nth-last-of-type() - sélectionne un élément du type donné dans une liste d'éléments en fonction de l'emplacement spécifié, en commençant par la fin ;

:only-of-type - sélectionne le seul élément du type spécifié parmi les éléments enfants de l'élément parent.

2.12. Sélecteur de pseudo-éléments

Les pseudo-éléments sont utilisés pour ajouter du contenu, généré à l'aide de la propriété content :

:first-letter - sélectionne la première lettre de chaque paragraphe, s'applique uniquement aux éléments de bloc ;

:first-line - sélectionne la première ligne du texte de l'élément, s'applique uniquement aux éléments de bloc ;

:before - insère le contenu généré avant l'élément ;

:after - ajoute le contenu généré après l'élément.

3. Combinaison de sélecteur

Pour sélectionner plus précisément les éléments à formater, vous pouvez utiliser des combinaisons de sélecteurs :

img:nth-of-type(even) - sélectionnera toutes les images paires dont le texte alternatif contient le mot css .

4. Regroupement des sélecteurs

Le même style peut être appliqué à plusieurs éléments en même temps. Pour ce faire, vous devez lister les sélecteurs requis sur le côté gauche de la déclaration, séparés par des virgules :

H1, h2, p, span ( couleur : tomate ; fond : blanc ; )

5. Héritage et cascade

L'héritage et la cascade sont deux concepts fondamentaux en CSS étroitement liés. L'héritage est l'endroit où les éléments héritent des propriétés de leur parent (l'élément qui les contient). La cascade se manifeste dans la manière dont différents types de feuilles de style sont appliqués à un document et dans la manière dont les règles contradictoires se remplacent les unes les autres.

5.1. Héritage

Héritage est le mécanisme par lequel certaines propriétés sont transmises d'un ancêtre à ses descendants. La spécification CSS permet l'héritage des propriétés liées au contenu textuel de la page, telles que la couleur, la police, l'espacement des lettres, la hauteur de ligne, le style de liste, l'alignement du texte, l'indentation du texte, la transformation du texte, la visibilité, le blanc. -espace et espacement des mots. Dans de nombreux cas, cela est pratique car vous n'avez pas besoin de définir la taille et la famille de polices pour chaque élément de la page Web.

Les propriétés liées au formatage des blocs ne sont pas héritées. Ce sont background , border , display , float et clear , height et width , margin , min-max-height et -width , outline , overflow , padding , position , text-decoration , vertical-align et z-index .

Héritage forcé

Vous pouvez utiliser le mot-clé hériter pour forcer un élément à hériter de n'importe quelle valeur de propriété de son élément parent. Cela fonctionne même pour les propriétés qui ne sont pas héritées par défaut.

Comment les styles CSS sont définis et fonctionnent

1) Les styles peuvent être hérités de l'élément parent (propriétés héritées ou en utilisant la valeur héritée) ;

2) Les styles situés dans la feuille de style ci-dessous remplacent les styles situés dans le tableau ci-dessus ;

3) Des styles provenant de différentes sources peuvent être appliqués à un élément. Vous pouvez vérifier quels styles sont appliqués en mode développeur du navigateur. Pour ce faire, faites un clic droit sur l'élément et sélectionnez « Afficher le code » (ou quelque chose de similaire). La colonne de droite répertorie toutes les propriétés définies sur cet élément ou héritées d'un élément parent, ainsi que les fichiers de style dans lesquels elles sont spécifiées et le numéro ordinal de la ligne de code.


Riz. 2. Mode développeur dans le navigateur Google Chrome

4) Lors de la définition d'un style, vous pouvez utiliser n'importe quelle combinaison de sélecteurs - un sélecteur d'élément, une pseudo-classe d'élément, une classe ou un identifiant d'élément.

div (bordure : 1px solide #eee ;) #wrap (largeur : 500px ;).box (float : gauche ;).clear (clear : les deux ;)

5.2. Cascade

En cascade est un mécanisme qui contrôle le résultat final dans une situation où différentes règles CSS sont appliquées au même élément. Trois critères déterminent l'ordre dans lequel les propriétés sont appliquées : la règle importante, la spécificité et l'ordre dans lequel les feuilles de style sont incluses.

Règle!important

Le poids d'une règle peut être spécifié à l'aide du mot-clé!important, qui est ajouté immédiatement après la valeur de la propriété, par exemple span (font-weight: bold!important;) . La règle doit être placée à la fin de la déclaration avant la parenthèse fermante, sans espace. Une telle annonce prévaudra sur toutes les autres règles. Cette règle permet d'annuler une valeur de propriété et d'en définir une nouvelle pour un élément d'un groupe d'éléments dans le cas où il n'y a pas d'accès direct au fichier de style.

Spécificité

Pour chaque règle, le navigateur calcule spécificité du sélecteur, et si un élément a des déclarations de propriétés contradictoires, la règle qui a le plus de spécificité est prise en compte. La valeur de spécificité comporte quatre parties : 0, 0, 0, 0. La spécificité du sélecteur est définie comme suit :

pour l'identifiant, 0, 1, 0, 0 est ajouté ;
pour la classe 0, 0, 1, 0 est ajouté ;
pour chaque élément et pseudo-élément, 0, 0, 0, 1 est ajouté ;
pour un style en ligne ajouté directement à un élément - 1, 0, 0, 0 ;
Un sélecteur universel n'a aucune spécificité.

H1 (couleur : bleu clair ;) /*spécificité 0, 0, 0, 1*/ em (couleur : argent ;) /*spécificité 0, 0, 0, 1*/ h1 em (couleur : or ;) /*spécificité : 0, 0, 0, 1 + 0, 0, 0, 1 = 0, 0, 0, 2*/ div#main p.about (couleur : bleu ;) /*spécificité : 0, 0, 0, 1 + 0 , 1, 0, 0 + 0, 0, 0, 1 + 0, 0, 1, 0 = 0, 1, 1, 2*/ .sidebar (couleur : gris ;) /*spécificité 0, 0, 1, 0 */ #sidebar (couleur : orange ;) /*spécificité 0, 1, 0, 0*/ li#sidebar (couleur : aqua ;) /*spécificité : 0, 0, 0, 1 + 0, 1, 0, 0 = 0, 1, 0, 1*/

En conséquence, les règles plus spécifiques seront appliquées à l'élément. Par exemple, si un élément possède deux spécificités de valeurs 0, 0, 0, 2 et 0, 1, 0, 1, alors la deuxième règle l'emportera.

Ordre des tables connectées

Vous pouvez créer plusieurs feuilles de style externes et les connecter à une seule page Web. Si différentes valeurs de propriété pour un élément sont trouvées dans différentes tables, la règle trouvée dans la feuille de style répertoriée ci-dessous sera appliquée à l'élément.

Eh bien, pour commencer, je dirai que le sélecteur est utilisé pour identifier de manière unique l'élément du document HTML auquel nous souhaitons appliquer un style CSS particulier.

Sélecteur d'éléments

Jusqu’à présent, nous avons travaillé avec ce sélecteur. Le nom de l’élément html auquel nous souhaitions appliquer ce style a été utilisé comme sélecteur. Ceux. Après avoir écrit un cours par exemple pour le paragraphe (P), tous les paragraphes de la page ont acquis le style de ce cours.

P.{
taille de la police : 12 px
}

Imaginez maintenant une situation dans laquelle vous devez rédiger le premier paragraphe dans un style, le deuxième dans un autre, le troisième dans un troisième, etc. Ici, il viendra à notre aide sélecteur par classe.

Sélecteur par classe

Voyons comment créer une classe générique en CSS. Et c'est très simple à faire : on met d'abord un point, puis immédiatement, sans espace, on écrit le nom de la classe, puis le style entre accolades. Eh bien, par exemple :

.vert {
famille de polices : arial, verdana, sans-serif ;
taille de police : 12 px ; la couleur verte;
}

Comment appliquer ce style ?

Disons que nous souhaitons appliquer ce style à un paragraphe spécifique du document. Voici à quoi cela ressemblera en HTML :

classe = "vert" > ... texte du paragraphe...

Comme vous pouvez le voir, l'attribut est utilisé classe avec la signification du nom du style. Il est clair? Voici un autre exemple pour vous :

Ceci est un paragraphe normal, il utilise un sélecteur d'éléments


Class ="green "> Ce paragraphe est vert car une classe lui a été appliquée


Classe="big_red" > Et ce paragraphe est en plus gros caractères et en rouge


Ce paragraphe est encore une fois normal, par classe de sélecteur d'éléments

p {
famille de polices : arial, verdana, sans-serif ;
taille de police : 18 px ;
}
.vert(la couleur verte;)
.gros rouge{
taille de police : 28 px ;
La couleur rouge;
}

Nous spécifions d'abord le style de base pour tous les paragraphes (sélecteur par élément), puis, si nous voulons modifier quelque chose dans un paragraphe, créons un style spécial pour celui-ci (sélecteur par classe) et l'attribuons à ce paragraphe. Lorsque nous créons cette classe très spéciale, nous devons y écrire uniquement les propriétés que nous souhaitons ajouter ou modifier par rapport au style de base de cet élément.

Les classes de l'exemple ci-dessus peuvent être appliquées non seulement à un paragraphe, mais aussi, par exemple, aux titres, ou par exemple à une cellule d'un tableau, ou à l'ensemble du tableau ; en bref, elles peuvent être appliquées partout où elles peuvent affecter quelque chose. (dans ce cas, partout où il existe une option de couleur et de texte).

Vous pouvez faire agir la classe uniquement sur un élément spécifique (par exemple, un paragraphe) en spécifiant le nom de l'élément avant le point :

P.vert(la couleur verte;)

Désormais, la classe verte n’agira plus sur autre chose que l’élément P.

Haut

Sélecteur par identifiant

Ce sélecteur est utilisé si vous devez sélectionner un seul élément unique et différent de tous les autres dans le document. Par exemple, mettons en évidence le premier titre de la page d'une certaine manière :

partie html :

<Н1 id = "premier en-tête" > Premier titre de la page

css - partie :

H1#premieren-tête { La couleur rouge; poids de la police : gras ; alignement du texte : centre }

Comme vous pouvez le voir, dans la partie html, à la place de l'attribut class, l'attribut id est utilisé, et dans le css, au lieu d'un point, le signe # est utilisé.

En principe, la même chose peut être faite en utilisant un sélecteur de classe, selon ce que vous aimez :)

Haut

Sélecteur de contexte

C'est une chose très utile. Disons que nous avons une page avec des tableaux et des paragraphes de texte, et que dans le tableau et dans les paragraphes il y a des mots en gras (fort). Et donc, nous avons soudainement dû faire en sorte que les mots du paragraphe qui sont surlignés en gras deviennent verts. Alors voilà.

Un sélecteur fait partie d'une règle CSS qui indique au navigateur quel(s) élément(s) d'une page Web sera stylé.

Le terme sélecteur peut faire référence à un sélecteur simple, un sélecteur composé, un sélecteur complexe ou une liste de sélecteurs.

À sélecteurs simples se rapporter:

  • sélecteur de type
  • sélecteur universel
  • sélecteurs d'attributs
  • sélecteur d'identifiant
  • sélecteur de classe
  • pseudo-cours
Sélecteur CSSExempleDescriptionCSS
.classe .Ma classe Sélectionne tous les éléments avec la classe myClass (class="myClass"). 1
#identifiant #principal Sélectionne l'élément avec l'identifiant principal (id="main"). 1
* Sélection de tous les éléments. 2
élément portée Sélection de tous les éléments . 1
élément, élément div, durée Sélection de tous les éléments
et tous les éléments .
1
[attribut] Sélectionne tous les éléments avec un attribut title. 2
[attribut="valeur"] Sélectionne tous les éléments avec un attribut title dont la valeur correspond exactement à la valeur spécifiée dans le sélecteur (title="cost"). !} 2
[attribut~="valeur"] Sélectionne tous les éléments avec un attribut title dont la valeur (n'importe où) contient la sous-chaîne (sous forme d'un seul mot) "one" (title="un et deux"). !} 2
[attribut|="valeur"] Sélectionne tous les éléments avec un attribut lang dont la valeur commence par "ru". 2
[attribut^="valeur"] un Sélection de chaque élément avec un attribut href dont la valeur commence par "https". 3
[attribut$="valeur"] Sélectionne tous les éléments avec un attribut src dont la valeur se termine par ".png" (src="some_img.png"). 3
[attribut*="valeur"] Sélectionne tous les éléments avec un attribut title dont la valeur (n'importe où) contient la sous-chaîne (sous la forme d'un seul mot ou d'une partie de celui-ci) "un" (title="un et deux"). !} 3

Sélecteur composite est une séquence de sélecteurs simples qui ne sont pas séparés par des combinateurs, c'est-à-dire qu'un sélecteur est immédiatement suivi du suivant. Il sélectionne un élément qui correspond à tous les sélecteurs simples qu'il contient. Le sélecteur de type ou le sélecteur universel inclus dans un sélecteur composé doit apparaître en premier dans cette séquence. Dans un sélecteur composé, un seul sélecteur de type ou sélecteur universel est autorisé.

Span.className p.className1.className2#someId:hover

Sélecteur complexe est une séquence de sélecteurs séparés par des combinateurs.

Liste des sélecteurs sont des sélecteurs séparés par des virgules.

Combinateurs

Pour combiner des sélecteurs CSS simples, des combinateurs sont utilisés pour indiquer la relation entre les sélecteurs simples. Il existe plusieurs combinateurs différents en CSS2, et un supplémentaire en CSS3, lorsque vous les utilisez, ils changent la nature du sélecteur lui-même.

Pseudo-classes

Une pseudo-classe est un simple sélecteur utilisé pour sélectionner quelque chose qui ne peut pas être sélectionné à l'aide d'autres sélecteurs ou qui peut être sélectionné de manière assez difficile.

Pseudo-classeExempleDescriptionCSS
:lien un lien Sélectionne tous les liens non visités. 1
:a visité a: visité Sélectionnez tous les liens visités. 1
:actif a: actif Sélection d'un lien actif. 1
:flotter a: survol Sélection d'un lien lors du survol du curseur de la souris. 1
:se concentrer entrée: focus Sélection des éléments , qui est au centre. 2
:premier enfant p:premier enfant Sélection de chaque élément

Qui est le premier enfant de son parent.

2
:lang(langue) p:lang(ru) Sélection de chaque élément

Avec un attribut lang dont la valeur commence par "ru".

2
:premier du type p : premier du type Sélection de chaque élément

Quel est le premier des éléments

3
:dernier-du-type p:dernier du type Sélection de chaque élément

Quel est le dernier des éléments

Son élément parent.

3
:uniquement de type p: uniquement de type Sélection de chaque élément

Quel est le seul élément

Son élément parent.

3
:fils unique p:enfant unique Sélection de chaque élément

Quel est le seul élément enfant de son élément parent.

3
:ntième-enfant(n) p: nième enfant (2) Sélection de chaque élément

Son élément parent.

3
:ntième-dernier-enfant(n) p:ntième-dernier-enfant(2) Sélection de chaque élément

Qui est le deuxième enfant de son élément parent, à compter du dernier enfant.

3
:ntième-de-type(n) p:nième-de-type(2) Sélection de chaque élément

Quel est le deuxième enfant

Son élément parent.

3
:ntième-dernier-de-type(n) p:ntième-dernier-de-type(2) Sélection de chaque élément

Quel est le deuxième enfant

Son élément parent, à partir du dernier élément enfant.

3
3
:non(sélecteur) :pas p) Sélection de tous les éléments sauf l'élément

.

3

Pseudo-éléments

Un pseudo-élément est un élément virtuel qui n'existe pas explicitement dans l'arborescence des éléments du document. Les pseudo-éléments sont utilisés pour sélectionner des parties d'un élément qui ne peuvent pas être sélectionnées à l'aide d'autres sélecteurs, ainsi que pour styliser des parties d'un élément plutôt que l'élément entier.

Les sélecteurs CSS sont une structure CSS spécifique qui vous permet de sélectionner un élément spécifique dans le code HTML et de le styliser. Chacun d'eux a sa propre spécificité, c'est-à-dire qu'il peut chevaucher les propriétés d'autres, « plus faibles ».

Sélecteur CSS par balise et classe

Les sélecteurs les plus simples sont par balise et par classe. Le sélecteur de balises est le plus général et sélectionne tous les éléments avec une balise spécifique. Par exemple, vous pouvez écrire du code CSS comme celui-ci dans les propriétés : « p (color : blue) », où « p » est la balise de paragraphe et la propriété « color : blue » indique la couleur du texte. En conséquence, le texte de tous les paragraphes deviendra bleu. Les sélecteurs par balise peuvent être répertoriés séparés par des virgules, il ne sera alors pas nécessaire d'écrire la propriété deux fois.

Si certains paragraphes reçoivent une classe, telle que "bleu", le déclenchement du sélecteur CSS peut être encore plus précis. Mais son entrée dans les propriétés sera différente : un point apparaîtra avant le nom de la classe. Autrement dit, pour sélectionner tous les paragraphes auxquels est attribuée la classe « bleu » et les colorer en bleu, vous devez écrire le code suivant dans les propriétés CSS : « .blue : (couleur : bleu) ». Ce sélecteur est plus spécifique et plus puissant que le sélecteur de balises CSS, mais c'est l'un des plus simples. Il existe également des règles plus complexes qui permettent de sélectionner de petits groupes d'éléments.

Caractéristiques des sélecteurs par ID

Les sélecteurs par identifiant ou par identifiant sont plus spécifiques que par classe et attribut. Autrement dit, lorsqu'ils sont utilisés en cascade, ils « l'emporteront » sur d'autres sélecteurs similaires. Les identifiants aident également à sélectionner précisément un élément spécifique dans le code, mais leur utilisation dans la conception de pages est considérée comme une mauvaise pratique parmi les concepteurs de mise en page. Ce n'est que dans de très rares cas, par exemple lors de la création d'un slider à l'aide de CSS, que cette pratique est acceptable. Le fait est que sur une page, il ne peut y avoir qu'un seul élément avec un identifiant spécifique. Par conséquent, en raison du caractère unique du sélecteur d’identifiant CSS, il ne peut être utilisé que sur un seul élément. Dans ce cas, il est beaucoup plus judicieux d’utiliser des classes plutôt que des identifiants.


Différentes opinions sur le sélecteur d'identifiant

Mais il existe également l'opinion opposée selon laquelle l'identifiant aide à déterminer le morceau de code sur la page qui devrait être en un seul exemplaire. Cela dit, même si les sélecteurs de classe peuvent le remplacer, ils doivent être utilisés pour de grands groupes d'éléments, et dans les endroits où la précision est requise, il est préférable d'utiliser id. Chaque maquettiste a le droit de développer sa propre opinion personnelle sur cette question et d'écrire du code dans son propre style. Lors de l'écriture d'un sélecteur par identifiant, le symbole « # » est utilisé devant lui. C'est-à-dire que la ligne de code ressemblera à ceci : « #blue : (couleur : bleu) ». Avec cette entrée, l'élément avec l'identifiant « #blue » sera coloré en bleu.


Utiliser une cascade

Lorsque vous utilisez des sélecteurs d'identifiant CSS en HTML, vous pouvez également utiliser la propriété en cascade. Par exemple, si à l'intérieur d'une balise avec un identifiant, vous devez sélectionner une balise enfant et modifier ses propriétés, vous devez d'abord écrire le nom de l'identifiant avec un dièse, puis la balise enfant et ses propriétés. De tels sélecteurs sont appelés imbriqués. Autrement dit, la ligne de code ressemblera à ceci : « #id p (couleur : bleu). » Ensuite, à l'intérieur de l'élément parent portant cet identifiant, la couleur du texte du paragraphe enfant passera au bleu.

Utilisation des sélecteurs d'éléments enfants

Une autre option pour utiliser une cascade pour modifier les propriétés des éléments enfants consiste à sélectionner uniquement une partie spécifique du code. On l'appelle également sélecteur de descendants. Par exemple, pour sélectionner un paragraphe dans une ligne de tableau, l'entrée de sélecteur CSS suivante est utilisée : « ul li > p : (couleur : bleu) ». Il convient de prêter attention au fait que plus l'enregistrement est long, plus la probabilité qu'il soit possible de modifier une propriété spécifique de l'élément est élevée, car elle devient une priorité plus élevée pour la cascade. Par exemple, les éléments possédant une autre propriété de sélecteur CSS sur une classe qui est le parent ne modifieront pas complètement leurs propriétés. Seule une certaine partie du texte à l'intérieur de la liste sera recolorée.

Sélecteur d'éléments frères et sœurs

Une autre façon intéressante d’utiliser la cascade consiste à utiliser les sélecteurs CSS adjacents. Ils s'écrivent comme la somme des sélecteurs : « span + a (couleur bleu) ». Dans ce cas, un voisin est considéré comme celui sous lequel se trouve un autre qui correspond aux paramètres requis. Ainsi, s'il y a trois éléments dans le code, alors la propriété ne sera pas appliquée au premier d'entre eux, car il n'a pas de voisin, mais à tous les suivants - oui. Cela se produit à cause de l'icône de somme lorsque les sélecteurs suivants sont ajoutés plutôt que les précédents. Cette notation permet de raccourcir le code et d'éviter d'écrire plusieurs sélecteurs CSS pour différentes balises, en leur appliquant les mêmes propriétés. Si le deuxième élément de la liste reçoit en plus une classe et que l'entrée est modifiée en « .class + a(color blue) », alors le compte à rebours commencera à partir de celui-ci et les propriétés changeront pour les éléments suivants qui correspondent à la règle, mais les deux premiers resteront les mêmes.


Supposons maintenant que dans notre code il y ait trois balises identiques avec des classes différentes et que nous devions sélectionner tous les éléments après un élément spécifique. Dans ce cas, l’utilisation seule des sélecteurs de balises CSS n’aidera pas. Pour cela, utilisez le sélecteur suivant : « .class ~ div ». Cela sélectionne les éléments avec la balise div qui viennent après la classe donnée. Si nous voulons sélectionner non seulement les éléments avec la balise div, mais également tous les suivants, au lieu de la balise après le signe tilde, nous devons mettre un astérisque - "*". Une telle entrée signifie que vous devrez sélectionner tout ce qui suit la classe donnée. Vous pouvez sélectionner tous les éléments de la page si vous ne laissez que l'astérisque comme sélecteur.

Sélecteurs par attribut CSS

Disons que dans notre code il y a des éléments avec certains attributs, mais ils sont tous différents les uns des autres et écrits avec un trait d'union, et nous devons sélectionner tous ceux dont le nom de classe commence par un certain mot, par exemple « sélecteur », et les classes sont séparées par le signe "-". Que devez-vous faire dans ce cas ? L'entrée du sélecteur commence par des crochets, où le nom de l'attribut est d'abord écrit, puis une barre oblique verticale, le signe « = » et « sélecteur » : « data- |= selector ». Ensuite, écrivez la propriété souhaitée que vous souhaitez modifier. En conséquence, un élément avec les paramètres spécifiés sera sélectionné. En changeant de classe, vous pouvez modifier les propriétés de certaines parties du code. Si les noms de classe ne sont pas écrits avec un trait d'union, mais sous la forme d'un seul mot, ils peuvent également être sélectionnés, mais en utilisant une notation légèrement différente. Dans ce cas, la barre oblique verticale est remplacée par le symbole « ^ » : « data^ = selector ». Ce sélecteur sélectionne une sous-chaîne avec le début du nom de la classe.


Comment sélectionner un élément avec une terminaison spécifique dans le nom de la classe

Faisons maintenant les choses différemment et sélectionnons des parties du code non pas par le début de la description de la classe, mais par les dernières lettres de son nom. Pour cela, nous avons besoin d'un signe dollar. On le met à la place de la case à cocher, et après le signe égal on écrit la fin du nom de la classe : « data$ = ctor ». Désormais, les éléments avec cette combinaison de lettres seront sélectionnés et certaines propriétés leur seront appliquées. Vous pouvez sélectionner n'importe quel attribut. Voyons quoi faire si nous devons trouver un élément avec une combinaison de lettres au milieu d'un mot. Dans ce cas, on change le signe dollar en astérisque, et après le signe égal on écrit les lettres nécessaires : « data* = ct ».


Pseudo-classes - sélecteurs spéciaux

Pour les liens, on utilise généralement des sélecteurs de style CSS spéciaux qui affichent leurs différents états : silencieux, actif, actif, terminé - ceux-ci sont appelés pseudo-classes. La pseudo-classe d'un lien actif survolé s'écrit ainsi : « a:active ». Viennent ensuite quelques propriétés, le plus souvent le fond est modifié ou une ombre est ajoutée. Si vous ajoutez cette propriété à un lien et cliquez dessus, sa couleur changera pour celle spécifiée. Une autre pseudo-classe - le survol montre que le lien a déjà été visité. Il s'écrit ainsi : « a:hover ».


Caractéristiques des états actif et focus

Actif est souvent confondu avec un autre état : la concentration. Il s'écrit ainsi : « a:focus » et indique l'état actif du bouton lorsque l'on travaille depuis le clavier. Autrement dit, si vous utilisez la touche TAB, le lien actif sera mis en évidence dans une couleur spéciale. Cette propriété doit être utilisée car tous les utilisateurs ne peuvent pas utiliser la souris pour naviguer sur le site. Certains peuvent avoir une mauvaise vue ou d’autres problèmes de santé, ils se déplacent donc sur la page à l’aide de touches ou d’appareils spéciaux. Ignorer l'état d'un bouton au focus est un gros inconvénient pour un paramètre de conception de site tel que l'accessibilité, et a un impact significatif sur son trafic pour une catégorie particulière d'utilisateurs. Lors d'une navigation normale avec la souris, le lien devient à la fois actif et net. Par conséquent, il est important d’y prêter attention lors du style des éléments.

Pseudo-éléments

Les pseudo-éléments vous permettent de spécifier des styles spécifiques sans les définir dans la structure HTML elle-même. Ils s'écrivent ainsi : nom du sélecteur, signe « :: », nom du pseudo-élément. Les éléments les plus courants sont « avant » et « après ». Ils ont une propriété « contenu » et ne peuvent pas être appliqués aux styles internes. « Après » est nécessaire pour ajouter du contenu après le contenu d'un certain élément. Ce qui doit être inséré exactement est enregistré dans la propriété « content ». De même, le pseudo-élément "avant" ajoute du contenu avant le contenu de l'élément. L'utilisation de ces sélecteurs spéciaux vous permet de raccourcir le code et de ne pas écrire une nouvelle structure pour une partie de celui-ci à chaque fois si vous devez ajouter un petit détail à un certain endroit du conteneur. Ils sont très souvent utilisés pour styliser les pages et ajouter des éléments décoratifs. Les combinaisons de toutes ces options contribuent à créer des effets inhabituels sur la page et aident grandement le concepteur de mise en page.

Le sélecteur est utilisé pour identifier de manière unique l'élément du document HTML auquel nous souhaitons appliquer un style CSS particulier.

  • Sélecteur par élément ;
  • Sélecteur par classe ;
  • Sélecteur par identifiant ;
  • Sélecteur de contexte ;

Sélecteur d'éléments

Jusqu’à présent, nous avons travaillé avec ce sélecteur. Le nom de l’élément html auquel nous souhaitions appliquer ce style a été utilisé comme sélecteur. Ceux. Après avoir écrit un cours par exemple pour le paragraphe (P), tous les paragraphes de la page ont acquis le style de ce cours.

P(
taille de la police : 12 px
}

Imaginez maintenant une situation dans laquelle vous devez rédiger le premier paragraphe dans un style, le deuxième dans un autre, le troisième dans un troisième, etc. Ici, il viendra à notre aide sélecteur par classe.

Sélecteur par classe

Voyons comment créer une classe générique en CSS. Et c'est très simple à faire : on met d'abord un point, puis immédiatement, sans espace, on écrit le nom de la classe, puis le style entre accolades. Par exemple:

.vert(
famille de polices : arial, verdana, sans-serif ;
taille de police : 12 px ; la couleur verte;
}

Comment appliquer ce style ?

Disons que nous souhaitons appliquer ce style à un paragraphe spécifique du document. Voici à quoi cela ressemblera en HTML :

Texte du paragraphe...

Comme vous pouvez le voir, l'attribut est utilisé classe avec la signification du nom du style.

EXEMPLE:

Ceci est un paragraphe normal, il utilise un sélecteur d'éléments


Ce paragraphe est vert car une classe lui a été appliquée


Et ce paragraphe est en plus gros caractères et en rouge


Ce paragraphe est encore une fois normal, par classe de sélecteur d'éléments

p(
famille de polices : arial, verdana, sans-serif ;
taille de police : 18 px ;
}
.green (couleur : vert ;)
.gros rouge(
taille de police : 28 px ;
La couleur rouge;
}

Nous spécifions d'abord le style de base pour tous les paragraphes (sélecteur par élément), puis, si nous voulons modifier quelque chose dans un paragraphe, créons un style spécial pour celui-ci (sélecteur par classe) et l'attribuons à ce paragraphe. Lorsque nous créons cette classe très spéciale, nous devons y écrire uniquement les propriétés que nous souhaitons ajouter ou modifier par rapport au style de base de cet élément.

Les classes de l'exemple ci-dessus peuvent être appliquées non seulement à un paragraphe, mais aussi, par exemple, à des titres, ou, par exemple, à une cellule d'un tableau, ou à l'ensemble du tableau ; en bref, elles peuvent être appliquées partout où elles le peuvent. affecter quelque chose (dans ce cas, partout où il y a un paramètre de couleur et de texte).

Vous pouvez faire agir la classe uniquement sur un élément spécifique (par exemple, un paragraphe) en spécifiant le nom de l'élément avant le point :

P.green (couleur : vert ;)

Désormais, la classe verte n’agira plus sur autre chose que l’élément P.

Sélecteur par identifiant

Ce sélecteur est utilisé si vous devez sélectionner un seul élément, unique, différent de tous les autres dans le document. Par exemple, mettons en évidence le premier titre de la page d'une certaine manière :

partie html :

<Н1 id="firstheader">Premier titre de la page

css - partie :

H1#firstheader ( couleur : rouge ; poids de la police : gras ; alignement du texte : centre )

Comme vous pouvez le voir, dans la partie html, à la place de l'attribut class, l'attribut id est utilisé, et dans le css, au lieu d'un point, le signe # est utilisé.

En principe, on peut faire la même chose en utilisant un sélecteur par classe J

Sélecteur de contexte

C'est une chose très utile. Disons que nous avons une page avec des tableaux et des paragraphes de texte, et que dans le tableau et dans les paragraphes il y a des mots en gras. Il faut s'assurer que les mots du paragraphe surlignés en gras deviennent verts. Voici donc :

p fort (couleur: vert)

Ceux. d'abord P. puis un espace, puis FORT, et alors seulement le style. Cette ligne ressemble à ceci : Si à l'intérieur de l'élément P. il y a un élément FORT puis attribuez un style vert à l'élément fort.

La nidification peut être de n’importe quel niveau. Voici un autre exemple : « Si soudainement à l’intérieur d’une cellule de tableau ( td) , paragraphe ( P) ,à l'intérieur duquel il y aura un mot surligné en gras ( FORT), alors laissez ce mot devenir rouge ! "

td p fort (couleur : rouge ;)



Avez-vous aimé l'article? Partagez-le