Partage de technologie

::before et ::after pseudo-éléments en CSS

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Table des matières

1. Pseudo-éléments CSS

2. ::avant ::après introduction

1、::avant

2、::après

3. Valeurs d'attribut communes du contenu

3. :: avant :: après les scénarios d'application

1. Définir des caractères unifiés

2. Ajoutez des images en arrière-plan

3. Ajoutez des lignes décoratives

4. Développez la flèche à droite

5. Triangle de dialogue

6. Insérer une icône


1. Pseudo-éléments CSS

Les pseudo-éléments CSS font référence à des éléments virtuels créés à l'aide de certains sélecteurs spéciaux en CSS et ne sont pas de véritables éléments HTML existants ;

  • Utilisé pour sélectionner et utiliser des parties spécifiques du document pour obtenir des effets spéciaux ;
  • Les pseudo-éléments vous permettent de styliser le contenu du document sans ajouter de balises HTML supplémentaires ;
  • Les pseudo-éléments sont également des éléments qui peuvent définir divers attributs pris en charge en HTML, notamment la disposition, le positionnement, la largeur, la hauteur, l'arrière-plan de l'élément, etc.

Cet article présente principalement le contenu associé et quelques scénarios d'utilisation des deux pseudo-éléments ::before et ::after ;

2. ::avant ::après introduction

::before ::after le pseudo-élément est utilisé pour insérer le contenu spécifié avant ou après l'élément ;

  • Utilisez l'attribut content pour spécifier le contenu à insérer ;
  • Doit être utilisé avec l'attribut content, la valeur de l'attribut de contenu peut être vide ;
  • La valeur de l'attribut d'affichage du pseudo-élément est par défaut en ligne

1、::avant

Le sélecteur ::before est utilisé pour insérer du contenu avant l'élément spécifié ;

(1) Grammaire

  1. 元素::before{
  2. content: "要插入的内容";
  3. /* 其他属性 */
  4. }

(2) Exemple

Insérez du contenu devant tous les éléments p de la page ;

  1. <style>
  2. p::before{
  3. content: "使用::before伪元素插入的内容——";
  4. /* 其他属性 */
  5. }
  6. </style>
  7. <body>
  8. <div>
  9. <p>第一个P标签中的内容</p>
  10. <p>第二个P标签中的内容</p>
  11. <p>第三个P标签中的内容</p>
  12. </div>
  13. </body>

2、::après

Le sélecteur ::after est utilisé pour insérer du contenu après l'élément spécifié ;

(1) Grammaire

  1. 元素::after{
  2. content: "要插入的内容";
  3. /* 其他属性 */
  4. }

(2) Exemple

Insérez du contenu après tous les éléments p de la page ;

  1. <style>
  2. p::after{
  3. content: "——使用::after伪元素插入的内容";
  4. /* 其他属性 */
  5. }
  6. </style>
  7. <body>
  8. <div>
  9. <p>第一个P标签中的内容</p>
  10. <p>第二个P标签中的内容</p>
  11. <p>第三个P标签中的内容</p>
  12. </div>
  13. </body>

3. Valeurs d'attribut communes du contenu

::before ::after doit être utilisé avec l'attribut content. Voici les valeurs d'attribut courantes du contenu :

numéro de sérievaleur d'attributillustrer
1chaîneDéfinir le contenu du texte ;
2url("url")Définir des liens URL pour les fichiers multimédias tels que des images ;
3citation ouverteDéfinir comme citation principale ;
4fermer-citationDéfinir sur backquote ;
5attribut(attribut)Renvoie l'attribut attribut de l'élément sous forme de chaîne ;
6comptoirRégler le compteur ;
7aucunDéfinissez le contenu sur une valeur nulle ;
8normaleDans les éléments de pseudo-classe :before et :after, il sera considéré comme aucun, c'est-à-dire qu'il s'agit également d'une valeur nulle ;

(1) Définir le contenu du texte

Définissez la valeur de l'attribut de contenu sur le type chaîne pour ajouter du texte au pseudo-élément ;

  1. <style>
  2. span::before{
  3. content: "使用::before添加的文本前缀——————";
  4. }
  5. span::after{
  6. content: "————使用::after添加的文本后缀";
  7. }
  8. </style>
  9. ......
  10. <body>
  11. <span class="box">我是HTML元素中的文本</span>
  12. </body>

(2) Définir des liens multimédias

