SlideShare una empresa de Scribd logo
1 de 34
Descargar para leer sin conexión
Вёрстка по методологии
БЭМ
Владимир Скляр, WordPress Moscow Meetup #37, 27.06.2015
HTML + CSS + JS
HTML + CSS+ JS
Если не знакомы с html и css, но интересно
htmlbook.ru/samhtml
htmlbook.ru/samcss
Особенности CSS
Каскад
Глобальная область видимости
Специфичность
#logo
.header .logo
.logo
h1
«CSS-ад в вакууме»
#header div div * {
font-size : 15px !important;
}
Общие принципы грамотной вёрстки
● Не использовать идентификаторы
● Не использовать универсальный селектор *
● Рекомендуется, использовать только классы
● Минимизировать каскад
● Не использовать !important
● Не использовать html-атрибут style
● Использовать пре(пост)процессоры css
● Минимизировать использование селекторов тегов
БЭМ
БЭМ
=
Методология + Платформа (Стек)
БЭМ
=
Методология + Платформа (Стек)
Блок
Элемент
Модификатор
Блок
Независимая структурная единица в вёрстке
.logo
.main-menu
.copyright
Элемент
Составляющая часть блока, вне которого она не имеет
смысла.
.logo__image
.main-menu__item
.copyright__text
Модификатор
Изменённое состояние блока или элемента.
.logo__image_big
.logo__image_size_big
.main-menu__item_state_current
.copyright__text_hover
.menu_float
Общие принципы грамотной вёрстки
● Не использовать идентификаторы
● Не использовать универсальный селектор *
● Рекомендуется, использовать только классы
● Минимизировать каскад
● Не использовать !important
● Не использовать html-атрибут style
● Использовать пре(пост)процессоры css
● Минимизировать использование селекторов тегов
<ul class="menu">
<li class="menu__item">
<a href="menu__link">Page 1</a>
</li>
<li class="menu__item menu__item_current">
<a href="menu__link">Page 2</a>
</li>
</ul>
<ul class="price-table">
<li class="price-table__item">
<div class="price-table__item-header">111</div>
<div class="price-table__item-content">222</div>
</li>
<li class="price-table__item price-table__item_sale">
<div class="price-table__item-header">333</div>
<div class="price-table__item-content">444</div>
</li>
</ul>
Плюсы
Минусы
● Возможная громоздкость (см. БЭМ-стек)
– длинные имена классов
– большие иерархии папок/файлов
● неконтролируемый html (wysiwyg)
5
bem.info
github.com/bem
Меню
wp_nav_menu
– параметр «walker» класс Walker_Nav_Menu→
Виджеты
widget_options параметр «classname»→
Вывод списка категорий
wp_list_categories
– параметр «walker» класс Walker_Category→
Вывод списка страниц
wp_list_pages
– параметр «walker» класс Walker_Page→
Другое
body_class( 'site-body' )
post_class( 'posts-list__item' )
изменение вывода стандартных шорткодов,
например [gallery]
– фильтр post_gallery
Где искать информацию
bem.info
youtube.com — Фронтенд
habrahabr
google
В продолжение темы
Вадим Макеев, «БЭМ - норм»
http://www.youtube.com/watch?v=RM55tkWfHDc
«Вёрстка по методологии БЭМ»
Владимир Скляр (versus.post@gmail.com),
WordPress Moscow Meetup #37, 27.06.2015

Más contenido relacionado

La actualidad más candente

BEM — block, element, modification conception
BEM — block, element, modification conceptionBEM — block, element, modification conception
BEM — block, element, modification conception
Vadim Patsev
 
практическое использование модуля Panels богуцкий виктор
практическое использование модуля Panels богуцкий викторпрактическое использование модуля Panels богуцкий виктор
практическое использование модуля Panels богуцкий виктор
drupalconf
 

La actualidad más candente (20)

Презентация на тему "WEB-программирование"
Презентация на тему "WEB-программирование"Презентация на тему "WEB-программирование"
Презентация на тему "WEB-программирование"
 
Современная верстка с адекватными трудозатратами Максим Тимохин, технолог, И...
 Современная верстка с адекватными трудозатратами Максим Тимохин, технолог, И... Современная верстка с адекватными трудозатратами Максим Тимохин, технолог, И...
Современная верстка с адекватными трудозатратами Максим Тимохин, технолог, И...
 
Bootstrap 3. Адаптивная верстка для WordPress
Bootstrap 3. Адаптивная верстка для WordPressBootstrap 3. Адаптивная верстка для WordPress
Bootstrap 3. Адаптивная верстка для WordPress
 
Bootstrap
BootstrapBootstrap
Bootstrap
 
