У меня есть немного путаницы, когда дело доходит до использования глобальных стилей. Рассмотрим следующий пример:BEM CSS с общими стилями
Скажем, у меня есть таблица стилей, которая определяет, как кнопки должны быть сделаны:
/* Button.CSS */
button {
background-color: #CCC;
}
button.Blue {
background-color: #00F;
color: #FFF;
}
Button.Blue.Hollow {
background-color: none;
border: 1px solid #00F;
color: #00F;
}
, а затем с помощью кнопки в шаблоне с помощью стандартной нотации BEM (я буду использовать Block__Element- -Модификатор)
<!-- index.html -->
<ul class="Widget">
<li class="Widget__Item">
<button class="Widget__Button"></button>
</li>
<li class="Widget__Item">
<button class="Widget__Button Blue"></button>
</li>
<li class="Widget__Item">
<button class="Widget__Button Blue Hollow"></button>
</li>
</ul>
Является ли это приемлемой практикой смешивания таких классов? Я чувствую, что нарушаю какое-то правило инкапсулированного блочного стиля.
Ах, что хорошо звучит. Я могу изменить последний элемент, если захочу, правильно? Скажем .. '
Лучше использовать модификатор на блоке 'Button'. Блоку 'Button' не нужно знать, находится ли он в последней позиции. Это просто нужно отобразить с «красным» вариантом. – Paleo
Спасибо, Тар! В дополнение к вашему ответу это помогло: http://bem.info/tutorials/start-with-project-stub/#Mix-of-blocks-and-elements – Handonam