VL5438 ,Да если это части блока, то вам ничего не мешает использовать разные его части в разных местах. Но если у вас много разных не связных элементов, то стоит подумать, а не отдельные ли это блоки, которые просто можно миксовать внутри других блоков или модифицировать. Иными словами, старайтесь делать блоки более компактными, если это кнопка, то сделайте какой-то общий button, а уже внутри header миксуйте с header__button. И так со всеми возможными блоками. Попытайтесь представить элементы отдельно от header. Кнопка, список, заголовок, картинка с декорацией, мысленно вставьте их в другое место, если они вписывается в концепцию, дизайн и технически не требует сложных манипуляций, значит это точно блок, а не просто элемент шапки.
Сама методология подразумевает генерацию огромного количества классов, я за здравый смысл.
Если у вас получается много классов, то скорее всего вы что-то делаете не так.
Правильное использование методологии позволяет делать очень гибкую разметку, из-за чего продут можно поддерживать значительно дольше, но если вы не понимаете зачем миксовать логотип, то вам еще многое нужно переосмыслить, тут проблема даже не в том что вы себе делаете хуже, вы делате хуже тем кто потом будет работать с "вашим БЭМ"
Я предпочитаю classList и его методы, а по поводу короткой запись, можно написать свою функцию которая будет принимать в качестве аргумента массив классов и проверяемый элемент, циклом проверяем каждый класс и возвращаем false, если нет всех перечисленных классов в итоге выглядеть это может как-то так:
if (classCheck(element, ['class1', 'class2', 'class3']))
Как мне кажется во фронте уже точно без работы не окажешься, но вот знать надо очень много и учиться без конца, при этом если ориентироваться на фриланс, то там очень жесткая конкуренция, которая сбивает цену и не опытному разработчику будет не сладко, но вот если устроится в компанию там хотя бы стабильность будет, тут еще вопрос какая именно зп вас устраивает раз вы уволились. потому что начинающий фронт несмотря на все эти веселые график с зп на самом деле не так много зарабатывает.
eugenedrvnk, о как.. Если без js то как вариант можно сделать отступ 50% от верха и заголовку добавить translateY(-50%), тогда заголовок будет четко по центру, только вот отступ у контента будет тоже плавающим, но и наездов никаких не будет
Возьмите за правило никогда так не делать, за исключением тех моментов когда без этого невозможно. Возможно вы еще не столкнулись с той болью, которую могут принести вложенные селекторы, но лучше и не сталкиваться.