Tutoriel CSS - Sélecteurs CSS adjacents. Sélecteurs adjacents Quelles balises sont adjacentes dans ce code ?

La syntaxe CSS est simple et vous n'avez pas besoin d'un doctorat en informatique pour la comprendre. Cependant, c’est l’une des rares langues populaires qui n’est pas logique au vrai sens du terme. Contrairement à d'autres langages de programmation Web tels que JavaScript et PHP, CSS ne résout pas les problèmes en utilisant la logique conventionnelle. Des algorithmes tels que « si X, alors faites Y, sinon faites Z » ou « sélectionnez tous les Y, puis faites X avec eux » ne peuvent pas être implémentés dans un langage comme CSS. En termes simples, c'est un langage conçu pour le design, un langage pour les concepteurs et non pour les développeurs. C'est précisément pour cette raison que certains des programmeurs expérimentés avec lesquels j'ai travaillé ont consacré beaucoup d'efforts à apprendre à maîtriser le CSS.

L'apprentissage du CSS commence par les classes et les identifiants, ainsi que par leur utilisation. et # pour désigner directement des éléments. Cela suffit pour créer un site Web entièrement fonctionnel, mais ce n’est pas une solution suffisamment flexible en cas de changement complet de conception. Jetons un coup d'œil à une approche alternative pour gérer ces éléments difficiles à atteindre.

Combinateur associé voisin
Commençons par un sélecteur pratique dans les situations complexes : le combinateur associé adjacent. Un combinateur associé adjacent est indiqué en connectant deux éléments à l'aide du signe + :

H1+p
Ceci sélectionne l'élément p suivant situé immédiatement après l'élément h1 dans le DOM. La théorie typographique suggère que nous devrions utiliser des retraits dans les paragraphes du texte, mais seulement s'ils suivent un autre paragraphe. En pratique, cela peut être utilisé pour mettre en retrait tous les paragraphes sauf le premier :
p + p ( retrait du texte : 1em ; )
C'est beaucoup plus pratique que de surligner le premier paragraphe en utilisant class="first". Trois lignes, pas de classes et prise en charge complète du navigateur. Si vous placez des balises img liées au contenu du site à l'intérieur des balises p (comme vous devriez en fait le faire), vous pouvez simplement reculer leurs marges de gauche en utilisant une valeur négative de -1em :
p + p img ( marge gauche : -1em ; )
Assez simple, non ? Que se passe-t-il si nous voulons sélectionner la première ligne de tous les paragraphes qui viennent immédiatement après les titres, sans modifier tous les autres paragraphes ? Encore une fois, nous pouvons utiliser la classe view. Un simple sélecteur constitué d'un combinateur composé adjacent et d'un pseudo-élément fera l'affaire :
h1 + p::première ligne ( font-variant: small-caps; )
Remarque : Le pseudo-element:first-line a été adopté dans CSS 2.1, mais CSS 3 utilise la notation :: pour faire la distinction entre les pseudo-classes et les pseudo-éléments.

Combinateur héréditaire
Un protocole de balisage courant consiste à placer des sections dans un élément nommé dans #page ou #wrap :

Description

Les éléments d'une page Web sont dits adjacents lorsqu'ils se succèdent immédiatement dans le code du document.

Syntaxe

E + F (Description des règles de style)

Pour contrôler le style des éléments adjacents, utilisez le symbole plus (+), placé entre les deux sélecteurs E et F. Les espaces autour du plus sont facultatifs. Ce style est appliqué à l'élément F, mais uniquement s'il est adjacent à l'élément E et le suit immédiatement. Regardons quelques exemples.

Lorem ipsum douleur asseyez-vous à temps.

Étiqueter est un enfant du tag

Parce que c'est à l'intérieur de ce conteneur. Respectivement

Agit en tant que parent .

Lorem ipsum douleur s'asseoir amet.

Balises Et ne se chevauchent en aucune façon et représentent des éléments adjacents. Le fait qu'ils soient situés à l'intérieur du conteneur

Cela n'affecte pas leur attitude.

Lorem ipsum douleur assis amet, consectetuer adipeux élite.

Les balises voisines sont ici Et , et aussi Et . En même temps Et les éléments adjacents ne sont pas traités car il y a un conteneur entre eux .

HTML5 CSS 2.1 IE Cr Op Sa Fx

Sélecteurs adjacents

Lorem ipsum douleur assis amet, consectetuerélite adipeuse.

