БЭМ нейминг. Как писать CSS по методологии BEM(блок - элемент - модификатор)

แชร์
ฝัง
  • เผยแพร่เมื่อ 16 พ.ย. 2024

ความคิดเห็น • 62

  • @odinokun
    @odinokun 5 ปีที่แล้ว +5

    Вы наверное первый сняли видео с подробным объяснением про верстку под БЭМ-у элемента сложнее чем nav>ul>li >a
    Большое спасибо.

    • @Frontcoder
      @Frontcoder  5 ปีที่แล้ว

      Добрый день. Спасибо за ваш комментарий. рад, что вам нравится!

  • @torex1123
    @torex1123 5 ปีที่แล้ว

    Анатолий, спасибо, что прислушались и записали это видео! Большой лайк!

    • @Frontcoder
      @Frontcoder  5 ปีที่แล้ว +1

      Добрый день. Спасибо за ваш комментарий. Рад, что вам нравится!

  • @GutsWarhammer
    @GutsWarhammer 4 ปีที่แล้ว

    Определённо топчик! Помог структурировать хаос в голове)

    • @Frontcoder
      @Frontcoder  4 ปีที่แล้ว

      Добрый день. Спасибо за ваш комментарий. Рад, что вам нравится

  • @МихаилАралов
    @МихаилАралов 5 ปีที่แล้ว +5

    о бог ты мой)) десятки видео, часы за документации и все равно каша в голове. а теперь все стало на свои места! ЛУШЕЕ объяснение БЭМ!!! спасибо

    • @Frontcoder
      @Frontcoder  5 ปีที่แล้ว

      Добрый день. Спасибо за ваш комментарий. Рад, что вам нравится!

  • @СергейГейко-м2ю
    @СергейГейко-м2ю 3 ปีที่แล้ว +1

    Классная подача, благодарю!

  • @Blondguy12
    @Blondguy12 4 ปีที่แล้ว

    Очень приятный и чистый код. Смотреть - одно удовольствие

    • @Frontcoder
      @Frontcoder  4 ปีที่แล้ว

      Добрый день. Спасибо за ваш комментарий. Рад, что вам нравится!

  • @TheMrDimka
    @TheMrDimka 5 ปีที่แล้ว +1

    Спасибо за качественное видео, но позволю себе комментарий:
    - с т.з. семантики вместо подходящих по смыслу тегов используется div.
    - там где говорили что мелкие элементы типа text можно отдельно не называть по БЭМ, не соглашусь, в случае адаптивной верстки блок карточки товара может выглядеть совсем иначе.

    • @Frontcoder
      @Frontcoder  5 ปีที่แล้ว +2

      Я при этом упомянул, что я так делаю, и что БЭМ рекомендует давать классы каждому элементу. Все надо смотреть относительно текущего контекста

  • @-it7046
    @-it7046 5 ปีที่แล้ว

    Спасибо что продолжаешь, ты молодец!

    • @Frontcoder
      @Frontcoder  5 ปีที่แล้ว

      Добрый день. Спасибо за ваш комментарий. Рад, что вам нравится!

  • @Scarecrow9298
    @Scarecrow9298 5 ปีที่แล้ว

    Благодарю! Прояснились некоторые моменты!

    • @Frontcoder
      @Frontcoder  5 ปีที่แล้ว

      Добрый день. Спасибо за ваш комментарий. Рад, что вам понравилось.

  • @wekar5544
    @wekar5544 5 ปีที่แล้ว +4

    А почему product__info сделать не таблицой?

  • @alexey_kadochnikov
    @alexey_kadochnikov 5 ปีที่แล้ว

    Хорошее видео! Если ничего не путаю, то модификатор через 2 "--" применялся изначально, потом они перешли на "_" . В комбинации с препроцессором выглядело бы еще эффектнее.

    • @clatten9518
      @clatten9518 2 ปีที่แล้ว

      по-моему..наоборот, было "_", а после, кто-то придумал писать через "--"

  • @jakhonkhojakhon
    @jakhonkhojakhon 2 ปีที่แล้ว

    Подскажите пожалуйста, для соцсетей достаточно ли было в CSS написать ".social__link--twitter", вместо ".social__link.social__link--twitter"? Также по методологии Комбинированные селекторы не рекомендуются в связи с тем, что у них получается более высокая специфичность.

  • @demimurych1
    @demimurych1 4 ปีที่แล้ว

    Множественные селекторы не рекомендуют использовать по причинам связанным с производительностью рендера страниц - особенностью работы с этим современных браузеров.
    Это нужно либо запомнить для себя как догмат в случае если нет желания точно вникнуть в проблематику. И ни в коем случае не советовать людям делать иначе, не понимая почему этот догмат появился.
    Или разобраться в том, как и почему существует такая рекомендация -
    Проще всего понять самому, это взять страницу с вложенностью больше 32 и чаилдами больше 32, плюс файл стилей на несколько тысяч селекторов. И попытаться описать что то через множественные селекторы для корневых элементов. И посмотреть потребляемые ресурсы.
    Тогда догмат о опасности множественных селекторов станет очевидным, даже на i7 с 64гб оперативной памяти. Потому что разбор селекторов браузером идет справа налево. Указывая множественный селектор вы создаете ситуацию при которой вероятность когда браузер будет вынужден перебирать ВСЕ ДОМ ДЕРЕВО от его крайнего элемента к корню крайне велика
    БЭМ сам по себе, так же появился не только из за необходимости решения задачи инкапсуляции свойств обьекта с целью обеспечения его переносимости. Но и как эффективное средство минимизировать накладные расходы работы браузеров, при рендере html документа.

  • @Анастасия-в4ъ6д
    @Анастасия-в4ъ6д 5 ปีที่แล้ว

    Спасибо за урок!

    • @Frontcoder
      @Frontcoder  5 ปีที่แล้ว +1

      Добрый день. Спасибо за ваш комментарий. Рад, что вам нравится!

  • @SwordToothTiger
    @SwordToothTiger 3 ปีที่แล้ว

    а зачем два раза одному и тому же блоку ширину задавать? (max-width и цшвер для .product__photo)

  • @ЮлианаЦветкова-ж5в
    @ЮлианаЦветкова-ж5в ปีที่แล้ว

    Здравствуйте! Подскажите пожалуйста как вы изменили цвета тегов? Может это какой-то плагин?

    • @Frontcoder
      @Frontcoder  8 หลายเดือนก่อน

      Это работа ide

    • @ЮлианаЦветкова-ж5в
      @ЮлианаЦветкова-ж5в 7 หลายเดือนก่อน

      ​@@Frontcoder то есть это уже встроено в редактор? Или всё-таки какой-то плагин для тегов?

  • @dr_freeman
    @dr_freeman 5 ปีที่แล้ว +1

    А как так получилось, что элемент price__actions находится вне блока price?

    • @Frontcoder
      @Frontcoder  5 ปีที่แล้ว

      Мой косяк. Это должен быть product__actions

  • @АлексейБурдюк-в4т
    @АлексейБурдюк-в4т 4 ปีที่แล้ว

    Добрый день. все понравилось.
    Есть пару вопросов:
    1)Почему назвали title__small, блока title у нас ведь нету?
    2)Почему класс social__link, если блок имеет класс socials а не social?

    • @Frontcoder
      @Frontcoder  4 ปีที่แล้ว

      Добрый день.
      1. Просто разбивка всех заголовков на свой класс. Возможно правилььнее было бы через модификаторы
      2. Потому что общий блок это socials а отдельная иконка это social

  • @МихаилТрифонов-з6т
    @МихаилТрифонов-з6т 5 ปีที่แล้ว

    Подскажите пожалуйста, Авокод покупаете ежемесячно? Возможно корпоративная версия?

    • @Frontcoder
      @Frontcoder  5 ปีที่แล้ว

      Добрый день. Триал

    • @МихаилТрифонов-з6т
      @МихаилТрифонов-з6т 5 ปีที่แล้ว

      @@Frontcoder спасибо за ответ. Каждые 14 дней регистрируете новый аккаунт?

  • @svhanz
    @svhanz 3 ปีที่แล้ว

    В 19-ой строке сходу ошибка по БЭМ- класс обозначается в первую очередь, а уже потом все атрибуты.
    Дальше смотреть на стал.

  • @pinkhappybear4682
    @pinkhappybear4682 5 ปีที่แล้ว

    Не совсем понял про title__small. Получилось, что элемент вложен в элемент, такое в БЭМ разве разрешено?

    • @torex1123
      @torex1123 5 ปีที่แล้ว

      Да, так можно

  • @АйдарИбраев-п5к
    @АйдарИбраев-п5к 5 ปีที่แล้ว

    Спасибо за видео

    • @Frontcoder
      @Frontcoder  5 ปีที่แล้ว

      Добрый день. Спасибо за ваш комментарий. Рад, что вам нравится!

  • @umpair
    @umpair 5 ปีที่แล้ว

    А можно вместо миксов использовать модификаторы? Например, rating-stars--product

    • @Frontcoder
      @Frontcoder  5 ปีที่แล้ว

      Нет, так как это совершенно разные вещи

    • @umpair
      @umpair 5 ปีที่แล้ว

      @@Frontcoder Спасибо за ответ. Еще такой вопрос можно ли использовать элемент в таком же элементе? Например:
      В документации такой информации не нашел

  • @СергейПрядкин-х9я
    @СергейПрядкин-х9я 5 ปีที่แล้ว

    Почему btn--text-uppercase если uppercase может понадобиться не только на кнопке. Не правильнее ли будет назвать просто uppercase, что бы можно было применять и в простом тексте как дополнительный стиль

    • @Frontcoder
      @Frontcoder  5 ปีที่แล้ว

      Добрый день. Это уже будут состояния элемента как is-active например. Глобальных модификаторов в БЭМ нет

  • @vkuznetsov44
    @vkuznetsov44 5 ปีที่แล้ว

    Действительно, самое адекватное видео. А то все остальные идиотизм оторванный от реале или пустозвонство.
    А как делать нейминг и вложенность для сложных составных блоков?
    Например, joxi.ru/12Mloqtlo9a8mJ есть карточки, но в них раскидан как контент, так и оформиловка.
    А вот про * есть нюанс, удобно прописывать так отступы, только надо указывать > * иначе вложенные теги тоже поедут, а нужно лишь блокам или элементам задать отступ.

    • @Frontcoder
      @Frontcoder  5 ปีที่แล้ว +1

      Добрый день. Спасибо за ваш комментарий. Рад, что вам нравится!
      На канале есть видео с версткой полноценных сайтов. Посмотрите. Там я все показываю

  • @olegvi5183
    @olegvi5183 5 ปีที่แล้ว

    Есть вопрос, не совсем понятно зачем в БЭМ нужны модификаторы. Разве для качественного наследования недостаточно будет миксов блоков и элементов? Как пример классы кнопки: button form__button, где в 1 класс пойдет общая структура кнопки, во второй все остальное, включая цвет и отступы. Нужно понимать что кнопки срецифичны в дизайне и с большой вероятностью не будут отличаться многим от шаблонного класса button, а для небольшой коррекции можно будет стили дописать в классе элемента. Поэтому непонятно, зачем нужны модификаторы, где в отдельных случаях прописывается цвет:красный и про него забываешь на весь оставшийся проект

    • @olegvi5183
      @olegvi5183 5 ปีที่แล้ว

      Но при том: поганится место в html, поганится место в sass ... не говоря уже о том, что функциональности это не прибавляет

    • @Frontcoder
      @Frontcoder  5 ปีที่แล้ว

      Добрый день. Представьте что у вас есть 3 кнопки. Одинаковые по цвету, тексту и т.д. Но при этом отличаются только по высоте и они не привязаны к контенту, а могут встретиться везде на сайте. ВОт для этого и нужны модификаторы

    • @olegvi5183
      @olegvi5183 5 ปีที่แล้ว

      @@Frontcoder Другими словами, модификаторы не обязательно использовать по бэму для изменения цвета изначально? Если у меня одна кнопка то могу ли я написать все стили в классе объекта (тот же цвет и высоту) но в случае появления новых кнопок просто добавить модификатор который будет пкрезаписывать уже существующие параметры ( цвета, размера итд)?

    • @Frontcoder
      @Frontcoder  5 ปีที่แล้ว

      все верно. у вас есть базовый класс, а потом вы добавляете модификаторы для нужных свойств

    • @olegvi5183
      @olegvi5183 5 ปีที่แล้ว

      @@Frontcoder но как же тогда разделение на сущности (кто? что?) и их параметры (какой?) ? Или суть бэма состоит в том, чтобы выстроить структуру наиболее эффективного наследования, где микс-класс отвечает за общую сущность, элементовый-класс за применение непосредственно в этом месте и модификатор-класс используется для придания дополнительного функционала. Таким образом, если нужно будет опустить одну из кнопок блока чуть ниже, то мы напишем в модификаторе этой кнопки марджины, чтобы это не задевало остальные кнопки блока?

  • @andrewzakharchenko7216
    @andrewzakharchenko7216 5 ปีที่แล้ว

    если использовать бем, то простой css уже не катит, лучше всего в дополнении делать сборку с scss "&", будет в разы быстрее) удачи

    • @Frontcoder
      @Frontcoder  5 ปีที่แล้ว

      Добрый день. ну тут идет речь не про сборку)) В сборке у меня SCSS

  • @systemconnect3096
    @systemconnect3096 5 ปีที่แล้ว

    блоки же вроде через"-"делаются, а элементы "__"?

  • @SergiuBurduja-y1l
    @SergiuBurduja-y1l 4 ปีที่แล้ว

    Спасибо. th-cam.com/video/4zt8qcZ1OXA/w-d-xo.html
    Привык не к бэму а к пагу.
    У меня тоже бывают такие смешные моменты))

  • @user-wetal4903
    @user-wetal4903 ปีที่แล้ว

    Классы удобнее через csstractor добавлять,понятно по коду что за чем написал в HTML по БЭМ очень слабо рассказал,большая часть видео по стилям а не про БЭМ

  • @Аллигатор-ю3к
    @Аллигатор-ю3к ปีที่แล้ว

    каша чес сказать