Зачем нужны классы блоков? Ведь у блока уже есть индентификатор — имя тега, его можно сделать кастомным. Почему не используются селекторы тегов на блоки и элементы, а классы — для их модификаторов?
Зачем нужны классы блоков? Ведь у блока уже есть индентификатор — имя тега, его можно сделать кастомным. Почему не используются селекторы тегов на блоки и элементы, а классы — для их модификаторов?
Так можно делать, возможные варианты описаны в посте
http://ru.bem.info/forum/issues/-68/
Но только в том случае, если не используются миксы. Если есть миксы, миксируемую сущность надо писать в класс, что усложняет css, надо будет хранить оба варианта селектор: как кастомные тег и как класс.
Кроме миксов есть еще проблема специфичности, рассмотренная в предыдущих постах. То есть писать
<block class="mod">
все равно не получится. Поэтому по-прежнему придется упоминать имя блока в модификаторах. Таким образом, получается<block class="block_mod">
и тут уже не понятно, что мы экономим. Раз упомянули блок, можно и его класс добавить. А на сдачу получим миксы, авось когда-нибудь пригодятся.Полезность кастомных тегов в том, что ни браузер, ни внешняя библиотека (например,
bootstrap
) не добавят в него неожиданных стилей.Правда, не всё можно реализовать на кастомных тегах. Например, без
input
,a
и т.д. никак не обойтись.