Information
- Rating
- Does not participate
- Location
- Симферополь, Республика Крым, Россия
- Works in
- Date of birth
- Registered
- Activity
Specialization
Frontend Developer
Lead
HTML
CSS
BEM
SCSS
Adaptive layout
TypeScript
JavaScript
Crossbrowser layout
Web development
React
Мне использование БЭМ позволяет всё разложить по компонентам и иметь реализацию каждого компонента в одном месте:
https://github.com/vithar/bem.info/tree/master/common.blocks
Ну и что тут трудночитаемого?
https://github.com/vithar/bem.info/blob/master/common.blocks/nav/nav.css
.article-author__site { font-style: italic; }
Про link_size_small:
То, как именованы конкретные переменные — не проблема методологии, а проблема конкретного именующего.
«Плохая аналогия как банан в лифте». Вёрстка таблицами и использование правил именования БЭМ в HTML/CSS — ортогональны друг другу и ни как не пересекаются.
Приведите их, мне правда очень интересно узнать практики которые прям «давно» и «решают».
Если у чего-то нет хэйтеров — это что-то абсолютно никому не нужно.
Практическая польза от правил в БЭМ примерно такая же, как от полиморфизма, инкапсуляции и наследования в ООП. Правила задают систему, система позволяет быстрее разбираться в чужом и своём коде.
Рекомендую почитать историю создания БЭМ (https://ru.bem.info/method/history/). Если вам каскад в вёрстке не создаёт проблем и не хочется ограничивать область видимости и область применимости селектора — я вам очень завидую, у вас впереди ещё много открытий чудных.
В «официальном» БЭМ тоже есть сокращённый синтаксис модификаторов:
https://ru.bem.info/method/naming-convention/#%D0%98%D0%BC%D1%8F-%D0%BC%D0%BE%D0%B4%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%82%D0%BE%D1%80%D0%B0
А разделители между блоком, элементом и модификатором могут быть любые. Например, .block%element&modifier — соответствует БЭМ нотации.
Спецификации HTML4 и CSS2.1 были мной прочитаны раза 4 за всё время работы от начала и до конца. Думаю, что это сильно больше, чем их прочитало 99% веб-разработчиков.
Советую почитать описание методологии, мы его недавно переписали, на наш взгляд стало понятнее:
https://ru.bem.info/method/definitions/
Если есть вопросы — приходите на форум, обсудим/ответим/поможем:
https://ru.bem.info/forum/
https://github.com/gfranco/jeanny/
Мы использовали её на странице результатов поиска:
https://blog.yandex.ru/post/23106/
Потом отказались, поскольку в JS классы иногда зашиваются в строки и склеиваются, все случаи обработать невозможно и вёрстка иногда ломается после минимизации.
Но если у вас статика без CSS-классов в JS — можно использовать, минификация будет работать.
ru.bem.info/blog/bem-as-bootstrap
ru.bem.info/libs/bem-components
Это разные item разных блоков. Если писать стили просто на .item — будет коллизия.
По поводу «Все хорошие верстальщики верстают так, без всяких соглашений, статей и прочего». В 2005 это было не так.
Сейчас каждый школьник знает, что Земля круглая, а когда-то это знание стоило жизни.