帮助我理解。
1)是否可以嵌套在classBEM中class?
.class {
.class1 {}
.class2 {}
}
2) 有时需要添加一个padding或margin多个元素。在这种情况下如何命名?
block
block__elem
block__elem_mod
block__elem_mod
block__elem_mod # Этому, к примеру, нужно дополнительно добавить margin
在这种情况下该怎么办,如果mod每个人都很常见。添加更多mod?block__elem_mod_mod?
应 Vitaly Emelyantsev 的要求。我正在澄清第二个问题的情况:
.car {
.car__header {
.car__header_title {}
.car__header_img {}
.car__header_name {}
.car__header_description {
.car__header_description_span?
// Как именовать? Уточним что у span-ов есть разные свойства и общие
// <span>Текст</span> много текста <span>Текст<span/><br><span>Текст<span/>
}
}
.car__main {
.car__main_description {}
}
.car__footer {
.car__footer_description{}
}
}
或者:
.header
.header__menu
.header__menu_nav
.header__menu_nav_link ?
.header__menu_nav_link_active ? .header__menu_nav_link-active?
是否可以在 BEM 的类中嵌套类?
问题是什么?
class到class或 BEM 块到 BEM 块?还是块中的元素和修饰符?有没有可能在布局..
行,可以。您的 html 是一棵节点树,您可以向其自由分配任何类。并因此将一个班级“投资”在其他班级中。
BEM 块也是如此。您可以自由地将一些块用作其他块的一部分,例如:
块
.label、.input和.button“嵌套”在块.form-group中,这些块“嵌套”在块中.form。样式有可能吗..
能。首先,在同名块中嵌套元素很方便:
并且这个块的修饰符最好放在与它相同的级别:
这样,您就可以将两种样式分配给块元素,并将样式分配给修改后的块。
其次,如果当一个块在另一个块中时您需要细化它的样式,您可以将它嵌套在其中,就好像它是一个元素一样。例如使用表单:
如何将
padding/添加margin到一个或多个块元素例如这段代码:
并且您需要专门为第二段设置一些不同的样式。最后一段的风格应该有所不同。
最后一个造型。。
选择器可能会起作用
:last-child。例如:以特殊的方式设计第二个......
向第二个添加一个额外的类。哪个?取决于任务:
.promo-section__text_special;.promo-section__text.text-right)。“澄清第二个问题的案例”
你的第一个例子与现实脱节。我已经在评论中写过这个,我会在这里提到它。在您给定的示例中,修饰符的名称很奇怪。“车帽”显然是一个元素。“标题车头”、“图形车头”、“描述性车头”?修饰符的奇怪名称。这个意思更适合块内元素内的元素。
您的第二个示例证实了猜测 - 在“标题菜单”(元素)内,您试图放置一个“链接”和一个“活动链接”(块内元素内的元素)。
这种情况可以通过两种方式解决:
不嵌套命名元素
也就是说,您命名元素本身而不相互嵌套,但是您在样式中将它们相互嵌套以在某些元素位于其他元素中的情况下阐明某些属性。
拆分成单独的块
.link这是一个单独的 BEM 块。在块内部,.header您还可以为它设置样式,以应对它出现在 内部的情况.header__menu_nav。