A вы верите в систематизацию
A вы верите в систематизацию A вы верите в систематизацию
A вы верите в систематизацию
 
Premium-темы WordPress (Wordcamp Russia 2015)
Premium-темы WordPress (Wordcamp Russia 2015)Premium-темы WordPress (Wordcamp Russia 2015)
Premium-темы WordPress (Wordcamp Russia 2015)
 
Alex baumgertner bem_in_small_projects
Alex baumgertner bem_in_small_projectsAlex baumgertner bem_in_small_projects
Alex baumgertner bem_in_small_projects
 
BEM — block, element, modification conception
BEM — block, element, modification conceptionBEM — block, element, modification conception
BEM — block, element, modification conception
 
Вёрстка WordPress тем - WP Kharkiv Meetup #1
Вёрстка WordPress тем - WP Kharkiv Meetup #1Вёрстка WordPress тем - WP Kharkiv Meetup #1
Вёрстка WordPress тем - WP Kharkiv Meetup #1
 
Дмитрий Кушников — БЭМ глазами бэкенд-разработчика
Дмитрий Кушников — БЭМ глазами бэкенд-разработчикаДмитрий Кушников — БЭМ глазами бэкенд-разработчика
Дмитрий Кушников — БЭМ глазами бэкенд-разработчика
 
Как создать сайт с нуля за 1 день
Как создать сайт с нуля за 1 деньКак создать сайт с нуля за 1 день
Как создать сайт с нуля за 1 день
 
Иван Карев — Клиентская оптимизация
Иван Карев — Клиентская оптимизацияИван Карев — Клиентская оптимизация
Иван Карев — Клиентская оптимизация
 
Разработка Rich Text Editor: проблемы и решения / Егор Яковишен (Setka)
Разработка Rich Text Editor: проблемы и решения / Егор Яковишен (Setka)Разработка Rich Text Editor: проблемы и решения / Егор Яковишен (Setka)
Разработка Rich Text Editor: проблемы и решения / Егор Яковишен (Setka)
 
От БЭМ-методологии до Мануфактуры проектов
От БЭМ-методологии до Мануфактуры проектовОт БЭМ-методологии до Мануфактуры проектов
От БЭМ-методологии до Мануфактуры проектов
 
Создание сайтов: как всё устроено и первые шаги.
Создание сайтов: как всё устроено и первые шаги.Создание сайтов: как всё устроено и первые шаги.
Создание сайтов: как всё устроено и первые шаги.
 
Мастер-класс "Привет, Drupal"
Мастер-класс "Привет, Drupal"Мастер-класс "Привет, Drupal"
Мастер-класс "Привет, Drupal"
 
Создание веб-сайта. Курс молодого бойца
Создание веб-сайта. Курс молодого бойцаСоздание веб-сайта. Курс молодого бойца
Создание веб-сайта. Курс молодого бойца
 
Bootstrap 3
Bootstrap 3Bootstrap 3
Bootstrap 3
 
CSS Modules в React | Odessa Frontend Meetup #4
CSS Modules в React | Odessa Frontend Meetup #4CSS Modules в React | Odessa Frontend Meetup #4
CSS Modules в React | Odessa Frontend Meetup #4
 
практическое использование модуля Panels богуцкий виктор
практическое использование модуля Panels богуцкий викторпрактическое использование модуля Panels богуцкий виктор
практическое использование модуля Panels богуцкий виктор
 

Destacado

Стажировка-2013, разработчики, занятие 8. Html, CSS
Стажировка-2013, разработчики, занятие 8. Html, CSSСтажировка-2013, разработчики, занятие 8. Html, CSS
Стажировка-2013, разработчики, занятие 8. Html, CSS
7bits
 
Артем Маркушев - HTML & CSS
Артем Маркушев - HTML & CSSАртем Маркушев - HTML & CSS
Артем Маркушев - HTML & CSS
DataArt
 

Destacado (17)

Защищаем WordPress-сайт от хакерских атак
Защищаем WordPress-сайт от хакерских атакЗащищаем WordPress-сайт от хакерских атак
Защищаем WordPress-сайт от хакерских атак
 
SEO - поведенческие факторы.
SEO - поведенческие факторы.SEO - поведенческие факторы.
SEO - поведенческие факторы.
 
следите за-языком-20150709
следите за-языком-20150709следите за-языком-20150709
следите за-языком-20150709
 
Как развиваться WordPress-программисту
Как развиваться WordPress-программистуКак развиваться WordPress-программисту
Как развиваться WordPress-программисту
 