Lorem ipsum dolor assis amet, consectetuerélite adipeuse.



Le résultat de cet exemple est présenté sur la Fig. 1.

Riz. 1. Couleur du texte rouge pour les sélecteurs adjacents

Navigateurs

Internet Explorer 7 n'applique pas le style s'il y a un commentaire entre les sélecteurs (B + /* plus */ I ).

Bonsoir chers collègues, aujourd'hui nous étudierons deux autres sélecteur qui sont appelés sélecteurs CSS enfants et adjacents. Dans une plus large mesure, vous pouvez vous en passer, cependant, pour votre développement vous devez les apprendre et parfois les appliquer pour qu'ils restent dans votre mémoire. Par conséquent, discutons de ce que sélecteurs sont voisins, et lesquels sont des enfants et nous les analyserons à l'aide d'un exemple.
Sélecteurs CSS enfants- les éléments situés à l'intérieur de l'élément parent. Un exemple de ceci pourrait être le suivant.
Nous avons un bloc contenant un paragraphe, un autre bloc et une image. Ces trois éléments sont les enfants. S'il y a également d'autres éléments dans un bloc enfant, alors ils ne sont plus des enfants du premier bloc, mais sont des enfants du bloc dans lequel ils se trouvent directement. J'espère que vous comprenez. Sélecteurs CSS adjacents - des éléments situés les uns après les autres dans le code du document. Un exemple de ceci est ceci. Nous avons un paragraphe et une balise suivante portée








. Tout est très clair et il suffit de regarder tout cela à l’aide d’exemples réels.


Texte dans le paragraphe

Texte en span








Il n'y a plus de texte enfant dans le paragraphe - des éléments situés les uns après les autres dans le code du document. Un exemple de ceci est ceci. Nous avons un paragraphe et une balise suivante

En utilisant les styles, nous ajouterons le même résultat pour la balise Division
>envergure (
}

taille de police : 200 % ; p
+envergure(
}

couleur : rouge ; - des éléments situés les uns après les autres dans le code du document. Un exemple de ceci est ceci. Nous avons un paragraphe et une balise suivante Le résultat de l'exécution du code dans les deux cas sera appliqué à la balise , car c'est un enfant de la balise div et ensuite après le tag p . Par conséquent, la police est devenue deux fois plus grande et rouge. Maintenant, nous avons complètement réglé sélecteurs d'enfants et de voisins en CSS

, et il ne vous reste plus qu'à renforcer vos connaissances par la pratique, à bientôt !

Salutations, chers lecteurs. Dans les articles précédents, nous avons étudié principalement les attributs de style CSS. Il y en a beaucoup. Certains définissent les paramètres de police, d'autres les paramètres d'arrière-plan et d'autres encore les paramètres de retrait et de cadres.

Dans cet article, nous parlerons des sélecteurs de style. Dans l'un des articles que nous avons déjà évoqués. Aujourd'hui, nous examinerons plusieurs autres types de sélecteurs qui ne lient pas explicitement une règle de style à un élément de page Web. Ce sont ce qu'on appelle des sélecteurs spéciaux. Il en existe plusieurs types.

Combinateurs en CSS (sélecteurs adjacents, enfants et contexte) Combinateurs

sont un type de sélecteur CSS qui lient une règle de style à un élément de page Web en fonction de son emplacement par rapport aux autres éléments. Premier symbole combinateur plus (+) ou sélecteur adjacent

<селектор 1> + <селектор 2> { <стиль> }

. Plus est défini entre deux sélecteurs : Le style dans ce cas est appliqué à sélecteur 2 , mais seulement s'il est adjacent à sélecteur 1

et vient juste après. Regardons un exemple :

}
...

