Table des matières
Que sont ::before et ::after ?
::avant et ::après l'application
给标题加括号
给标题加引号
不设置quotes
标题
Maison interface Web tutoriel CSS Explication détaillée des pseudo-éléments en CSS::before et ::after

Explication détaillée des pseudo-éléments en CSS::before et ::after

Sep 14, 2021 am 10:14 AM
::after ::before css 伪元素

Cet article vous fera découvrir les pseudo-éléments ::before et ::after en CSS et verra leurs applications. J'espère qu'il vous sera utile !

Explication détaillée des pseudo-éléments en CSS::before et ::after

Cet article part du plus simple et explique comment comprendre et utiliser ::avant et ::après. Appliquez-le ensuite dans des scénarios d’utilisation réels.

Que sont ::before et ::after ?

::before et ::after sont des mots-clés qui peuvent être ajoutés aux sélecteurs pour créer des pseudo-éléments. Les pseudo-éléments sont insérés avant ou après le contenu de l'élément correspondant au sélecteur.

Explication détaillée des pseudo-éléments en CSS::before et ::after

attribut content

1) Le contenu unique sous ::before et ::after est utilisé pour ajouter du contenu à la tête ou à la queue logique de l'élément dans le rendu CSS.

2) ::before et ::after doivent être utilisés avec l'attribut content. Content sert à définir le contenu inséré. Le contenu doit avoir une valeur, au moins vide

3) Ces ajouts n'apparaîtront pas dans le DOM et. ne changera pas Le contenu du document ne peut pas être copié, il est uniquement ajouté dans la couche de rendu CSS. N'utilisez donc pas :before ou :after pour afficher du contenu significatif, essayez de les utiliser pour afficher du contenu décoratif

le contenu peut prendre les valeurs suivantes :

string

Utilisez des guillemets pour envelopper une chaîne, qui sera ajoutée au contenu de l'élément String

Explication détaillée des pseudo-éléments en CSS::before et ::after

 p::before{
    content: "《";
    color: #000000;
}
p::after{
    content: "》";
    color:#000000;
}

<p>JavaScript高级程序设计</p>
Copier après la connexion

attr()

appelle les attributs de l'élément actuel via attr(), comme l'affichage du texte alternatif de l'image ou l'adresse href du lien.

Explication détaillée des pseudo-éléments en CSS::before et ::after

a::after {
    content: &#39; → &#39; attr(href); /* 在 href 前显示一个箭头 */
}

 <a href="https://www.baidu.com/">百度地址</a>
Copier après la connexion

Explication détaillée des pseudo-éléments en CSS::before et ::after

 a::after{
    content: "【" attr(href) "】";
}

<a href="https://www.baidu.com/">百度地址</a>
Copier après la connexion

url()/uri()

est utilisé pour référencer des fichiers multimédias. Par exemple : "Baidu" donne une image au recto et l'attribut href au verso.

Explication détaillée des pseudo-éléments en CSS::before et ::after

a::before{
    content: url("img/baidu_jgylogo3.gif");
}
a::after{
    content:"("attr(href)")";
}

<a href="https://www.baidu.com/">百度地址</a>
Copier après la connexion

Note

1) Les URL ne peuvent pas utiliser de guillemets. Si vous mettez l'URL entre guillemets, elle devient une chaîne et insère le texte "url(image.jpg)" comme contenu, au lieu de l'image elle-même.

2) Attribut de contenu, utilisez l'image directement. Même si vous écrivez la largeur et la hauteur, la taille de l'image ne peut pas être modifiée

Solution : Si vous souhaitez résoudre ce problème, vous pouvez écrire le contenu :'' comme vide et utilisez background:url() Ajoutez des images

/*伪元素添加图片:*/
.wrap:after{
    /*内容置为空*/
    content:"";
    /*设置背景图,并拉伸*/
    background:url("img/0Explication détaillée des pseudo-éléments en CSS::before et ::after") no-repeat center;
    /*必须设置此伪元素display*/
    display:inline-block;
    /*必须设置此伪元素大小(不会被图片撑开)*/
    background-size:100%;
    width:100px;
    height:100px;
}复制代码
Copier après la connexion

3) Les pseudo-éléments ne prennent pas effet du côté Apple, img, input et autres balises simples n'ont pas de pseudo-éléments :after et :before (non disponibles dans certains navigateurs). , tels que : Apple les trouvera invalides), car une seule balise elle-même ne peut pas avoir d'éléments enfants.

Solution : Enveloppez un div dans l'img pour résoudre le problème

4) Si vous souhaitez modifier dynamiquement l'image du pseudo-élément, vous pouvez ajouter le style de base de l'image du pseudo-élément à l'élément actuel, et utilisez ensuite la classe dynamique pour écrire l'image du pseudo-élément.

::avant et ::après l'application

Utiliser avec l'attribut guillemets

Explication détaillée des pseudo-éléments en CSS::before et ::after

