CSS 伪元素::before和::after的使用

特性

  • 都作为标签内部的第一个/最后一个子元素

  • 行内元素(无法设置宽高)

  • content属性必填(若没有就’’)

    使用场景

    • 文字前的图标

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      <style>
      span::before {
      display: inline-block;
      content: '';
      background: url(home.png) no-repeat;
      width: 50px;
      height: 50px;
      background-size: cover;
      vertical-align: bottom;
      }
      </style>
      <body>
      <span>这是一个图片</span>
      </body>

      home.png

    • 导航的跟随线

      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
      <style>
      ul {
      list-style: none;
      }

      li {
      float: left;
      width: 120px;
      height: 20px;
      text-align: center;
      }

      li::after {
      margin: 0 auto;
      display: block;
      content: '';
      width: 50px;
      height: 2px;
      background-color: tomato;

      }
      </style>
      </head>

      <body>
      <div>
      <ul>
      <li>我是一个列表项</li>
      <li>我也是一个</li>
      </ul>
      </div>
      </body>

    • 清除浮动的影响

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      <style>
      ul {
      background-color: teal;
      }

      li {
      width: 200px;
      height: 100px;
      background-color: tomato;
      float: left;
      }
      </style>
      </head>

      <body>
      <ul>
      <li></li>
      <li></li>
      <li></li>
      </ul>
      </body>


      在ul后加上一个子元素来清除浮动影响

      1
      2
      3
      4
      5
      ul::after {
      content: '';
      display: block;
      clear: both;
      }
![](https://img-blog.csdnimg.cn/20200718165038390.png)
ps:左边和上边的是padding与margin的自带距离,使用全局`*{margin:0;padding:0;}`即可