sass - 使用 sass 时是否应该始终将选择器嵌套在其他选择器中?

标签 sass nested

我的问题是关于 sass 或 scss 中的嵌套。从可读性的角度来看,我们可以将选择器嵌套在 sass 中的另一个选择器中,这是一件好事,但这是我们必须做的事情吗?我有点困惑,因为当我运行 scss-lint 时,我遇到了一些嵌套深度错误。我红色了几篇文章,现在我知道我们应该比将 3 个以上的规则嵌套在另一个规则中更深入。

所以我有两个问题:

  1. 如果我像这样在 sass 中编写规则(不嵌套),会有什么问题吗:

    .我的类(class) ...

不要这样写:

header
    nav
        .myclass
  • 能解释一下为什么sass中需要嵌套,嵌套有什么好处吗?我知道这对于覆盖规则很有好处,但是如果我不需要嵌套那么深呢?我将不胜感激任何答案,甚至是一些更详细地解释我的问题的文章的链接。
  • 最佳答案

    如果没有充分的理由,您实际上应该避免在 Sass 中嵌套选择器。请参阅Avoid Nested Selectors for more Modular CSSBeware of Selector Nesting in Sass为什么你应该对嵌套更有选择性。

    关于格式设置,您所做的在功能上等同于嵌套,但当这不是您的意图时,您确实不应该格式化换行符和缩进来模拟嵌套。

    header
      nav
        .myclass {...}
    

    header {
      nav {
        .myclass {...}
      }
    }
    

    两者都产生:

    header nav .myclass {...}
    

    因此,即使 scss-lint 可能会因您的格式设置而出错,但它可能无论如何都不是您想要做的事情。如果您根本不关心嵌套或选择器深度,只需 disableoverride短绒。

    关于sass - 使用 sass 时是否应该始终将选择器嵌套在其他选择器中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38072672/

    相关文章:

    css - 在 SCSS 的 for 循环中生成线性渐变

    python - 调用列表内的元组

    jQuery SlideToggle 嵌套 ul li

    javascript - WordPress 回复评论链接

    javascript - 如何在外部 div 保持不变的情况下缩放整个嵌套 div

    css - SCSS 无法编译,抛出错误

    javascript - 使元素的宽度达到其祖父元素的 100%

    string - 如何将变量的RGB值更改为SASS中的字符串?

    npm - 浏览器列表 : caniuse-lite is outdated. 请运行下一个命令 `npm update caniuse-lite browserslist`

    python - 删除嵌套列表中的重复项(不删除子列表中的重复元素)