Ajouter des parenthèses

 h1{
    quotes:"(" ")";  /*利用元素的quotes属性指定文字符号*/
}
h1::before{
    content:open-quote;
}
h1::after{
    content:close-quote;
}

<h1 id="给标题加括号">给标题加括号</h1>
Copier après la connexion

Ajouter des guillemets

 h2{
    quotes:"\"" "\"";  /*添加双引号要转义*/
}
h2::before{
    content:open-quote;
}
h2::after{
    content:close-quote;
}

<h2 id="给标题加引号">给标题加引号</h2>
Copier après la connexion

Non spécifié, par défaut

 h3::before{
    content:open-quote;
}
h3::after{
    content:close-quote;
}

<h3 id="不设置quotes">不设置quotes</h3>
Copier après la connexion

Titre de la décoration

Explication détaillée des pseudo-éléments en CSS::before et ::after

h1 {
    display: grid;
    grid-template-columns: minmax(50px, 1fr) auto minmax(50px, 1fr);
    align-items: center;
    text-align: center;
    gap: 40px;
}

h1::before, h1::after {
    content: &#39;&#39;;
    border-top: 6px double;
}

<h1 id="标题">标题</h1>
Copier après la connexion

La mise en page est réalisée en transformant l'élément <h1> en 3 colonnes. La colonne de gauche et la colonne de droite sont des lignes doubles d'une largeur de minmax(50px, 1fr), ce qui signifie que leur largeur correspondante n'est toujours pas inférieure à 50px. Le texte du titre est parfaitement centré.

Titre du ruban

Explication détaillée des pseudo-éléments en CSS::before et ::after

 h1 {
    position: relative;
    margin: 0 auto 20px;
    padding: 10px 40px;
    text-align: center;
    background-color: #875e46;
}

h1::before, h1::after {
    content: &#39;&#39;;
    width: 80px;
    height: 100%;
    background-color: #724b34;

    /* 定位彩带两端形状的位置,并且放在最底层 */
    position: absolute;
    z-index: -1;
    top: 20px;

    /* 彩带两端的形状 */
    clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%, 25% 50%);

    /* 绘制并定位彩带的阴影三角形 */
    background-image: linear-gradient(45deg, transparent 50%, #5d3922 50%);
    background-size: 20px 20px;
    background-repeat: no-repeat;
    background-position: bottom right;
}

h1::before {
    left: -60px;
}

h1::after {
    right: -60px;
    transform: scaleX(-1); /* 水平翻转 */
}
---------------------------
 <h1 id="标题">标题</h1>
Copier après la connexion

obtenez des ombres plus réalistes

Explication détaillée des pseudo-éléments en CSS::before et ::after

.box{margin:10px;width:300px;height:100px;border-radius:10px;background:#ccc}
.shadow{position:relative;max-width:270px;box-shadow:0 1px 4px rgba(0,0,0,.3),0 0 20px rgba(0,0,0,.1) inset}
.shadow::after,.shadow::before{position:absolute;z-index:-1;content:""}
.shadow::after,.shadow::before{position:absolute;bottom:15px;left:10px;z-index:-1;width:50%;height:20%;content:""}
.shadow::after,.shadow::before{position:absolute;bottom:15px;left:10px;z-index:-1;width:50%;height:20%;box-shadow:0 15px 10px rgba(0,0,0,.7);content:"";transform:rotate(-3deg)}
.shadow::after{right:10px;left:auto;transform:rotate(3deg)}


<div class="box shadow"></div>
Copier après la connexion

Contenu de remplacement

Dans certains cas, le contenu n'a pas besoin d'être utilisé ::avant ou : après. Si le contenu est défini sur une seule image, vous pouvez l'utiliser directement sur un élément pour remplacer le contenu HTML de cet élément.

Par exemple, il y a les trois contenus suivants sur la page :

Explication détaillée des pseudo-éléments en CSS::before et ::after

Après avoir ajouté la classe de remplacement

.replace {
    content: url(img/replace.png);
}
Copier après la connexion

Explication détaillée des pseudo-éléments en CSS::before et ::after

1)具有简单文本的元素。它会被取代。
2)一个包含<img src="/static/imghw/default1.png" data-src="img/cat.jpg" class="lazy" alt="Explication détaillée des pseudo-éléments en CSS::before et ::after" >在其中的元素。它也会被取代。
3)<img src="/static/imghw/default1.png" data-src="img/cat.jpg" class="lazy" alt="Explication détaillée des pseudo-éléments en CSS::before et ::after" >直接一个元素。Firefox不会取代它,但其他浏览器会。

清除浮动

方式一:

.classic-clearfix::after {
    content: &#39;&#39;;
    display: block;
    clear: both;
}
Copier après la connexion

方式二:

.modern-clearfix {
    display: flow-root;
}
Copier après la connexion

1Explication détaillée des pseudo-éléments en CSS::before et ::after

模拟float:center的效果

float没有center这个取值,但是可以通过伪类来模拟实现。

原理:左右通过::before float各自留出一半图片的位置,再把图片绝对定位上去。

