CSS之伪元素

x33g5p2x  于2022-03-15 转载在 其他  
字(0.9k)|赞(0)|评价(0)|浏览(248)

之前做一个需求的时候需要对页面上所有的banner上添加提示文案,例如:这是广告。本来想一个一个广告部件上添加文案div来实现。
后面向同组大佬请教,可以利用css中的伪元素:before来实现。
伪元素,顾名思义,就是它们不是真的HTML页面元素,实际上就一个带有css样式的透明元素,只展示某些css效果,不在dom结构里面显示。
对于添加banner头部的提示文案,使用伪元素是最佳方案。
由于banner大多数都是google上的广告,广告div的id具有一定规律,于是写下如下css代码:

[id*=div-gpt-ad-]>div:before {
        content: "广告";
        color: #8f959e;
        font-family: OpenSans;
        font-size: 8px;
        font-weight: 400;
        line-height: 20.89px;
        text-align: center;
        display: block;
    }

这样所有满足id以div-gpt-ad-开头的div都会增加伪元素的样式,提示文案就顺利地加好了。

后面遇到一个小问题,就是有一些尺寸是1x1的banner也显示了“广告”文案,显得非常突兀。这个时候可以使用:not来排除这些id,改动的css如下:

[id*=div-gpt-ad-]:not(div-gpt-ad-232423423)>div:before {
        content: "广告";
        color: #8f959e;
        font-family: OpenSans;
        font-size: 8px;
        font-weight: 400;
        line-height: 20.89px;
        text-align: center;
        display: block;
    }

如果是多个id需要排除则可以写多个:not,如下:

[id*=div-gpt-ad-]:not(div-gpt-ad-232423423):not(dig-gpt-ad-223245555)>div:before {

对于css3的很多用法我也在继续学习中,记录此文,只为学习反思。

相关文章