首页  >  文章  >  web前端  >  一个元素上可以有多个 :before 伪元素吗?

一个元素上可以有多个 :before 伪元素吗?

Barbara Streisand
Barbara Streisand原创
2024-11-11 16:38:03706浏览

Can You Have Multiple :before Pseudo-Elements on One Element?

多个 :before 伪元素

一个元素可以拥有多个 :before 伪元素吗?使用 jQuery 将样式应用于同一元素时会出现此问题,其中似乎只有最新的样式才会生效。

CSS2.1 限制

在 CSS2.1 中,一个元素在任何给定时间只能有一个特定类型的伪元素。因此,一个元素可以同时具有 :before 和 :after 伪元素,但每个伪元素不能超过一个。

级联行为

多个 :before 规则相同的元素被级联并应用于单个 :before 伪元素。优先级最高的规则(通常是最后一个)优先。在提供的示例中:

.circle:before {
    content: "CF";
    font-size: 19px;
}
.now:before{
    content: "Now";
    font-size: 19px;
    color: black;
}

仅应用最后一条规则“Now”中的内容声明。其余声明将被丢弃,与普通元素属性类似。

组合选择器

如果多个选择器匹配同一个元素并且您希望应用它们的所有样式,请生成额外的具有组合选择器的 CSS 规则。对于给定的示例,这将是 .circle.now:before 或 .now.circle:before。

旧版 CSS3 内容规范

已弃用的 css3 内容规范建议使用一种符号来插入多个与 CSS2.1 级联兼容的 ::before 和 ::after 伪元素。不过,此功能已过时,尚未被任何浏览器实现。

以上是一个元素上可以有多个 :before 伪元素吗?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn