#css #бэм
Как известно, BEM состоит из блоков, элементов и модификаторов. Возьмем блоки. Их предлагают отмечать отдельным классом.Крайне разнообразные Чем плох этот подход? Почему его не применяют? Мне кажется BEM идеально соответствует идеям обыкновенных тегов. Возможно я чего-то не знаю? Может быть возникают какие-то проблемы с селекторами?Ответы
Ответ 1
Всё просто: совместимость. С ней пока всё очень ненадёжно, Custom Elements Specification всё ещё в статусе working draft, и браузерами поддерживается очень плохо. А до тех пор, пока этот стандарт не примут, HTML5, по сути, специфицирует белый список валидных элементов, вылезти за него значит нарушить стандарт. React лишь инкапсулирует конструкции из "примитивных элементов" (которые в HTML5 специфицированы) и позволяет составлять из них более сложные HTML-подобным языком разметки (JSX). Теоретически, для БЭМ такой препроцессор сделать тоже можно, и я не удивлюсь, если он всё же существует, просто малоизвестен. UPD: есть такой, posthtml, как сообщает @Guria, и в той же организации есть полифилл posthtml-custom-elements.Ответ 2
БЭМ в том числе ориентировался на максимизацию производительности. Один класс - это очень быстро. Один тег - тоже. А вот атрибуты - это уже гораздо медленее. А так, по самой идеологии проблем не вижу. Ещё по поводу валидности разметки - кастомные теги должны содержать дефис.
Комментариев нет:
Отправить комментарий