css - 没有元素类名的 CSS BEM 语法
问题描述
我必须创建一个主标题组件,下面是我的标记以及 CSS 类。我遵循类名的 BEM 命名约定。
我的h1
元素由两个跨度组成。一个span
用于主标题文本,第二个span
用于子标题文本。主要和次要是我的标题的变体。
我没有指定 Element 类(可能是heading-primary__text
),并且我已将修饰符类直接附加到span
元素。
<h1 class="heading-primary">
<span class="heading-primary--main">Video Background Option</span>
<span class="heading-primary--sub">One Page Parallax</span>
</h1>
这是遵循 BEM 方法而不指定 Elements 类并将 Block 的修饰符类附加到 Elements( span
) 的正确方法吗?因为我不需要元素类。
有替代品吗?
解决方案
虽然这是主观的,并且根据项目的方便性。我建议你做这样的事情 - 因为你已经有一个header-primary_text
元素类
<h1 class="heading-primary">
<span class="heading-primary_text">Video Background Option</span>
<!--create a modifier -->
<span class="heading-primary_text--sub">One Page Parallax</span>
</h1>
通过这种方式,您可以sub
为潜文本创建一个修饰符类。
更多信息可以在这里看到https://en.bem.info/methodology/quick-start/#modifier
希望这可以帮助 :)
推荐阅读
- javascript - 如何格式化 API JSON 响应到 JS 中的数组对象?
- vue.js - 如何在 Vue 中使数据属性具有响应性?
- javascript - 如何在 100 多个网页的网站中使用 JavaScript 组件实现 HTML Header(navbar)
- keras - 以下代码不是由 GPU 运行的,而是我使用 mnist 的原始代码使用 gpu 运行的?
- json - Swift Codable / Decodable with Nested json Array
- python-3.x - 通过 xpath 查找元素 - selenium propper 格式化
- aws-lambda - 如何在 Amazon Lex 和 Lamda 中使用 ConfirmIntent
- java - 将新元素插入字节数组
- python - python 2.7.17输入错误在输入行中嵌入'\ 0'
- vim - netrw 在 netrw 缓冲区中打开文件