1Explication détaillée des pseudo-éléments en CSS::before et ::after

body { font: 14px/1.8 Georgia, serif;}
#page-wrap { width: 60%; margin: 40px auto; position: relative; }
#logo { position: absolute; top: 0; left: 50%; margin-left: -125px; }
#l, #r { width: 49%; }
#l { float: left; }
#r { float: right; }
#l:before, #r:before { content: ""; width: 125px; height: 250px; }
#l:before { float: right; }
#r:before { float: left; }

<div id="page-wrap">
    <img  src="/static/imghw/default1.png"  data-src="img/cat.jpg"  class="lazy"   id="logo" alt="Explication détaillée des pseudo-éléments en CSS::before et ::after" >
    <div id="l">
        <p>
            Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis luctus, metus
        </p>
    </div>
    <div id="r">
        <p>
            Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis luctus, metus
        </p>
    </div>
</div>
Copier après la connexion

1Explication détaillée des pseudo-éléments en CSS::before et ::after

引用参考:

W3C官方文档

Diving into the ::before and ::after Pseudo-Elements

Faking ‘float: center’ with Pseudo Elements

原文地址:https://juejin.cn/post/6986629782666477599

作者:Axjy

相关推荐:《css视频教程》!

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!

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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Les rôles de HTML, CSS et JavaScript: responsabilités de base Les rôles de HTML, CSS et JavaScript: responsabilités de base Apr 08, 2025 pm 07:05 PM

HTML définit la structure Web, CSS est responsable du style et de la mise en page, et JavaScript donne une interaction dynamique. Les trois exercent leurs fonctions dans le développement Web et construisent conjointement un site Web coloré.

Comment utiliser Bootstrap en Vue Comment utiliser Bootstrap en Vue Apr 07, 2025 pm 11:33 PM

L'utilisation de bootstrap dans vue.js est divisée en cinq étapes: installer bootstrap. Importer un bootstrap dans main.js. Utilisez le composant bootstrap directement dans le modèle. Facultatif: style personnalisé. Facultatif: utilisez des plug-ins.

Comment écrire des lignes fendues sur bootstrap Comment écrire des lignes fendues sur bootstrap Apr 07, 2025 pm 03:12 PM

Il existe deux façons de créer une ligne divisée bootstrap: en utilisant la balise, qui crée une ligne divisée horizontale. Utilisez la propriété CSS Border pour créer des lignes de fractionnement de style personnalisées.

Comment redimensionner le bootstrap Comment redimensionner le bootstrap Apr 07, 2025 pm 03:18 PM

Pour ajuster la taille des éléments dans Bootstrap, vous pouvez utiliser la classe de dimension, qui comprend: ajuster la largeur: .col-, .w-, .mw-ajustement Hauteur: .h-, .min-h-, .max-h-

Comment insérer des photos sur bootstrap Comment insérer des photos sur bootstrap Apr 07, 2025 pm 03:30 PM

Il existe plusieurs façons d'insérer des images dans Bootstrap: insérer directement les images, en utilisant la balise HTML IMG. Avec le composant d'image bootstrap, vous pouvez fournir des images réactives et plus de styles. Définissez la taille de l'image, utilisez la classe IMG-FLUID pour rendre l'image adaptable. Réglez la bordure en utilisant la classe IMG-border. Réglez les coins arrondis et utilisez la classe Roundée IMG. Réglez l'ombre, utilisez la classe Shadow. Redimensionner et positionner l'image, en utilisant le style CSS. À l'aide de l'image d'arrière-plan, utilisez la propriété CSS d'image d'arrière-plan.

Comment configurer le cadre de bootstrap Comment configurer le cadre de bootstrap Apr 07, 2025 pm 03:27 PM

Pour configurer le framework Bootstrap, vous devez suivre ces étapes: 1. Référez le fichier bootstrap via CDN; 2. Téléchargez et hébergez le fichier sur votre propre serveur; 3. Incluez le fichier bootstrap dans HTML; 4. Compiler les sass / moins au besoin; 5. Importer un fichier personnalisé (facultatif). Une fois la configuration terminée, vous pouvez utiliser les systèmes, composants et styles de grille de Bootstrap pour créer des sites Web et des applications réactifs.

Comment afficher la date de bootstrap Comment afficher la date de bootstrap Apr 07, 2025 pm 03:03 PM

Réponse: Vous pouvez utiliser le composant de sélecteur de date de bootstrap pour afficher les dates dans la page. Étapes: Présentez le framework bootstrap. Créez une boîte d'entrée de sélecteur de date dans HTML. Bootstrap ajoutera automatiquement des styles au sélecteur. Utilisez JavaScript pour obtenir la date sélectionnée.

Comment utiliser le bouton bootstrap Comment utiliser le bouton bootstrap Apr 07, 2025 pm 03:09 PM

Comment utiliser le bouton bootstrap? Introduisez Bootstrap CSS pour créer des éléments de bouton et ajoutez la classe de bouton bootstrap pour ajouter du texte du bouton

See all articles