В методологии БЭМ главным краеугольным камнем является то что нету наследования. Я начал пробовать собирать БЭМ, с руковоства -> Собираем статическую страницу на БЭМ Сделав пункт - "Описание страницы в BEMJSON-файле" страничка собралась, запустилась по адресу - http://localhost:8080/desktop.bundles/hello/hello.html Здорово! =) Я открыл инспектор кода, и увидел 0_0 наследование - .input_theme_islands .input__box { position: relative; display: block; -webkit-touch-callout: none; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } http://screencast.com/t/wI61OvqVln6F
А где говорится, что подобные приемы запрещены?)
БЭМ просит вас думать о каскадах и не использовать их как попало ;-). Но не запрещает само использование.
btw, см. https://ru.bem.info/forum/issues/158
Спасибо за ответы. Возвращаюсь к моей hello.html page. у меня есть блок - "button". Этот блок я не создавал, он уже есть готовый. Как мне узнать все его модификаторы, элементы. Как мне правильно его изменить? Да, я читал о уровнях переопределения. Но там нету примера. Например я хочу сделать модификатор small у себя больше (т.е с padding : 30px, например). И еще хочу добавить модификатор цвета фона, что бы кнопка была желтой. Буду благодарен за простые и понятные примеры.
прочитать документацию
на своем уровне (например,
common
) создаешь папку с названием блока, в ней создаешь файл с нужной технологией. будет выглядеть примерно так:common.blocks/button/__small/button__small.css
Нет разницы добавляешь ли ты новый модификатор или доопределяешь существующий - действия будут одинаковыми.
Если говорить конкретно про библиотеку
bem-components
, то тут нужно переопределять модификаторtheme
(см. документацию). Т.е. у себя на проекте создаешь файлcommon.blocks/button/_theme/button_theme_islands.styl
и там доопределяешь нужный модификатор.