CSS 伪元素

CSS 中的 ::after 伪元素用于在具有 content 属性的选定元素之后添加内容。它允许您插入文本、图像或装饰元素,而无需修改 HTML 结构。默认情况下它是内联的。

语法

selector::after {
   /* ... */
} 
  • 1
  • 2

不建议使用 ::after 伪元素添加内容,因为它可能不适合屏幕阅读器可以访问。

CSS ::after 示例

这是一个使用 ::after 伪元素的简单示例:

<html>
<head>
<style>
   p {
      color: royalblue;
      font-size: 1.5em;
      border: 2px solid black;
      text-transform: lowercase;
   }
   p::after {
      content: url(/css/images/logo.png) ;
      position: relative;
   }
</style>
</head>
<body>
   <div>
      <p>With pseudo-element ::after</p>
   </div>
</body>
</html> 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

这是另一个示例,演示了 ::after 伪元素与其他元素的用法:

<html>
<head>
<style>
   body {
      width: 100%;
      height: 100vh;
      display: grid;
   }
   .glow {
      padding: 10px;
      width: 250px;
      height: 50px;
      color: #fff;
      background: #111;
      cursor: pointer;
      position: relative;
      z-index: 0;
      border-radius: 20px;
   }
   .glow::before {
      content: '';
      background: linear-gradient(60deg, #ff0000, #ff7300, #fffb00, #48ff00, #00ffd5, #002bff, #7a00ff, #ff00c8, #ff0000);
      position: absolute;
      top: -4px;
      left:-4px;
      background-size: 400%;
      z-index: -1;
      filter: blur(15px);
      width: calc(100% + 6px);
      height: calc(100% + 6px);
      animation: glowing 20s linear infinite;
      opacity: 0;
      transition: opacity .3s ease-in-out;
      border-radius: 10px;
   }
   .glow:active {
      color: rgb(246, 235, 235)
   }
   .glow:active::after {
      background: transparent;
   }
   .glow:hover::before {
      opacity: 1;
   }
   .glow::after {
      z-index: -1;
      content: '';
      position: absolute;
      width: 100%;
      height: 100%;
      background: #111;
      left: 0;
      top: 0;
      border-radius: 20px;
      background: linear-gradient(60deg, #293deb, #d019b4, #e6ac0c, #d95909, #d2ef13, #0ce45f, #a872e1, #e70db8, #2f09c8);
   }
   @keyframes glowing {
      0% { background-position: 0 0; }
      50% { background-position: 400% 0; }
      100% { background-position: 0 0; }
   }
</style>
</head>
<body>
   <button class="glow" type="button">将鼠标悬停并单击!</button>
</body>
</html> 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66