CSS中的子选择器规则

CSS中的子选择器规则,css,syntax,sass,Css,Syntax,Sass,我读到“ 标记类别规则不应包含子选择器 避免将子选择器与标记类别规则一起使用。这将 显著延长匹配时间(特别是在规则可能存在的情况下) 该元素的所有匹配项 但在SCS中,许多人会这样写: #main { width: 97%; p, div { font-size: 2em; a { font-weight: bold; } } pre { font-size: 3em; } } 在SASS文件中- 谁是对的?还有更好的吗?css规范是正确的,您不应该嵌套选择

我读到“

标记类别规则不应包含子选择器

避免将子选择器与标记类别规则一起使用。这将 显著延长匹配时间(特别是在规则可能存在的情况下) 该元素的所有匹配项

但在SCS中,许多人会这样写:

#main {
  width: 97%;

  p, div {
    font-size: 2em;
    a { font-weight: bold; }
  }

  pre { font-size: 3em; }
}
在SASS文件中-


谁是对的?还有更好的吗?

css规范是正确的,您不应该嵌套选择器

您可以在SCS上这样做,因为它将被编译成单独的类选择器

例如,请参见以下有关父嵌套选择的说明:

。。。如果有深度嵌套的规则,则父选择器将在替换&之前完全解析


嵌套的
.scss
标记不会扩展到子选择器

#main {
    p {
        font-family:arial;
    }
}
将扩展到:

#main p {
    font-family:arial;
}

指南针后面看起来是-
#main pa{font-weight:bold;}
。没有?是的。。。在您提供的代码中,可能是
#main p、#main div{font size:2em}
#main pa、#main div a{font-weight:bold;}
这是错误的代码吗?如果是,SASS文档提供了错误的代码。不,这不是错误的代码。。。SASS有它的优点,比如在编译时解决父选择问题。。。最终,它将全部转换为正确的形式,明白了吗。非常感谢。但找不到如何转换为正确的代码。看…只是一本关于在SASS上嵌套内容的好书:
#main p {
    font-family:arial;
}