Как получить чёрный пояс по WordPress? v2.0
Как получить чёрный пояс по WordPress? v2.0Как получить чёрный пояс по WordPress? v2.0
Как получить чёрный пояс по WordPress? v2.0
 
Как не сойти с ума при разработке крупных проектов на WordPress
Как не сойти с ума при разработке крупных проектов на WordPressКак не сойти с ума при разработке крупных проектов на WordPress
Как не сойти с ума при разработке крупных проектов на WordPress
 
Архитектура крупных WordPress сайтов
Архитектура крупных WordPress сайтовАрхитектура крупных WordPress сайтов
Архитектура крупных WordPress сайтов
 
WordCamp Moscow 2016: Как получить качество
WordCamp Moscow 2016: Как получить качествоWordCamp Moscow 2016: Как получить качество
WordCamp Moscow 2016: Как получить качество
 
Как получить чёрный пояс по WordPress?
Как получить чёрный пояс по WordPress?Как получить чёрный пояс по WordPress?
Как получить чёрный пояс по WordPress?
 
Секреты WP_Query
Секреты WP_QueryСекреты WP_Query
Секреты WP_Query
 
Кейс разработки на CS-Cart от наших партнеров. Проект "Incir".
Кейс разработки на CS-Cart от наших партнеров. Проект "Incir". Кейс разработки на CS-Cart от наших партнеров. Проект "Incir".
Кейс разработки на CS-Cart от наших партнеров. Проект "Incir".
 
Стажировка-2013, разработчики, занятие 8. Html, CSS
Стажировка-2013, разработчики, занятие 8. Html, CSSСтажировка-2013, разработчики, занятие 8. Html, CSS
Стажировка-2013, разработчики, занятие 8. Html, CSS
 
Основы HTML - шесть лет спустя
Основы HTML - шесть лет спустяОсновы HTML - шесть лет спустя
Основы HTML - шесть лет спустя
 
CS-Cart. Ценный опыт.
CS-Cart. Ценный опыт.CS-Cart. Ценный опыт.
CS-Cart. Ценный опыт.
 
Как быть на слуху у клиентов и получить прибыль 300%? Аудиореклама для b2b
Как быть на слуху у клиентов и получить прибыль 300%? Аудиореклама для b2bКак быть на слуху у клиентов и получить прибыль 300%? Аудиореклама для b2b
Как быть на слуху у клиентов и получить прибыль 300%? Аудиореклама для b2b
 
Крупные мероприятия по информационной безопасности на 2017 год
Крупные мероприятия по информационной безопасности на 2017 годКрупные мероприятия по информационной безопасности на 2017 год
Крупные мероприятия по информационной безопасности на 2017 год
 
Артем Маркушев - HTML & CSS
Артем Маркушев - HTML & CSSАртем Маркушев - HTML & CSS
Артем Маркушев - HTML & CSS
 

Similar a Вёрстка по методологии БЭМ

Мастер-класс: Разрабатываем сайт с нуля на полном стеке БЭМ-технологий — Жека...
Мастер-класс: Разрабатываем сайт с нуля на полном стеке БЭМ-технологий — Жека...Мастер-класс: Разрабатываем сайт с нуля на полном стеке БЭМ-технологий — Жека...
Мастер-класс: Разрабатываем сайт с нуля на полном стеке БЭМ-технологий — Жека...
Yandex
 
Жека Константинов, Дима Белицкий, Слава Аристов — Мастер-класс: разрабатываем...
Жека Константинов, Дима Белицкий, Слава Аристов — Мастер-класс: разрабатываем...Жека Константинов, Дима Белицкий, Слава Аристов — Мастер-класс: разрабатываем...
Жека Константинов, Дима Белицкий, Слава Аристов — Мастер-класс: разрабатываем...
Yandex
 
CSS-в-JS, HTML-в-JS, ВСЁ-в-JS. Все гораздо проще, когда всё вокруг JavaScript
CSS-в-JS, HTML-в-JS, ВСЁ-в-JS. Все гораздо проще, когда всё вокруг JavaScriptCSS-в-JS, HTML-в-JS, ВСЁ-в-JS. Все гораздо проще, когда всё вокруг JavaScript
CSS-в-JS, HTML-в-JS, ВСЁ-в-JS. Все гораздо проще, когда всё вокруг JavaScript
Alexey Ivanov
 

Similar a Вёрстка по методологии БЭМ (20)

Мировые информационные ресурсы. Лекция 4
Мировые информационные ресурсы. Лекция 4Мировые информационные ресурсы. Лекция 4
Мировые информационные ресурсы. Лекция 4
 
