【问题标题】:Scss naming nested classes or notScss命名嵌套类与否
【发布时间】:2019-08-24 13:44:59
【问题描述】:

所以在scss 中,您可以引用嵌套项而不给它们类名。看看这些例子。

不为他们命名:

.navar {
    ...

    & button {
        background-color: pink;
        ...
    }
}

<div class="navbar">
    <button>One</button>
    <button>Two</button>
    <button>Three</button>
</div>

命名:

.navar {
    ...

    & .navbar-button {
        background-color: pink;
        ...
    }
}

<div class="navbar">
    <button class="navbar-button">One</button>
    <button class="navbar-button">Two</button>
    <button class="navbar-button">Three</button>
</div>

不为他们命名:

  • 专业版:HTML 看起来很干净
  • CON:类影响元素并不明显
  • CON:大学需要了解确切的嵌套设计(或完美地复制和粘贴内容)

命名:

  • PRO:很明显一个类正在影响元素
  • 缺点:HTML 变得混乱(尤其是在 HTML 中使用 Angular)
  • CON:您每次都需要考虑一个唯一的、自我解释的类名

请记住,如果您不知道某种风格正在影响某些东西,那么您可能会遇到"what on earth is causing this font to become bold?" 场景。想象一个比我更嵌套的构建(这并不罕见):

.navar {
    & button {
        & div div {
            & a {
                & label {
                    font-weight: bold;
                }
            }
        }
    }
}

但同样,像这样的极其嵌套的场景会产生非常干净的 HTML。给每个人一个类将要求您考虑唯一的类名并使 HTML 在视觉上更加复杂。

给嵌套类命名还是不命名嵌套类,这是个问题:)

目前,我更喜欢不命名它们。 HTML 变得更漂亮了。但我的问题是,大学需要了解确切的嵌套设计才能使用这些样式。

【问题讨论】:

    标签: sass


    【解决方案1】:

    直接在标签上使用样式的一大缺点是,您不能简单地更改 html 元素。

    假设您有一些&lt;button&gt;,但有一天您认为将其更改为&lt;a&gt; 标记会更好。最好在.button 类上设置样式。然后你不必关心元素。它应该看起来像一个按钮。

    当您有应该具有样式的深层嵌套元素时:考虑使用一些 css 命名最佳实践。我建议你使用 BEM。 http://getbem.com/introduction/

    它可以帮助您保持 css 清洁并与 css 配合使用。

    【讨论】:

    • 为了反驳这一点,我认为最好不要让某人在 &lt;label&gt; 上使用 &lt;button&gt; 类。这个类从来不是为&lt;label&gt; 设计的,如果在那里使用可能会产生一些时髦的问题。如果我想要一个像form-control 这样的通用类,那么我不会指定element。但是在大多数类中,我将指定元素来控制人们在何处使用该类......无论如何,像我的navbar 示例这样的样式永远不会真正在其他地方使用(它具有非常独特的悬停等样式)
    • 在某些情况下,您的样式不需要额外的 css 类。但在大多数情况下,html 标签是不可知的,不会为您提供有关其用途的任何信息。例如。你的&amp; div div 对我没有任何意义。为什么要嵌套两次?如果一个或两个 div 有一个 css 类,它可以给我提示为什么要构建该结构以及它应该是什么样子。进一步阅读:frontstuff.io/you-need-to-stop-targeting-tags-in-css
    • 另外:当我的&lt;label&gt; 元素看起来像一个按钮,以便用户单击它以获得相应的&lt;input&gt; 元素的焦点时,为什么不给它一个类.button?那里完全有道理。
    猜你喜欢
    • 2015-02-17
    • 1970-01-01
    • 1970-01-01
    • 2010-09-25
    • 2012-06-20
    • 1970-01-01
    • 1970-01-01
    • 2011-07-06
    • 1970-01-01
    相关资源
    最近更新 更多