.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;
}
jquery есть. Блин, с ним просто всё делать.
Подключать к проекту такой фреймворк, как бутстрап - всё равно что плюнуть на оптимизацию скорости загрузки.
А сетку можно и свою написать.
Свои стили надо уметь к ним совмещать.
Ответ уже дан - "я всегда выберу первый, как наиболее поддерживаемый". В любом долгоживущем проекте нужно учитывать читаемость конечного кода.
extend группирует совершенно несвязанные между собой элементы по незначительной общей группе свойств. Проще говоря, генерирует кашу в результирующем css. Разбрасывание свойств элемента по всему файлу ради сомнительной экономии пары килобайт сложно назвать хорошей идеей. Миксины же позволяют получить на выходе чётко структурированный код.
Конечно, нужно понимать контекст использования. Допустим, для кнопок и их вариантов вполне возможно использовать и extend (хотя я предпочту БЭМ подход с основным классом и модификаторами, без наследования). Для структурных элементов использование extend уже дикость.