0

我正在尝试遵循 BEM 命名约定,但不确定如何实现以下内容:我有一个“工具提示”块,应该使用不同的主题进行样式设置。假设我应用了“默认”主题。

<div class="tooltip tooltip_theme_default"></div>

工具提示可以放置在不同位置的元素周围,这听起来像是我必须在块中添加“水平位置”和“垂直位置”修饰符。

<div class="tooltip tooltip_theme_default tooltip_horizontal-position_center tooltip_vertical-position_top"></div>

现在我需要在工具提示上显示一个装饰,这取决于主题及其位置。我想我需要一个多类选择器,但我在 BEM 文档中看不到任何这样的多选择器示例。

.tooltip_theme_default.tooltip_horizontal-position_center.tooltip_vertical-position_top::before {
     /* styles */
 }

BEM规范允许这样做吗?
你能想到任何缺点吗?
我应该尝试重新考虑我的组件以仅使用平面类选择器吗?

4

1 回答 1

1

尽管 BEM 建议避免使用多个类选择器,但在您的情况下它很好。您可以使用bem-components 库作为示例源。例如https://github.com/bem/bem-components/blob/v2/design/common.blocks/popup/_theme/popup_theme_islands.styl#L22

于 2015-11-23T13:39:47.347 回答