13518219792

建站动态

根据您的个性需求进行定制 先人一步 抢占小程序红利时代

主流浏览器都支持原生CSS嵌套了!

8 月 29 日,Firefox 117版本发布,该版本增加了对 CSS 原生嵌套的支持。至此,所有主流桌面浏览器现在都已经支持原生 CSS 嵌套语法!

创新互联是一家集网站建设,江陵企业网站建设,江陵品牌网站建设,网站定制,江陵网站建设报价,网络营销,网络优化,江陵网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

图片

注意,有些移动浏览器还不支持该语法,不过,这些浏览器合计只占约全球浏览器市场份额的 3%。

之前,我们需要借助预处理器(SCSS/Less)来编写嵌套语法。现在,CSS 终于原生支持嵌套语法了。下面就来看看原生 CSS 嵌套是怎么用的,未来是否还需要使用预处理器?

CSS 嵌套入门

使用 CSS 嵌套,可以编写更少的代码,并且代码更易于阅读和维护。没有CSS嵌套时,我们只能这样输入完成的选择器路径:

.parent1 .child1,
.parent2 .child1 {
  color: red;
}

.parent1 .child2,
.parent2 .child2 {
  color: green;
}

.parent1 .child2:hover,
.parent2 .child2:hover {
  color: blue;
}

使用新的嵌套语法,可以将子选择器嵌套在父选择器中:

.parent1, .parent2 {

  .child1 {
    color: red;
  }

  .child2 {
    color: green;

    &:hover {
      color: blue;
    }
  }
}

我们可以将选择器嵌套任意深度,但是最好不要超过三层,虽然没有技术上的硬性限制,但是嵌套深度越大,会使代码更难读,并且生成的 CSS 可能会变得不必要的冗长。

CSS 嵌套语法

可以将任何选择器嵌套在另一个选择器中,但它必须以符号开头,例如 &、.(用于HTML类)、#(用于HTML id)、@(用于媒体查询)、:、::、*、+、~、> 或 [。换句话说,它不能直接引用HTML元素。下面这段代码是无效的,

选择器不会被解析。

.parent1 {
  p {
    color: blue;
  }
}

需要使用 & 符号来引用当前选择器:

.parent1 {
  & p {
    color: blue;
  }
}

另外,还可以使用以下任一方法:

在这个例子中,它们都可以正常工作,但在更复杂的样式表中,可能会遇到特异性问题。

& 还允许在父选择器上针对伪元素和伪类进行定位,例如:

p.my-element {

  &::after {}

  &:hover {}

  &:target {}

}

如果不使用&符号,将会选择该选择器的所有子元素,而不是p.my-element。(在Sass中也是如此。)

可以在选择器的任何位置使用&,例如:

.child1 {
  .parent3 & {
    color: red;
  }
}

这将转换为以下非嵌套语法:

.parent3 .child1 { color: red; }

我们甚至可以在选择器中使用多个&符号:

ul {
  & li & {
    color: blue;
  }
}

这将选择嵌套的

其他资讯

让你的专属顾问为你服务