Здравствуйте! Вопрос больше общего характера.
В верстке я стараюсь придерживаться методологии БЭМ.
Основная цель данной методологии - повторное использование блоков.
Так вот. В ряде (большинстве, если речь идет о лендингах) случаев мне удобнее вообще не присваивать элементам уникальные классы, а просто обращаться к ним через вложенность. То есть это элементы, которые вводятся один раз и повторно не используются.
Вопрос - допускается ли в рамках одного проекта в отношении нескольких элементов использовать БЭМ, а там где такой необходимости нет - простую вложенность? Не является ли это плохой практикой?
Допускается только в том случае, когда других вариантов нет. В этом весь смысл БЭМ, то что вам вложенность сейчас кажется хорошей идей, ограничит вас в будущем при пере использовании, модификации и в поддержке проекта. Если честно я не представляю ситуации когда вложенность может быть удобнее именования.
pacman123, На самом деле нет ничего обязательного. Это все свод правил и рекомендации для решения определенных проблем, но чем больше следовать этим правилам, тем больше эффективность. Сама суть заключается в том, что БЭМ это не только решение текущих проблем, но и некая платформа, для разработки в будущем. И вложенность селекторов это одна из самых нестабильных техник, которая вставит вам палки в колеса, при первой же попытке модификации этих элементов.
По поводу разделение блоков в разные *.css файлы это не обязательно, достаточно придерживаться правильной последовательности написания стилей в одном файле. Если разделять блоки на отдельные файлы, то в итоге вам все равно нужно их собрать в один при помощи сборщика.
Виталий, понял вас, спасибо за ответ. лично для меня на сегодняшний день проще верстать на вложенности, но я стараюсь перейти на БЭМ с оглядкой на будущее трудоустройство, так как очевидно что при работе в команде без единой методологии никуда.
стараюсь перейти на БЭМ с оглядкой на будущее трудоустройство
Делайте для себя, просто сверстайте один два проекта без вложенностей и вы сами от них откажитесь. Возможно вы еще не прочувствовали всю боль, которую приносят вложенные селекторы, особенно если код писали не вы, а может просто не уловили этот кайф, когда все элементы ведут себя абсолютно предсказуемо в любых условиях. В общем это понимание приходит с опытом, удачи вам.
Мне всегда казалось, что в идеологии БЭМ вложенность -- табу. Стараюсь избегать ее, присвоить элементу класс не так уж обременительно. Но позволяю себе пользоваться селекторами типа :not(:last-child), nth-child, потому что без них иногда не обойтись