css - 使用 SASS 嵌套的优点

标签 css sass nested

我在每个元素中都使用 SASS,并且以模块化方式工作。我几乎嵌套了所有东西,因为我发现它的组织方式在你的 scss 文件中设置样式有很大的优势。我遵循的规则是我的嵌套元素中的括号不应超过 3 个。

但我发现也许我做得太过分了,我失去了对它真正优势的把握。在下面我添加了一个示例,在该示例中我创建了一个类,它否决了原始 CSS 规则以在单击按钮后更改其属性,即代码末尾的 login-dropdown-open

对于我自己的组织,我想将它嵌套在登录下拉列表中,但我会得到以下 CSS 输出:login-dropdown.login-dropdown-open。这有效,但我认为它不正确。

有人可以向我解释一些有关此事的准则吗?

.login-dropdown{
    background: $grey-light-light;
    border: 0;
    @include box-sizing(border-box);
    display: block;
    height: 0;
    padding: 0;
    opacity: 0;
    overflow: hidden;
    position: relative;
    @include transition(all, 0.25s, ease);
    z-index: 1;

    label, input, a{
        display: block;
    }

    label{
        font-size: 2rem;
        line-height: 3rem;
    }

    input:not([type=submit]){
        border: 1px solid $mint-dark;
        @include box-sizing(border-box);
        font-size: 1.4rem;
        height: 3.5rem;
        margin: 0 0 2rem 0;
        padding: 0 1rem;
        width: 100%;
    }

    input[type=submit]{
        background: $mint-dark;
        width: 100%;
        border: 0;
        border-radius: 5px;
        color: $white-main;
        font-size: 1.6rem;
        margin: 0 0 2rem 0;
        height: 4rem;
    }
}

.login-dropdown-open{
    border: 1px solid $mint-dark;
    height: auto;
    opacity: 1;
    overflow: auto;
    padding: 1rem;
}

最佳答案

我认为你应该像这样插入最后一条规则:

.login-dropdown {

   ...

   &-open{
      border: 1px solid $mint-dark;
      height: auto;
      opacity: 1;
      overflow: auto;
      padding: 1rem;
   }
}

使用 & 父引用

关于css - 使用 SASS 嵌套的优点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22912553/

相关文章:

css - 我的 Mac 无法识别 .CSS 文件类型

css - SASS SCSS函数生成具有动态路径的类

ruby-on-rails - 嵌套对象表单未按预期工作

Java 8 嵌套 null 检查列表中映射中的字符串

javascript - Reveal.js 自定义键盘绑定(bind)取消淡入淡出过渡

javascript - 在 Bootstrap 选项卡中启用选择文本选项

html - 使用 Chrome Devtools,我的分辨率为 @ 1680px,但最小宽度为 :1440px media query is not working

angular - 在 angular-cli 库项目中使用别名设置 scss 路径

css - 可以更改不同文件的 SASS/Compass 输出文件夹吗?

ruby-on-rails - Rails 嵌套表单 has_many :through, 如何编辑连接模型的属性?