Skip to content

Latest commit

 

History

History
31 lines (25 loc) · 3.12 KB

README.md

File metadata and controls

31 lines (25 loc) · 3.12 KB

Основное отличие версии 2.2 от 2.0 заключается в том, что блок восприимается всего лишь как один из модификаторов! Наименование элемента размещается в атрибуты, модификаторы в значение этих атрибутов. В принципе, в качестве блока мы указываем лишь какой-либо нужный нам родительский элемент. То есть фактически, по сравнению с 1.0, мы переносим всё в общую строку контекста элемента - и блоки и модификаторы, что хуже с точки зрения миксов блоков. Реализовать эту идею, в принципе, можно и старым способом при помощи множественных классов, например .b-tab.e-list, .b-tab.e-item, .b-tab.e-item.-active- и .b-tab.e-panel.-active- а ещё наглядней .labels.in-wgt-tabs, .label.in-wgt-tabs, .-active-.label.in-wgt-tabs, .-active-.panel.in-wgt-tabs но этот вариант накладен с точки зрения нарастания веса селекторов.

При помощи атрибутов css-селекторы получаются следующие: *[am-labels *= "^am-wgt-tabs^"], *[am-label *= "^am-wgt-tabs^"], *[am-label *= "^am-wgt-tabs^-active-"], *[am-label *= "^am-wgt-tabs^-active--dark-"] *[am-panel *= "^am-wgt-tabs^-active-"]

Основной profit атрибутивных селекторов в том, что можно искать только часть строки на совпадение, таким образом в наших руках появляется инструмент, позволяющий написать сколь угодно сложное значение атрибута и перекрыть ниже простейшим значением части атрибута, не наращивая для этого специфичности!

Все названия пишутся в нижнем регистре, так как атрибуты регистронезависимые, и заглавные символы не воспринимаются браузером таковыми.

Сложные названия пишем через нижнее подчёркивание, а не дефис, чтобы проще было копировать строки (обсуждаемо). Префиксы отделяем минусом.

Каждый модификатор оборачиваем в - или ^, чтобы исключить совпадения части строк, как в данном случае: *[item *= active], *[item *= inactive]

При помощи ^ указываем, что селектор надо применять только к элементу расположенному в другом конкретном элементе (блоке), например: *[am-labels *= "^am-wgt-tabs^"]