美文网首页让前端飞JavaScript 进阶营
css伪元素(::before和::after)

css伪元素(::before和::after)

作者: 程序员Winn | 来源:发表于2022-08-12 17:38 被阅读0次

    写过css样式的小伙伴应该都见过::before::after这两个css的伪元素,主要的作用是在元素的前后额外新增内容。如下例子:

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8"> 
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
    <title>css伪元素(::before和::after)</title>
    <style type="text/css">
      .content::before{
        content: '前面';
        color: red;
      }
      .content::after{
        content: '后面';
        color: red;
      }
    </style>
    </head>
    <body>
      <div class="content">我是中间</div>
    </body>
    </html>
    

    可以看到我是中间的前后各自都新增了内容(前面后面)。看似很普通很鸡肋的功能对吧,直接写成前面我是中间后面一整段不就完事了,何必花里胡哨的。如果是按照上面的例子来使用伪元素的话,确实会显得很低级。下面使用另外一个例子来证明伪元素的强大之处。

    假设要在div标签的前后插入图片的话,没使用过伪元素的小伙伴可能会直接通过img标签来实现,这样确实也可以。但有个明显的问题就是html结构会额外多出这些img,随着需求的变更,这些img标签也越来越多,导致代码可读性差。有了伪元素,就可以在不创建新元素标签的情况下,来新增内容

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8"> 
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
    <title>css伪元素(::before和::after)</title>
    <style type="text/css">
      .content::before{
            content: "";
            display: inline-block;
            width: 100px;
            height: 100px;
            background: url(1.jpg) no-repeat;
            background-size: 100px 100px;
      }
      .content::after{
            content: "";
            display: inline-block;
            width: 100px;
            height: 100px;
            background: url(2.jpg) no-repeat;
            background-size: 100px 100px;
      }
    </style>
    </head>
    <body>
      <div class="content">我是中间</div>
    </body>
    </html>
    

    可以看到,div标签前后各多出了图片,而代码中却只有一个div标签,是否觉得干净简洁。这就是伪元素作用所在。可以在节省标签的情况下让内容更加丰富,真正的加量不加价

    相关文章

      网友评论

        本文标题:css伪元素(::before和::after)

        本文链接:https://www.haomeiwen.com/subject/nrqfgrtx.html