【发布时间】:2020-12-05 19:56:42
【问题描述】:
子分类的一个例子:
<button class="button button--large">
状态示例:
<button class="button button--open">
两者在意义上是不同的。但是,我找不到任何可以区分的 BEM 约定,它们都将被写为修饰符。
我知道其他可能为状态做类似事情的方法:
<button class="button is-open">
或
<button class="button is-button-open">
【问题讨论】:
-
我会选择
button button--active而不是打开,按钮没有打开,但是当有东西打开时它是活动的 - 如果这有意义的话 -
@AndyHolmes 我会想象一个非活动按钮,按下它是没有意义的,因为它是非活动的。不活动的字典定义是“什么都不做”,但由于按钮在两种状态下都在等待被点击,所以在两种状态下它都同样忙碌。在这两种状态下,我都不会说按钮不太活跃。这就是为什么我认为像 open 这样的名字更好。
-
是的,我明白了,但是按钮本身并没有打开,不管它影响的是什么。默认情况下,按钮处于非活动状态,这就是单击时它们具有
:active状态的原因。我认为您对“活跃”一词的定义考虑得太深了 -
@AndyHolmes 我认为实际上更有意义的是,将按钮控制的东西默认为不活动,以防它无法访问,并将按钮作为激活器。激活激活器是没有意义的。我认为 :active 是点击的过程,这也是 :active 的工作方式,它不是指点击结束后的状态。在 html 中,该状态是 :focus。按钮本身甚至不必是打开状态,我们可以将组件状态视为打开状态,按钮响应此打开状态。
-
按钮默认是不活动的,我不知道还能告诉你什么。他们只有在与他们互动时才会活跃。焦点是当元素具有焦点时,活动是当元素处于被点击的过程中时——它们不是一回事。老实说,当 HTML 规范非常清楚地概述了所有这些时,我认为您正在走上一条漫长而令人困惑的道路。