Grâce à la valeur de l'attribut url(), le contenu du fichier multimédia en tant que pseudo-élément peut être importé ;

  1. <style>
  2. .container {
  3. margin: 100px;
  4. }
  5. .avatar::after{
  6. content: url("D:\test\girl.png");
  7. display: block;
  8. }
  9. </style>
  10. ......
  11. <body>
  12. <div class="container">
  13. <div class="avatar">示例图片</div>
  14. </div>
  15. </body>

Notez que la taille de l'image ajoutée à l'aide de l'URL ne peut pas être définie. Il est préférable d'ajouter l'image via l'arrière-plan.

(3) Mettez des guillemets avant ||

Grâce à la valeur de l'attribut open-quote ou close-quote, vous pouvez définir le contenu du pseudo-élément sur des guillemets avant ou arrière ;

  1. <style>
  2. p:nth-child(1)::before{
  3. content:open-quote;
  4. /* 其他属性 */
  5. }
  6. p:nth-child(2)::after{
  7. content:close-quote;
  8. }
  9. </style>
  10. ......
  11. <body>
  12. <div>
  13. <p>添加前引号</p>
  14. <p>添加后引号</p>
  15. </div>
  16. </body>

(4) Obtenir les attributs des éléments

Obtenez une valeur d'attribut de l'élément via attr() (renvoyée sous forme de chaîne) et définissez-la comme contenu du pseudo-élément ;

  1. <style>
  2. a:after {
  3. content: " (" attr(href) ")";
  4. }
  5. </style>
  6. ......
  7. <body>
  8. <div><a href="https://www.csdn.net">CSDN</a>点击跳转至CSDN...</div>
  9. <div><a href="https://www.baidu.com">百度</a>点击跳转至百度...</div>
  10. </body>

(5) Régler le compteur

  1. <style>
  2. div {
  3. counter-increment: index;
  4. }
  5. div:before {
  6. content:counter(index);
  7. }
  8. </style>
  9. ......
  10. <body>
  11. <div>、、、、、、我是第1个div、、、、、、</div>
  12. <div>、、、、、、我是第2个div、、、、、、</div>
  13. <div>、、、、、、我是第3个div、、、、、、</div>
  14. <div>、、、、、、我是第4个div、、、、、、</div>
  15. </body>

3. :: avant :: après les scénarios d'application

Bien que l'utilisation de ces deux pseudo-éléments ::before ::after soit très simple, s'ils peuvent être appliqués de manière flexible, de très bons effets CSS peuvent être obtenus ;

1. Définir des caractères unifiés

  1. <style>
  2. p::before{
  3. content: "* ";
  4. color: red;
  5. font-size: 24px;
  6. /* 其他属性 */
  7. }
  8. p::after{
  9. content: ":____________";
  10. /* 其他属性 */
  11. }
  12. </style>
  13. ...
  14. <body>
  15. <div>
  16. <p>姓名</p>
  17. <p>年龄</p>
  18. <p>出生日期</p>
  19. <p>居住地址</p>
  20. </div>
  21. </body>

2. Ajoutez des images en arrière-plan

  1. <style>
  2. .container{
  3. margin: 100px;
  4. }
  5. .container::after{
  6. content: "";
  7. display:block;
  8. width: 260px;
  9. height: 260px;
  10. background-image: url("D:\test\girl.png");
  11. background-position: center;
  12. background-size: cover;
  13. }
  14. </style>
  15. ......
  16. <body>
  17. <div class="container">通过背景添加图片</div>
  18. </body>

3. Ajoutez des lignes décoratives

  1. <style>
  2. .line{
  3. display: flex;
  4. align-items: center;
  5. margin: 60px;
  6. height: 40px;
  7. font-size: 18px;
  8. }
  9. .line::before, .line::after{
  10. content: "";
  11. width: 300px;
  12. border-top: 6px double;
  13. margin: 5px;
  14. }
  15. </style>
  16. ......
  17. <body>
  18. <div class="line">添加装饰线</div>
  19. </body>

