Всем привет! Верстаю проект. Верстаю один. Верстаю статику.
Сложности (недостатки). Не знаю JavaScript, препроцессоры не использую (и не изучены).
Проект длинный, объемный и сложный по функционалу, и вот сейчас, где то по середине появилось опасение, что в ближайшем будущем, то что я делаю, будет понятно только мне, и то не с первого раза.
В этой связи, а так же с учетом недостатков, могу я использовать БЭМ, например модульно, с самого низа и по мере роста своих возможностей приращивать используемый функционал? Если да. Поскольку я ребенок в технологии, могу ли задавать дурацкие вопросы и получать вразумительные ответы? Или же пока пойти подкачаться в html/css и смежных технологиях?
P.S. Читал, читаю, смотрю видео на тему. Пока каша в голове. Может еще особенность восприятия, и мне нужно просто поговорить с живым человеком, в контексте насущных вопросов.
Использовать БЭМ по частям, потихоньку добавляя, можно. Начинать стоит с методологической части. Рекомендую посмотреть видео с БЭМинаров, там пошагово с самого начала:
Задавать любые вопросы тем более можно.
Спасибо!
А задавать вам или всем? Как лучше/удобней?
В этой теме вопросы и задавать. Поможем.
Спасибо! Посмотрю материалы и соберусь с мыслями...
Все таки небольшой вопрос:
например на проекте есть кнопки:
далее
далее например габариты и расположение в контексте определенного блока в css
т.е. есть некий базис из переиспользуемых стилей, которые в основном касаются отображения, и не могут что то поломать, а изменения габаритов, некоторые кастомные настройки, вроде изменения размера шрифта и расположение/позиционирование происходят в контексте блока...
Как тут быть, используя БЭМ? Спасибо!
Точно вы описали почти и есть БЭМ. Только нейминг поправить.
.button
- блок,.button_primary
- модификатор,.some-block__elem.button
микс элемента родительского блока.Спасибо! Появился шанс отделаться рефакторингом:) (40 000+ строк кода как то не радостно переделывать)
имеется ввиду например такая конструкция?
Спасибо!
Ваш пример - хороший БЭМ. Правила для уточнения внешнего вида блока внутри другого блока задаются составным селектором от его элемента (иногда самого блока). Можно как у вас
.b-some-block__button-group .button
. Или использовать класс элемента прямо на ноде дочернего блока<button class="form__submit button button_style_blue">
Спасибо!
не совсем понял, можете разъяснить про ноду? и за что отвечает
form__submit
в этой конструкции? А также в моей конструкции есть блок"b-some-block"
, внутри него элемент__button-group
, внутри него тег<button>
это тоже элемент (?) классы которого,.button
- задает глобальный стиль, а.button_style_blue
это его модификаторс вашей помощью я продвигаюсь :)
Краткий итог. Понимание:
В чем теперь нужно доразобраться. Дорожная карта:
В идеале хотелось бы сделать все так, чтоб переход на следующую ступень эволюции был бесшовным.
Спасибо!
Это называется микс, смешивание на одной DOM-ноде нескольких сущностей.
В данном случае
смешиваются вместе блок button с модификатором style со значением blue и элемент submit блока form.
Зачем это надо? В button лежит реализация абстрактной кнопки, которая может использоваться где угодно. А элемент submit блока form — это возможность добавить знание про эту конкретную кнопку, что она является submit элементом формы. И если нам надо что-то специальное сделать с кнопкой отправляющей форму, то мы адресуемся к этой кнопке, как к form__submit, но не трогаем ничего в реализации button.
Спасибо! Сейчас смотрю видео, изучаю материалы, пока все доступно...
Подскажите пожалуйста
Поизучал методологию, и вроде все легло. Уперся в сборку проекта на Gulp, собственно его настройку. Да и вообще конструкция - чистый html, чистый css, файловая система + сборка Gulp-ом, подходящая? Или лучше смотреть на bem-tools? Да и собственно сборка возможна без понимания javascript? или можно обойтись как то? или же все отложить и заняться изучением javascript? в очередном тупике в общем...
Спасибо за уделенное время
Для сборки БЭМ проектом удобнее всего использовать ENB. Конфиг для сборки CSS будет довольно небольшой. Также можно воспользоваться проектом-шаблоном или генератором и с минимальными изменениями использовать его как верстак веб-разработчика. Могу помочь с конфигом.
было бы великолепно
Вам нужна выборочная сборка по зависимостям или просто хотите собирать один CSS из всех блоков?
а у вас платные консультации практикуются?
Не доводилось, а что именно интересует?
.enb/make.js
bundle/index.html
package.json
Только есть небольшая проблема с кэшированием в технологии levelsToBemdecl. После добавления новых сущностей в папке blocks необходимо удалять файл
.enb/tmp/cache.js
Интересует более эффективный прогресс. Я сильно новичок, хотя конечно и потребляю тонны всякой инфы, и активно практикуюсь, но все же в одиночку тяжеловато все переваривать, да и долго, так как часто информация просто не по уровню, но и часто просто много воды... что то вроде перечитай на хабре сотню комментов к статье и если повезет, там будет пара тройка по делу)) в общем не хватает поддержки старшего брата, да и здесь загружать кучей глупых (начального уровня) вопросов на добровольных началах как то не правильно... в общем на платной основе коммуникация будет оправдана для одной стороны и эффективна для меня
Не бойтесь задавать вопросы, даже если они вам кажутся глупыми. Часто они позволяют выявить огрехи в документации или даже баги, а значит идут на пользу инструментам, команде и сообществу. На ту же проблему с кешем я нарывался в своём проекте, но было лень копать. А в процессе подготовки ответа для Вас, разобрался и отправил баг-репорт. Если же захотите отблагодарить именно материально, то могу дать, например, номер Яндекс-кошелька :).
Полностью согласен с @Guria