fort + je ( C'est un texte normal. C'est du texte en gras , texte brut,


fort + je ( C'est un texte normal. C'est du texte en gras texte rouge.

et c'est un texte normal

Résultat: Le style décrit dans l'exemple sera appliqué uniquement au premier texte inclus dans la balise .

, parce que ça vient immédiatement après le tag Combinateur(~) s'applique également aux sélecteurs adjacents, mais cette fois il peut y avoir d'autres éléments entre eux. Dans ce cas, les deux sélecteurs doivent être imbriqués dans la même balise parent :

<селектор 1> ~ <селектор 2> { <стиль> }

Le style sera appliqué à Le style dans ce cas est appliqué à qui devrait suivre sélecteur 1. Prenons un exemple :

fort ~ je (
couleur : rouge ; /* Couleur du texte rouge */
}
...

fort + je ( C'est un texte normal. C'est du texte en gras , texte brut, la règle de sélection adjacente qui lui est appliquée.


fort + je ( C'est un texte normal. C'est du texte en gras et voici le texte rouge.

et c'est un texte normal

Comme vous pouvez le constater, cette fois la règle de style a fonctionné pour les deux textes inclus dans la balise , malgré le fait que dans le deuxième cas entre la balise Et ça vaut le coup .

, parce que ça vient immédiatement après le tag > fait référence à sélecteurs d'enfants. Vous permet de lier le style CSS à un élément de page Web directement imbriqué dans un autre élément :

<селектор 1> > <селектор 2> { <стиль> }

Style sera lié à Le style dans ce cas est appliqué à, qui est directement imbriqué dans sélecteur 1.

div > fort (

}
...

fort + je ( Il s'agit d'un texte italique et gras.

fort + je ( Et c'est du texte en gras normal.


Et le résultat :

Comme vous pouvez le voir sur la figure, la règle de style n'a affecté que la première balise , qui est directement imbriqué dans la balise

. Et le parent immédiat de la deuxième balise est l'étiquette

, donc la règle ne s'applique pas à lui.

Ensuite, nous examinerons sélecteur de contexte<пробел> . Il vous permet de lier un style CSS à un élément imbriqué dans un autre élément, et il peut y avoir n'importe quel niveau d'imbrication :

<селектор 1> <селектор 2> { <стиль> }

Le style sera appliqué à Le style dans ce cas est appliqué à, s'il est imbriqué d'une manière ou d'une autre dans sélecteur 1.

Regardons l'exemple précédent, uniquement pour décrire une règle CSS, nous utilisons le sélecteur de contexte :

div fort(
style de police : italique /* Italique */
}
...

fort + je ( Il s'agit d'un texte italique et gras.

fort + je ( Et c'est aussi du texte en italique et en gras.



Texte brut et juste du texte en gras

et c'est un texte normal

Comme vous pouvez le constater, cette fois la règle a affecté les deux balises , même celui qui est imbriqué dans le conteneur

et dans un paragraphe

. Pour taguer , qui est simplement imbriqué dans un paragraphe

La règle CSS ne fonctionne pas du tout.

Sélecteurs par attributs de balise

Les sélecteurs d'attribut sont des sélecteurs spéciaux qui lient un style à un élément selon qu'il contient un certain attribut ou a une certaine valeur. Il existe plusieurs options pour utiliser de tels sélecteurs.

1. Sélecteur d'attribut simple

On dirait :

<селектор>[<имя атрибута тега>] { <стиль> }

Et lie le style aux éléments dans lesquels l'attribut spécifié est ajouté. Par exemple:

fort(
couleur : rouge ;
}
...

Automobile c'est un moteur mécanique sans rail véhicule routier avec au moins 4 roues.

et c'est un texte normal

Sur l'image, vous pouvez voir que la règle CSS (couleur du texte rouge) est appliquée à l'élément fort, auquel l'attribut est ajouté titre.

2. Sélecteur d'attribut avec valeur

La syntaxe de ce sélecteur est la suivante :

<селектор>[<имя атрибута тега>=<значение>] { <стиль> }

Lie style aux éléments dont les balises ont un attribut avec le spécifié nom Et signification. Exemple:

un(
couleur : rouge ;
taille de police : 150 % ;
}
...
.ru" target="_blank">Lien dans une nouvelle fenêtre

et c'est un texte normal

Comme vous pouvez le constater, les deux éléments de type lien hypertexte ont l'attribut cible, mais la règle CSS qui agrandit le texte du lien d'une fois et demie et change sa couleur en rouge est appliquée à la balise dont l'attribut cible importe "_vide".

3. Une valeur d'attribut parmi plusieurs

Certaines valeurs d'attribut peuvent être séparées par des espaces, comme les noms de classe. Pour définir une règle de style lorsque la valeur requise est présente dans la liste des valeurs d'attribut, utilisez le sélecteur suivant :

[<имя атрибута тега>~=<значение>] { <стиль> }
<основной селектор>[<имя атрибута тега>~=<значение>] { <стиль> }

Le style est appliqué si l'attribut a la valeur requise ou fait partie d'une liste de valeurs séparées par des espaces. Par exemple:

{
couleur : rouge ;
taille de police : 150 % ;
}
...

Notre téléphone : 777-77-77


Notre adresse : Rue de Moscou. Sovetskaïa 5

Vous obtiendrez le résultat suivant :

La règle s'applique à un élément dont les valeurs d'attribut incluent : classe il y a un sens tél..

4. Trait d'union dans la valeur de l'attribut

Un trait d’union est autorisé dans les valeurs d’identifiant et de classe. Pour lier un style à des éléments dont les valeurs d'attribut peuvent contenir un trait d'union, vous pouvez utiliser la construction suivante :

[attribut|="valeur"] ( style )
Sélecteur[attribut|="valeur"] ( style )

Le style est appliqué aux éléments dont la valeur d'attribut commence par la valeur spécifiée suivie d'un trait d'union. Par exemple:

{
couleur : rouge ;
taille de police : 150 % ;
}
...



  • Point 2



et c'est un texte normal

Dans l'exemple, la règle de style s'applique uniquement aux éléments de liste dont le nom de classe commence par valeur "menu- ".

5. La valeur de l'attribut commence par un texte spécifique

Ce sélecteur définit le style d'un élément si la valeur de l'attribut de balise commence par une valeur spécifique. Il peut y avoir deux options :

[<имя атрибута тега>^=<подстрока>] { <стиль> }
<основной селектор>[<имя атрибута тега>^=<подстрока>] { <стиль> }

Dans le premier cas style s'applique à tous les éléments dont les balises ont un attribut avec le spécifié nom et une valeur commençant par le spécifié sous-chaînes. Dans le deuxième cas, la même chose, seulement pour certains éléments précisés dans sélecteur principal. Exemple:

un(
couleur : vert ;
poids de la police : gras ;
}
...

et c'est un texte normal

L'exemple montre comment afficher différemment les liens externes et les liens internes. Les liens externes commencent toujours par la chaîne « http:// ». Par conséquent, dans le sélecteur, nous indiquons que le style sera appliqué uniquement aux liens qui ont l'attribut href commence par un sens http://.

6. La valeur de l'attribut se termine par un certain texte

Lie un style aux éléments dont la valeur d'attribut se termine par le texte spécifié. A la syntaxe suivante :

[<имя атрибута тега>$=<подстрока>] { <стиль> }
<основной селектор>[<имя атрибута тега>$=<подстрока>] { <стиль> }

Dans le premier cas style s'applique à tous les éléments qui ont attribut avec le spécifié nom et a une signification se terminant par le spécifié sous-chaîne. Dans le deuxième cas, la même chose, uniquement à l'endroit indiqué sélecteurs. De cette manière, par exemple, différents formats d'images graphiques peuvent être affichés différemment. Par exemple:

IMG (
bordure : 5px rouge uni ;
}
...

Image GIF



Format d'image png


et c'est un texte normal

Dans l'exemple, toutes les images avec une extension GIF seront affichées avec une bordure rouge de cinq pixels d'épaisseur.

7. La valeur de l'attribut contient la chaîne spécifiée

Ce sélecteur lie un style aux balises dont la valeur d'attribut contient un texte spécifique. Syntaxe:

[<имя атрибута тега>*=<подстрока>] { <стиль> }
<основной селектор>[<имя атрибута тега>*=<подстрока>] { <стиль> }

Style se lie aux éléments qui ont attribut avec le nom spécifié et sa valeur contient le spécifié sous-chaîne. Par exemple:

IMG (
bordure : 5px rouge uni ;
}
...

Image du dossier galerie



Image d'un autre dossier


et c'est un texte normal

Dans l'exemple, le style est appliqué aux images chargées à partir du dossier "galerie".

Tout dépend des sélecteurs d'attributs. Toutes les méthodes ci-dessus peuvent être combinées entre elles :

Sélecteur[attribute1="valeur1"][attribute2="valeur2"] ( style )

De plus, permettez-moi de vous rappeler les sélecteurs CSS spéciaux :

  • à l'aide des symboles « + » et « ~ » sont formés ;
  • le symbole ">" lie les styles CSS à filiales balises;
  • symbole<пробел>génère des sélecteurs de contexte.

Dans les prochains articles, nous examinerons également les pseudo-éléments et les pseudo-classes, qui fournissent de puissants outils de gestion de style.

C'est tout, à bientôt.



Des questions ?

Signaler une faute de frappe

Texte qui sera envoyé à nos rédacteurs :