Information
- Rating
- Does not participate
- Location
- Симферополь, Республика Крым, Россия
- Works in
- Date of birth
- Registered
- Activity
Specialization
Frontend Developer
Lead
HTML
CSS
BEM
SCSS
Adaptive layout
TypeScript
JavaScript
Crossbrowser layout
Web development
React
Вам надо изменить модификатор size со значения big на small — вы ищете модификатор по его типу, а не по значению. Типы модификаторов в пределах одного блока/элемента уникальны, а вот их значения могут совпадать.
Как-то так: long-long-block-name__long-element-name_mod-name_value
news__list
news__item
news__link
news__image
Если хочется явно указать принадлежность item к list'у — news__list-item. Это по-прежнему будут два разных элемента, но их родственность определяется близкими именами.
Ещё до автоматической генерации HTML и привязки к JS мы использовали БЭМ (только тогда не называли это так, а называли независимыми блоками) и верстали это руками.
Отказались от этого из-за всё большего количества js-кода, в котором классы могут получаться склейкой строк. После минимизации классов они получаются другими и js-код перестаёт работать.
Чтобы избежать этого, надо всю работу с классами вести через функции, которые скрывают конечные классы, позволяя при этом работать с блоками/элементами/модификаторами.
В этом случае до минимизации эти функции будут работать с одними классами, а после минимизации — с другими.
Это понятно как сделать, но руки сделать это ещё не дошли, есть более приоритетные задачи.
Там много всего есть про оптимизацию конечного кода для браузера.
И учтено так же, что HTML/CSS не предназначены для создания современных web-приложений и современных сайтов.
Создатели HTML/CSS не предполагали такого их использования и дальнейшее хаотичное развитие этих технологий академиками из W3C (в противоположность практикам) в конце 90x ничего хорошего в долгосрочное переспективе не дало.
Инициатива WHAT WG по созданию Web Applications 1.0 была хорошей, но опаздавшей на несколько лет и слишком долгой в разработке.
До создания БЭМ я много верстал, спецификации HTML и CSS были прочитаны мною много раз.
История создания БЭМ описана статьях в клубе и рассказана мной на Я.Субботнике в Минске. Поверьте, это был не быстрый и не лёгкий путь. Было много проб и ошибок, пока мы не выработали систему, которая позволяет верстать проекты так, чтобы их было легко поддерживать и развивать дальше, не превращая код в кашу.
В Яндексе везде используется gzip и он даёт достаточно хорошее сжатие, чтобы не заморачиваться с этим.
Более того, возможность использовать любые другие разделители заложена в bem-tools и это можно настраивать как для всего проекта, так и для любого уровня переопределения в нём.
.block_mod_value
.block__elem_mod_value
Запись ".menu__item .link" означает: блок link вложенный в элемент item блока menu.
Замените b-popupa_theme_ffffff на b-popupa_theme_white, если вам так больше нравится.
Только сложно будет подбирать названия цветов, когда основным цветом темы будет какой-нибудь цвет типа #1ab3df.