Maison > interface Web > tutoriel HTML > le corps du texte

Tutoriel sur l'utilisation des pseudo-éléments ::before et ::after

巴扎黑
Libérer: 2017-06-26 11:53:13
original
2245 Les gens l'ont consulté

Les deux pseudo-éléments

::before et ::after sont en réalité du contenu en CSS3. Cependant, ils sont déjà présents en CSS2, mais en CSS2 ils sont représentés par un deux-points devant (: before et :after). Aujourd'hui, je vais principalement parler de la façon d'utiliser ces deux pseudo-éléments.

1. Vous pouvez y ajouter des styles tout comme les éléments ordinaires

Par exemple, si je veux ajouter une icône devant le texte, si je l'écris avec des éléments ordinaires, je peux écrire comme ça :

/*CSS*/.del{ font-size: 20px;}.del i{ display: inline-block; width: 20px; height: 25px; margin-right: 2px; vertical-align: middle; background: url("imgs/delete.png") no-repeat center; background-size: 100%;}.del span{ vertical-align: middle;}
Copier après la connexion
/*HTML*/
<div class="del"><i></i><span>删除</span></div>
Copier après la connexion

Mais c'est toujours inconfortable de laisser un i tag vide, alors supprimez-le simplement !

/*CSS*/.del{ font-size: 20px;}.del::before{ content: ""; display: inline-block; width: 20px; height: 25px; margin-right: 2px; vertical-align: middle; background: url("imgs/delete.png") no-repeat center; background-size: 100%;}.del span{ vertical-align: middle;}
Copier après la connexion
/*HTML*/
<div class="del"><span>删除</span></div>
Copier après la connexion

Ici, le pseudo-élément ::before est utilisé directement pour remplacer la balise i vide. Les deux ont le même effet :

Utilisé de la même manière À cet égard, nous pouvons utiliser le pseudo-élément ::after pour résoudre le problème classique de la suppression des flottants :

.clearfix::after{ display:block; clear:both; content:""; overflow:hidden; height:0; }
Copier après la connexion

Bien sûr, si votre site Web doit toujours être compatible avec IE8 , puis utilisez :after, car ::after n'est pas compatible.

2. Insérer du texte dans des éléments

Parfois, je peux avoir besoin d'ajouter le même texte à plusieurs éléments en même temps, vous pouvez donc envisager d'utiliser ces deux pseudo-éléments. Par exemple :

/*CSS*/.up:after{ content: &#39;↑&#39;; color: #f00;}.down:after{ content: &#39;↓&#39;; color: #0f0;}
Copier après la connexion
/*HTML*/
<p class="up">上升</p>
<p class="down">下降</p>
Copier après la connexion

L'effet est le suivant :

3. Insérez une image dans l'élément

pour obtenir quelque chose de similaire à celui de cet article. Dans un exemple d'ajout d'effets de texte à des images, vous pouvez également utiliser des pseudo-éléments pour insérer des images directement sans utiliser d'image de fond, comme ceci :

/*CSS*/.del{ font-size: 20px;}.del::before{ content: url("imgs/delete.png"); display: inline-block; margin-right: 2px; vertical-align: middle; }.del span{ vertical-align: middle;}
Copier après la connexion

Mais il est important de noter que lors d'une insertion de cette manière, la taille de l'image ne peut pas être modifiée en contrôlant la taille du pseudo-élément, elle ne peut introduire qu'une image de taille fixe (c'est un peu déroutant...), donc. Personnellement, je pense qu’il est préférable d’utiliser une image de fond honnête et pratique.

4. Insérez des numéros de projet consécutifs

Peut-être me direz-vous, n'est-il pas facile d'ajouter des numéros de projet consécutifs ? Utilisez simplement la liste ordonnée directement !

Oui, c'est bel et bien possible, comme ceci :

<p>我的爱好:</p><ol><li>吃饭</li><li>睡觉</li><li>打豆豆</li></ol>
Copier après la connexion

C'est l'effet sous Chrome :


Ça a l'air bien, pas de problème, que se passe-t-il si je veux mettre en gras le numéro de série précédent ? J'étais confus...

À ce moment-là, vous avez dit, ne puis-je pas simplement ajouter manuellement des étiquettes et des chiffres avant chaque texte, puis ajouter des styles aux étiquettes ?

/*CSS*/ul li{ list-style: none;}ul li span{ font-weight: bold;}
Copier après la connexion
/*HTML*/<p>我的爱好:</p><ul><li><span>1.</span>吃饭</li><li><span>2.</span>睡觉</li><li><span>3.</span>打豆豆</li></ul>
Copier après la connexion

Oui, il est trois heures maintenant. Et s'il était trente ou trois cents ? Les ajouter un par un ? (Très bête et naïf...)

Si vous utilisez du CSS pur en ce moment, vous devez utiliser des pseudo éléments :

/*CSS*/ul li{ list-style: none; counter-increment: number;}   //number相当于是个变量,随便取名就好,在伪元素中调用ul li::before{ content: counter(number)"."; font-weight: bold;}  //注意这里不同于JS,counter(number)与"."之间不需要加任何东西,直接连接就好
Copier après la connexion
/*HTML*/<p>我的爱好:</p><ul><li>吃饭</li><li>睡觉</li><li>打豆豆</li></ul>
Copier après la connexion

L'effet est le suivant :

Donc, si je ne veux pas de chiffres arabes, mais que je veux utiliser des chiffres chinois, est-ce que ça va ?

Oui ! Les pseudo-éléments sont sympas et puissants !

ul li{ list-style: none; counter-increment: number;}  
ul li::before{ content: counter(number,cjk-ideographic)"、"; font-weight: bold;}
Copier après la connexion

L'effet est le suivant :

En plus de cela cjk-ideographic, vous pouvez également utiliser davantage d'attributs de type style de liste dans CSS : (Coller directement le formulaire dans w3cshool)


Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal