Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 修饰元素的子元素?_Html_Css_Bem - Fatal编程技术网

Html 修饰元素的子元素?

Html 修饰元素的子元素?,html,css,bem,Html,Css,Bem,采取以下结构: <div class='article article--yellow'> <div class='article__headline'>...</div> </div> <div class='article article--blue'> <div class='article__headline'>...</div> </div> 因为这样我就可以只使用一个选择器来选

采取以下结构:

<div class='article article--yellow'>
  <div class='article__headline'>...</div>
</div>

<div class='article article--blue'>
  <div class='article__headline'>...</div>
</div>
因为这样我就可以只使用一个选择器来选择它:
文章——黄色标题


我知道从技术上讲这是可行的,但我不知道根据边界元法这是否有效。

这是一个完美的问题

块修改器可以影响元素吗? 如果我有块修改器,例如 示例
xmas
,我希望该块中的元素也
xmas
主题,如何做才是最好的

是否每个元素都需要一个
--xmas
后缀?还是会这样 是嵌套的一个用例(例如
block--xmasblock\uu elem{。。。
}

但是,一般来说,BEM建议避免嵌套选择器,这 当它们是合理的时,情况就是如此。

创建嵌套选择器时,声明一个实体依赖于 另一方面,由于边界元法引入了独立的组件,这种方法 当我们谈论2个不同的街区时,不建议使用

但是,当涉及到块及其元素时,它们并不重要 等价意义。根据它的定义,元素不构成任何 在其父块外进行检测。因此,元素依赖于块 假设这样,元素 受块的当前状态影响

所以,这在BEM中是一个很好的模式

.my-block--xmas .my-block__button {
    /* Jingle bells, jingle bells, jingle all the way.*/ }
所以答案应该是你的第一个方法

.article--yellow .article__headline { ... }

我不认为两个层次太深,无法指定
.article--yellow.article\uu headline
的特殊性。从技术上讲,
.article\uu headline
如果没有
。article--yellow
颜色修饰符,就永远不会出现

虽然类名很长,但BEM允许您轻松地自行编制文档(假设您理解这些概念之后的任何人也理解这些概念)。此外,对我来说,BEM组件不应该相互影响

.article--yellow .article__headline { ... }