4. Développez la flèche à droite

  1. <style>
  2. .container{
  3. display: flex;
  4. flex-direction: column;
  5. align-items: center;
  6. justify-content: center;
  7. width: 400px;
  8. margin: 100px auto;
  9. padding: 30px 0;
  10. border-radius: 8px;
  11. box-shadow: 0 0 4px 1px #acacac;
  12. }
  13. .setting-item{
  14. position: relative;
  15. align-items: center;
  16. display: flex;
  17. width: 300px;
  18. height: 40px;
  19. margin-bottom: 20px;
  20. border-bottom: 1px solid #ccc;
  21. }
  22. .setting-item::after{
  23. position: absolute;
  24. right: 0;
  25. content: "";
  26. width: 8px;
  27. height: 8px;
  28. border-top: 1px solid #666;
  29. border-right: 1px solid #666;
  30. transform: rotate(45deg);
  31. }
  32. </style>
  33. ......
  34. <body>
  35. <div class="container">
  36. <div class="setting-item">账号设置</div>
  37. <div class="setting-item">权限管理</div>
  38. <div class="setting-item">相关服务</div>
  39. <div class="setting-item">帮助与反馈</div>
  40. <div class="setting-item">......</div>
  41. </div>
  42. </body>

5. Triangle de dialogue

  1. <style>
  2. .container {
  3. width: 400px;
  4. margin: 100px auto;
  5. padding: 30px 0;
  6. border-radius: 8px;
  7. box-shadow: 0 0 4px 1px yellowgreen;
  8. }
  9. .left-box,.right-box {
  10. display: flex;
  11. }
  12. .right-box {
  13. justify-content: end;
  14. }
  15. span {
  16. position: relative;
  17. display: flex;
  18. align-items: center;
  19. background-color: yellowgreen;
  20. border-radius: 6px;
  21. margin: 4px 14px;
  22. padding: 16px;
  23. }
  24. .left-box span::before, .right-box span::after{
  25. position: absolute;
  26. content: "";
  27. width: 12px;
  28. height: 12px;
  29. background-color: yellowgreen;
  30. transform: rotate(45deg);
  31. }
  32. .left-box span::before{
  33. left: -6px;
  34. }
  35. .right-box span::after {
  36. right: -6px;
  37. }
  38. </style>
  39. ......
  40. <body>
  41. <div class="container">
  42. <div class="left-box">
  43. <span>Nice to meet you!</span>
  44. </div>
  45. <div class="right-box">
  46. <span>Nice to meet you, too!</span>
  47. </div>
  48. </div>
  49. </body>

6. Insérer une icône

  1. <style>
  2. .login-box{
  3. display: flex;
  4. flex-direction: column;
  5. align-items: center;
  6. justify-content: center;
  7. width: 400px;
  8. height: 400px;
  9. margin: 100px auto;
  10. border-radius: 8px;
  11. box-shadow: 0 0 4px 1px #acacac;
  12. }
  13. .title{
  14. font-size: 24px;
  15. font-weight: 700;
  16. margin-bottom: 40px;
  17. }
  18. .account, .pwd, .login-btn, .forgot-pwd{
  19. width: 300px;
  20. height: 40px;
  21. line-height: 40px;
  22. }
  23. .account, .pwd{
  24. display: flex;
  25. align-items: center;
  26. border-bottom: 1px solid #ccc;
  27. font-size: 14px;
  28. color: #888;
  29. }
  30. .pwd{
  31. margin-top: 20px;
  32. }
  33. .account::before, .pwd::before{
  34. content: '';
  35. display: inline-block;
  36. width: 24px;
  37. height: 24px;
  38. background-repeat: no-repeat;
  39. background-position: center center;
  40. background-size: contain;
  41. margin-right: 8px;
  42. }
  43. .account::before{
  44. background-image: url("D:\test\user.svg");
  45. }
  46. .pwd::before {
  47. background-image: url("D:\test\pwd.svg");
  48. }
  49. .login-btn{
  50. text-align: center;
  51. color: #fff;
  52. font-size: 16px;
  53. font-weight: 700;
  54. background: #2687F0;
  55. border-radius: 5px;
  56. margin-top: 40px;
  57. }
  58. .forgot-pwd{
  59. text-align: right;
  60. font-size: 14px;
  61. color: #888;
  62. margin-top: 20px;
  63. }
  64. </style>
  65. ......
  66. <body>
  67. <div class="login-box">
  68. <div class="title">XXX 管理系统</div>
  69. <div class="account">请输入账号</div>
  70. <div class="pwd">请输入密码</div>
  71. <div class="login-btn">登 录</div>
  72. <div class="forgot-pwd">忘记密码</div>
  73. </div>
  74. </body>

=========================================================================

Faites un peu de progrès chaque jour ~ !

Une astuce CSS pratique~!