嵌套CSS类

kra*_*626 46 css css-selectors css3

我可以做以下的事情吗?

.class1{some stuff}

.class2{class1;some more stuff}
Run Code Online (Sandbox Code Playgroud)

Sar*_*raz 57

使用vanilla CSS是不可能的.但是你可以使用类似的东西:

Sass让CSS再次变得有趣.Sass是CSS3的扩展,添加了嵌套规则,变量,mixins,选择器继承等等.它使用命令行工具或web框架插件转换为格式良好的标准CSS.

要么

而不是构造长选择器名称来指定继承,在Less中你可以简单地将选择器嵌套在其他选择器中.这使得继承清晰,样式表更短.

例:

#header {
  color: red;
  a {
    font-weight: bold;
    text-decoration: none;
  }
}
Run Code Online (Sandbox Code Playgroud)

  • jQuery与它有什么关系?你建议你在jQuery中推出自己的css预处理器吗? (11认同)

eto*_*xin 46

更新: CSS 3级嵌套有一个CSS3规范.这是目前的草案. https://tabatkins.github.io/specs/css-nesting/

如果获得批准,语法将如下所示:

table.colortable {
  & td {
    text-align:center;
    &.c { text-transform:uppercase }
    &:first-child, &:first-child + td { border:1px solid black }
  }
  & th {
    text-align:center;
    background:black;
    color:white;
  }
}

.foo {
  color: red;
  @nest & > .bar {
    color: blue;
  }
}

.foo {
  color: red;
  @nest .parent & {
    color: blue;
  }
}
Run Code Online (Sandbox Code Playgroud)

现状:工作组未批准规范提案.

  • 它没有被拒绝;而是将其移至此处的正式拉取请求:https://github.com/w3c/csswg-drafts/pull/2878 (2认同)

cdh*_*wie 44

不是纯CSS.最接近的是这个:

.class1, .class2 {
    some stuff
}

.class2 {
    some more stuff
}
Run Code Online (Sandbox Code Playgroud)

  • 谢谢你。奇怪的是,这么多人喜欢采用嵌套 CSS 这样的简单解决方案,然后通过预处理将其变成一场噩梦。如果我们在纯 CSS 中拥有这个简单的功能,这将是停止今天孩子们喜欢的所有额外预处理的另一个充分理由。 (3认同)