【问题标题】:Is that compulsory to apply class name to each and every element in HTML while using BEM (Block,Element, Modifiers) naming convention?在使用 BEM(块、元素、修饰符)命名约定时,是否必须将类名应用于 HTML 中的每个元素?
【发布时间】:2019-05-25 07:26:19
【问题描述】:

我试图将 BEM 命名约定付诸实践,但对 HTML 元素的命名有些困惑。我真的很想了解我是否真的需要为每个 HTML 元素提供类名。

假设我有以下代码,例如:

<ul class="nav">
    <li class="nav__list"><a href="#" class="nav__link>Home</a></li>
    <li class="nav__list"><a href="#" class="nav__link>Services</a></li>
</ul>

我不想将 CSS 应用于 &lt;li&gt; 元素。 那么,在这种情况下,我是否需要为&lt;li&gt; 标签使用元素名称。即&lt;li class="nav__list"&gt;...&lt;/li&gt;

我可以只使用锚标记的元素名称而不将元素名称nav__list 赋予&lt;li&gt; 元素吗?

这是我想做的,因为我不想将样式应用于 CSS 到 &lt;li&gt;

<ul class="nav">
    <li><a href="#" class="nav__link>Home</a></li>
    <li><a href="#" class="nav__link>Services</a></li>
</ul>

【问题讨论】:

标签: html css naming-conventions bem


【解决方案1】:

首先,大多数开发者追随者 BEM 都必须遵循 BEM,因为 BEM 擅长命名约定,它显示了编码的标准命名约定。这取决于你是否想使用 BEM 可以使用,否则这是你的愿望,但我建议你遵循 BEM,它在标准方面很好。

你可以用这个

<ul class="nav">
  <li class="nav__list"><a href="#" class="nav__link>Home"></a></li>
  <li class="nav__list"><a href="#" class="nav__link>Services"></a></li>
</ul>

还有这个

<ul class="nav">
  <li><a href="#" class="nav__link>Home"></a></li>
  <li><a href="#" class="nav__link>Services"></a></li>
</ul>

现在你不想给 li 样式,但是在未来的客户说你给 li 样式那个时候你会再做一次你会改变代码,所以你必须在下面的 HTML 代码中使用它

<ul class="nav">
  <li class="nav__list"><a href="#" class="nav__link>Home"></a></li>
  <li class="nav__list"><a href="#" class="nav__link>Services"></a></li>
</ul>

【讨论】:

  • 是的,我确实想遵循 BEM 约定。我想知道同时使用 bootstrap 和 BEM 的最佳方法,而不会出现任何特异性问题。谢谢你的回答。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-09-23
  • 2018-04-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-30
  • 2017-05-23
相关资源
最近更新 更多