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

34
Вёрстка по методологии БЭМ Владимир Скляр, WordPress Moscow Meetup #37, 27.06.2015

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

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

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

БЭМ

Владимир Скляр, WordPress Moscow Meetup #37, 27.06.2015

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

HTML + CSS + JS

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

HTML + CSS + JS

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

Если не знакомы с html и css, но интересно

htmlbook.ru/samhtml

htmlbook.ru/samcss

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

Особенности CSS

Каскад

Глобальная область видимости

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

Специфичность

#logo

.header .logo

.logo

h1

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

«CSS-ад в вакууме»

#header div div * {font-size : 15px !important;

}

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

Общие принципы грамотной вёрстки

● Не использовать идентификаторы● Не использовать универсальный селектор *● Рекомендуется, использовать только классы● Минимизировать каскад● Не использовать !important● Не использовать html-атрибут style● Использовать пре(пост)процессоры css● Минимизировать использование селекторов тегов

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

БЭМ

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

БЭМ=

Методология + Платформа (Стек)

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

БЭМ=

Методология + Платформа (Стек)

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

БлокЭлементМодификатор

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

Блок

Независимая структурная единица в вёрстке

.logo

.main-menu

.copyright

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

Элемент

Составляющая часть блока, вне которого она не имеет смысла.

.logo__image

.main-menu__item

.copyright__text

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

Модификатор

Изменённое состояние блока или элемента.

.logo__image_big

.logo__image_size_big

.main-menu__item_state_current

.copyright__text_hover

.menu_float

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

Общие принципы грамотной вёрстки

● Не использовать идентификаторы● Не использовать универсальный селектор *● Рекомендуется, использовать только классы● Минимизировать каскад● Не использовать !important● Не использовать html-атрибут style● Использовать пре(пост)процессоры css● Минимизировать использование селекторов тегов

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

<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>

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

<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>

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

Плюсы

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

Минусы

● Возможная громоздкость (см. БЭМ-стек)– длинные имена классов

– большие иерархии папок/файлов

● неконтролируемый html (wysiwyg)

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

5

bem.info

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

github.com/bem

Page 25: Вёрстка по методологии БЭМ
Page 26: Вёрстка по методологии БЭМ
Page 27: Вёрстка по методологии БЭМ

Меню

wp_nav_menu– параметр «walker» класс Walker_Nav_Menu→

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

Виджеты

widget_options параметр «classname»→

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

Вывод списка категорий

wp_list_categories– параметр «walker» класс Walker_Category→

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

Вывод списка страниц

wp_list_pages– параметр «walker» класс Walker_Page→

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

Другое

body_class( 'site-body' )

post_class( 'posts-list__item' )

изменение вывода стандартных шорткодов,

например [gallery]– фильтр post_gallery

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

Где искать информацию

bem.info

youtube.com — Фронтенд

habrahabr

google

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

В продолжение темы

Вадим Макеев, «БЭМ - норм»

http://www.youtube.com/watch?v=RM55tkWfHDc

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

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

Владимир Скляр ([email protected]),

WordPress Moscow Meetup #37, 27.06.2015