You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CSS中&:before的用法、本质及与::before的差异解析

关于CSS预处理器中&:before的疑问解答

问题代码

.coloring {
  &:before {
    background: "black";
  }
}

问题拆解与解答

  • &:before既不是CSS内置类,也不是自定义类:
    这段代码是Sass/Less这类CSS预处理器的语法,并非原生CSS。其中&是预处理器的特殊符号,代表父选择器(这里就是.coloring);:before是CSS原生的伪元素,用于在目标元素的内容前插入虚拟内容,它不属于类选择器的范畴。

  • 此处的&是必需的:
    如果去掉&,预处理器会编译成.coloring :before(后代选择器,匹配.coloring内部元素的:before伪元素),但我们需要的是.coloring:before(直接匹配.coloring自身的:before伪元素),所以必须通过&来关联父选择器和伪元素。

  • 关于:before和::before的区别:
    ::before是CSS3规范中定义伪元素的写法,用双冒号区分伪元素(如::before、::after)和伪类(如:hover、:active);:before是CSS2的旧写法,目前主流浏览器都兼容两种写法,但推荐遵循CSS3规范使用双冒号::before。

内容的提问来源于stack exchange,提问作者naya khattar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 04:32:06