Даже этот ужасный «каскад» (как его называют БдсЭМщики) лучше читается, чем приведённый мною «корявый» БЭМ.
Да и у кого учиться БЭМу, как ни у его создателей?
В не поверите, но классы тоже не для этого. На них можно повесить стили с помощью CSS-селекторов, которые позволяют достаточно гибко выбрать элемент для применения правил. Но, так же, стили можно повесить на id или, скажем, на каждого второго члена списка. Вы вправе использовать любые селекторы для стилизации элементов, в том числе по id.
Я хочу сказать, что навязывание классов, как единственно-возможного способа задания стилей элементу, ущербно.
Да, но сомнительно, что для попапа будут семантичными классы b-popupa b-popupa__without-padding b-popupa_theme_ffffff b-popupa_direction_down b-popupa_is-bem_yes i-bem b-dropdowna__popup b-dropdowna__menu b-popupa_js_inited.
По БЭМ-именованию с исключеним множества вложенностей в именовании вполне себе можно понять что это за блок и даже какое иерархическое положение он имеет.
Для таких целей придумали SASS и LESS, в которых иерархия прослеживается табуляцией, что намного читабельнее.
Некоторые атрибуты тегов тоже туда относятся, но не id, class, или data-*
Я вам ответил, как это же выглядит в стандарте HTML5, а именно, что семантика — это совокупность тегов, атрибутов и их значений. И всё туда очень даже относится.
Поэтому, когда БЭМ лишает меня возможности писать нормальные, логичные классы, использующие каскад, когда он запрещает на идеологическом уровне мне использовать id — я нахожу в этом ухудшение семантики.
Ну, многие, например, говорят, что стили, записанные одной строчкой, много читабельнее, чем блочные.
Надеюсь, что только у нас двоих разное представление о читабельности.
Главные принципы хорошей вёрстки — это её семантичность, последовательность и читабельность.
Использование БЭМа значительно понижает 2 принципа из трёх: семантичность и читабельность. И это относится не только к вашим примерам, где от БЭМа только классы, но и к полноценному БЭМу, который навязывает Яндекс.
От себя рекомендую посмотреть в сторону SASS + Compass и требовать вёрстку именно в них — это избавит вас от вышеописанных проблем, при этом не понижая семантику и значительно повышая последовательность с читабельностью.
Причины использования БЭМа Яндексом или Гуглом, в разработке собственных сервисов, предельно понятны и обоснованы.
Автор статьи же, как и верстальщики Яндекса, рекомендует применять БЭМ везде.
Вы сами в статье заметили, что от головняков это не спасает, а наоборот — создаёт новые на совершенно пустом месте (пример со ссылками).
Кроме того, существует мнение, что семантика — это не только название тега, но и совокупность его атрибутов, в том числе class и id, от которого вообще предлагают отказаться.
Я вижу только отвратительную читабельность, низкую скорость разработки и потенциальные проблемы при поддержке БдсЭМа.
Описанные вами преимущества с лихвой покрываются препроцессорами типа SASS и LESS.
b-popupa_theme_ffffff
Да и у кого учиться БЭМу, как ни у его создателей?
Я хочу сказать, что навязывание классов, как единственно-возможного способа задания стилей элементу, ущербно.
b-popupa b-popupa__without-padding b-popupa_theme_ffffff b-popupa_direction_down b-popupa_is-bem_yes i-bem b-dropdowna__popup b-dropdowna__menu b-popupa_js_inited
.Для таких целей придумали SASS и LESS, в которых иерархия прослеживается табуляцией, что намного читабельнее.
Я вам ответил, как это же выглядит в стандарте HTML5, а именно, что семантика — это совокупность тегов, атрибутов и их значений. И всё туда очень даже относится.
Поэтому, когда БЭМ лишает меня возможности писать нормальные, логичные классы, использующие каскад, когда он запрещает на идеологическом уровне мне использовать id — я нахожу в этом ухудшение семантики.
Надеюсь, что только у нас двоих разное представление о читабельности.
Простите, насчёт читабельности не убедили. Смурфовские имена ещё никому читабельности не добавляли.
Семантика не ограничивается только тегами.
Использование БЭМа значительно понижает 2 принципа из трёх: семантичность и читабельность. И это относится не только к вашим примерам, где от БЭМа только классы, но и к полноценному БЭМу, который навязывает Яндекс.
От себя рекомендую посмотреть в сторону SASS + Compass и требовать вёрстку именно в них — это избавит вас от вышеописанных проблем, при этом не понижая семантику и значительно повышая последовательность с читабельностью.
Автор статьи же, как и верстальщики Яндекса, рекомендует применять БЭМ везде.
Кроме того, существует мнение, что семантика — это не только название тега, но и совокупность его атрибутов, в том числе class и id, от которого вообще предлагают отказаться.
Описанные вами преимущества с лихвой покрываются препроцессорами типа SASS и LESS.