DOM-шаблонизаторы – не только "быстро"
DOM-шаблонизаторы – не только "быстро"DOM-шаблонизаторы – не только "быстро"
DOM-шаблонизаторы – не только "быстро"
 
бэм методология
бэм методология бэм методология
бэм методология
 
Сергей Бережной, Варвара Степанова "Как использовать БЭМ! вне Яндекса"
Сергей Бережной, Варвара Степанова "Как использовать БЭМ! вне Яндекса"Сергей Бережной, Варвара Степанова "Как использовать БЭМ! вне Яндекса"
Сергей Бережной, Варвара Степанова "Как использовать БЭМ! вне Яндекса"
 
Основы языка HTML
Основы языка HTMLОсновы языка HTML
Основы языка HTML
 
Мастер-класс: Разрабатываем сайт с нуля на полном стеке БЭМ-технологий — Жека...
Мастер-класс: Разрабатываем сайт с нуля на полном стеке БЭМ-технологий — Жека...Мастер-класс: Разрабатываем сайт с нуля на полном стеке БЭМ-технологий — Жека...
Мастер-класс: Разрабатываем сайт с нуля на полном стеке БЭМ-технологий — Жека...
 
Html, css, js
Html, css, jsHtml, css, js
Html, css, js
 
WebCamp, Front-end Developers Day Игорь Зенич "Пишем БЭМ правильно"
WebCamp, Front-end Developers Day Игорь Зенич "Пишем БЭМ правильно"WebCamp, Front-end Developers Day Игорь Зенич "Пишем БЭМ правильно"
WebCamp, Front-end Developers Day Игорь Зенич "Пишем БЭМ правильно"
 
Жека Константинов, Дима Белицкий, Слава Аристов — Мастер-класс: разрабатываем...
Жека Константинов, Дима Белицкий, Слава Аристов — Мастер-класс: разрабатываем...Жека Константинов, Дима Белицкий, Слава Аристов — Мастер-класс: разрабатываем...
Жека Константинов, Дима Белицкий, Слава Аристов — Мастер-класс: разрабатываем...
 
CSS-в-JS, HTML-в-JS, ВСЁ-в-JS. Все гораздо проще, когда всё вокруг JavaScript
CSS-в-JS, HTML-в-JS, ВСЁ-в-JS. Все гораздо проще, когда всё вокруг JavaScriptCSS-в-JS, HTML-в-JS, ВСЁ-в-JS. Все гораздо проще, когда всё вокруг JavaScript
CSS-в-JS, HTML-в-JS, ВСЁ-в-JS. Все гораздо проще, когда всё вокруг JavaScript
 
Жизнь в изоляции / Роман Дворнов (Avito)
Жизнь в изоляции / Роман Дворнов (Avito)Жизнь в изоляции / Роман Дворнов (Avito)
Жизнь в изоляции / Роман Дворнов (Avito)
 
Быстро о быстром
Быстро о быстромБыстро о быстром
Быстро о быстром
 
Basis.js - почему я не бросил разрабатывать свой фреймворк (extended)
Basis.js - почему я не бросил разрабатывать свой фреймворк (extended)Basis.js - почему я не бросил разрабатывать свой фреймворк (extended)
Basis.js - почему я не бросил разрабатывать свой фреймворк (extended)
 
FrontTalks: Роман Дворнов (Ostrovok.ru), «Basis.js: почему я не бросил разраб...
FrontTalks: Роман Дворнов (Ostrovok.ru), «Basis.js: почему я не бросил разраб...FrontTalks: Роман Дворнов (Ostrovok.ru), «Basis.js: почему я не бросил разраб...
FrontTalks: Роман Дворнов (Ostrovok.ru), «Basis.js: почему я не бросил разраб...
 
Seo Drupal 6
Seo Drupal 6Seo Drupal 6
Seo Drupal 6
 
Seo
SeoSeo
Seo
 
Trening modul2-conf1-tema5
Trening modul2-conf1-tema5Trening modul2-conf1-tema5
Trening modul2-conf1-tema5
 
Жизнь в изоляции
Жизнь в изоляцииЖизнь в изоляции
Жизнь в изоляции
 
Павел Шут — БЭМ в lean startup'e
Павел Шут — БЭМ в lean startup'eПавел Шут — БЭМ в lean startup'e
Павел Шут — БЭМ в lean startup'e
 
Владимир Гриненко "i-bem.js: JavaScript в БЭМ-терминах"
Владимир Гриненко "i-bem.js: JavaScript в БЭМ-терминах"Владимир Гриненко "i-bem.js: JavaScript в БЭМ-терминах"
Владимир Гриненко "i-bem.js: JavaScript в БЭМ-терминах"
 

Вёрстка по методологии БЭМ