Search
Write a publication
Pull to refresh
1
0
Peter Dmitrienko @dmitrienkop

User

Send message
Насколько я знаю, вот так
.menu__item__link .menu__item__link_active
совсем делать нельзя.
Может быть только один уровень вложенности (поправьте меня примером с bem.info, если я не прав).
Т.е., м.б. только отношения блок__элемент, но никак не блок__элемент__элемент.
А как тогда быть с модификаторами? Их нельзя применять к элементу, только к блоку, или я ошибаюсь? А если .link содержит в себе множество элементов, которые я хочу сделать элементами для блока ссылки плюс мне нужно состояние (к примеру активности) для неё? Мне эти элементы тоже привязывать к меню?)
Почему? Блок может содержать и элементы и другие блоки.
Ну, накосячили верстальщики или разработчики.
А говнокод на PHP характеризует PHP?
Так и учитесь. Есть bem.info — там всё подробно, и с хорошими примерами. Куда как лучше составлять своё мнение на чём-то более-менее существенном. Моё сложилось на множестве больших проектов, которыми занималось одновременно много человек, и на том, что те люди, что не использовали БЭМ, после них его полюбили и оценили профит.
Да, и вы удивитесь, но с БЭМ можно использовать LESS и табуляцию :)
Это корявый БЭМ) Давайте тогда я «не_БЭМ» буду представлять как
.myOwnPage #myBlock div div div a {}
? :)
Думаю, в рекомендации скорее говорится о том что для блока авторизации вряд ли подойдёт класс .block1, или например .news. Т.е., по этому классу можно сказать, что это за блок. По БЭМ-именованию с исключеним множества вложенностей в именовании вполне себе можно понять что это за блок и даже какое иерархическое положение он имеет.
И что вас смущает, например, в:
.menu
.menu__item
.menu__item .link
?
Что несемантично/сложно/непонятно?
Расскажите, каким, по-вашему, должно быть именование классов?
Что вы имеете в виду когда говорите что БЭМ рушит вам семантику кода?
Чтож, до того как меня на прошлом месте работы не убедили попробовать — я плевался и считал это нечитаемым. Сейчас в 95% случаев с ужасом смотрю на читабельность больших проектов «не по БЭМу», часто их поддержка отнимает необоснованно много времени.
Ну а в чём проблема? Вот CSS со случайной странички яндекса:
.b-mail-domik .b-hint-input { /*… */ }

По БЭМ нормально:
.main-menu — блок
.main-menu__item — элемент блока
.ico_size_16 — модификатор для блока

двойную вложенность в БЭМ я не встречал
А сам Яндекс, Рамблер, Хедхантер, Yota, lj, лента.ру?
+ Google так или иначе использует близкую концепцию.
На больших проектах с большой (возможно, распределённой) командой, на своём опыте скажу что БЭМ + жёсткий стандарт кода — спасение для верстальщика.
Нет, корректно будет так:
.nav__item {}
.nav __item .link {}
1) Читабельность. Смотря на правильно свёрстанную страницу по БЭМ, можно понять место и значение элемента, просто глядя на класс в стилях:
.main-menu > .main-menu__item > .main-menu__link,
умно описывать стили элементов, используя уже написанный код"
.ico.ico_size_16.ico_map
2) Семантичность. Вам что-то мешает использовать уместные тэги в БЭМ?) Мне, и многим бывшим и нынешним коллегам — нет)
Вы так говорите, как будто Microsoft запретила Dropbox для WP. «Решает» не больше, чем iOS с iCloud (под iOS, кстати, есть SkyDrive). И не больше чем андроид «решает», какими картами и почтой мне пользоваться.
На вкус и цвет. Но для экосистемы винфона «родной» SkyDrive, а не Dropbox.
А инстаграм — это такая штука из унылых фильтров для сомнительного качества фотографий + соцсеть, которой никто не пользуется? Так под винфон есть несколько действительно неплохих приложений для редактирования фото, которые также потом можно отправлять в твиттер, фб или куда ещё нынче принято.
IE9, смартфон :-) WP7, всё ок. Не в гифке дело?

Information

Rating
Does not participate
Location
Томск, Томская обл., Россия
Works in
Date of birth
Registered
Activity

Specialization

Frontend Developer
Lead
Git
JavaScript
React
TypeScript
Redux
Node.js
NestJS
Socket.js