.block_1{
color: red;
background: #fff;
}
.block_2{
color: red;
background: #000;
}
.block_1, .block_2{
color: red;
}
.block_1{
background: #fff;
}
.block_2{
background: #000;
}
новичку расскажешь про набор миксинов, ну или денег дашь компании, чтобы нанять человека который шарит в миксинах и как это сделать.
бизнес вообще штука такая - не разведешь - самого разведут.
бэм конечно очень перспективен, его все любят, он достаточно сложный, чтобы на нем в штат компании через парадный вьехать, ну и потом поддерживать ореол недостижимости.
СержУан
.btn
, без привязки к родителю, это самостоятельный элемент. Представлять его как элемент блока имеет смысл только для позиционирования, в этом случае присвою 2 класса <button class="nav__btn btn">
где .btn
- оформление, .nav__btn
- позиционирование. Но это требуется крайне редко, спозиционировать элемент почти всегда можно через соседние, не использующиеся вне контекста. Они совершенно одинаковые, но тк как все должно быть УНИКАЛЬНЫМ нужно для обеих кнопок прописать стили.
Независимость блоков. Идет редизайн, нужно поменять цвет кнопок у модификатора, придется искать все кнопки на сайте, главное НАЙТИ все.
- Ты подключил bootstrap или другую библиотеку. О чудо она же не по БЭМ.
jquery есть. Блин, с ним просто всё делать.
Подключать к проекту такой фреймворк, как бутстрап - всё равно что плюнуть на оптимизацию скорости загрузки.
А сетку можно и свою написать.
Свои стили надо уметь к ним совмещать.
Ответ уже дан - "я всегда выберу первый, как наиболее поддерживаемый". В любом долгоживущем проекте нужно учитывать читаемость конечного кода.
extend группирует совершенно несвязанные между собой элементы по незначительной общей группе свойств. Проще говоря, генерирует кашу в результирующем css. Разбрасывание свойств элемента по всему файлу ради сомнительной экономии пары килобайт сложно назвать хорошей идеей. Миксины же позволяют получить на выходе чётко структурированный код.
Конечно, нужно понимать контекст использования. Допустим, для кнопок и их вариантов вполне возможно использовать и extend (хотя я предпочту БЭМ подход с основным классом и модификаторами, без наследования). Для структурных элементов использование extend уже дикость.