20
Б Э М

Стажировка 2015. Разработка. Занятие 9. BEM

  • Upload
    7bits

  • View
    255

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Стажировка 2015. Разработка. Занятие 9. BEM

Б Э М

Page 2: Стажировка 2015. Разработка. Занятие 9. BEM

Блок

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

Page 3: Стажировка 2015. Разработка. Занятие 9. BEM

Блок● заголовок● кнопка● навигационное меню

Page 4: Стажировка 2015. Разработка. Занятие 9. BEM
Page 5: Стажировка 2015. Разработка. Занятие 9. BEM
Page 6: Стажировка 2015. Разработка. Занятие 9. BEM
Page 7: Стажировка 2015. Разработка. Занятие 9. BEM

Элемент(часть блока)

● навигационное меню (блок), содержащее пункты меню (элементы);

● таблица (блок), внутри которой строки, ячейки и заголовки (элементы).

Page 8: Стажировка 2015. Разработка. Занятие 9. BEM
Page 9: Стажировка 2015. Разработка. Занятие 9. BEM

Модификаторыопределяют свойства или состояния

Page 10: Стажировка 2015. Разработка. Занятие 9. BEM
Page 11: Стажировка 2015. Разработка. Занятие 9. BEM

Система именования Блоков

.b-heading

.b-text-input

Page 12: Стажировка 2015. Разработка. Занятие 9. BEM

Система именования Элементов

.b-text-input__label

.b-text-input__text-field

.b-block__elem1__elem2

Page 13: Стажировка 2015. Разработка. Занятие 9. BEM

Система именования Модификаторов

.b-text-input_disabled

.b-select__option_selected

.b-heading_level_alpha<div class="b-heading b-heading_level_alpha">BEM</div>

Page 14: Стажировка 2015. Разработка. Занятие 9. BEM

Если вам нравится другой способ именования — используйте его, только убедитесь, что у вас есть на то технологическая причина.

Page 15: Стажировка 2015. Разработка. Занятие 9. BEM

Альтернатива наименования

Page 16: Стажировка 2015. Разработка. Занятие 9. BEM

БЭМ и файловая структура

/blocks /b-button /b-heading /b-flyout /b-menu /b-text-field

… /b-jquery /b-model

Page 17: Стажировка 2015. Разработка. Занятие 9. BEM

БЭМ и файловая структура

/b-menu b-menu.js b-menu.css b-menu.tpl

Page 18: Стажировка 2015. Разработка. Занятие 9. BEM

БЭМ и файловая структура/b-menu /__item b-menu__item.css b-menu__item.tpl /_horizontal b-menu_horizontal.css /_theme /_dark b-menu_theme_dark.css /_light b-menu_theme_light.css b-menu.css b-menu.js b-menu.tpl

Page 19: Стажировка 2015. Разработка. Занятие 9. BEM

JavaScritpBEMDOM.decl('b-dropdown', { onSetMod: { disabled: function(modName, modVal) { this.getLabel().setMod('hidden', 'yes'); if (modVal === 'yes') { this.getPopup().hide(); } },

open: { yes: function() { this.populateList(); } } },

/* … */