Вкладені правила · Less

У добре структурованих таблицях стилів немає необхідності надавати кожному елементу класи. Досить детальніше описувати стилі елементів, використовуючи можливість вкладати селектори в інші селектори. До речі, такі селектори називаються вкладеними і є об'ємною структурою.

Приклад 2.2.1

Нижче наведено так званий «докладний CSS», в якому представлена ​​модель вкладеності одних селекторів до інших селекторів.

Вирішення проблем

Все це добре, але рівно доти, поки імена класів короткі, глибина вкладеності не велика, а ваші очі можуть встежити за цією структурою. Особисто я, доки не став користуватися CSS-препроцесорами, писав код саме так, попутно розділяючи CSS-файл на логічні блоки і намагаючись встежити за його чистотою. Це зручно і практично, але мені швидко набридло сортувати код за вкладеністю, і моя таблиця стилів іноді була схожа на мішанину з букв і цифр. Зрозуміло, що перед фінальним складанням проекту все це виправлялося, але це не той випадок, на який хочеться витрачати час.

Уявіть собі зміст найпростішої книги, наприклад, таке:

Тут досить легко зрозуміти, що пункт 1.1 це наслідок першого пункту. Проте, якщо переписати це в більш читальному форматі, можна заощадити час на обробці цифр у голові. Абстрактно можна представити наступний формат:

Саме така модель вкладеності присутня в Less, коли один селектор, у буквальному значенні слова, вкладається в інший селектор. Таким чином виходить структура, що легко підтримується, читається і приємна оку. Якщо ж спробувати спроектувати таку модель на CSS-код, то вона матиме вигляд:

Для більшої наочності я пропонуюзвернутися до конкретного прикладу, в якому я постараюся зіставити класичний CSS та Less код.

Приклад 2.2.2

Тут я переписав код прикладу 2.2.1, замінюючи класичний синтаксис на препроцесорний.

На зображенні нижче представлена ​​модель вкладеності, що описується в цьому прикладі. Для наочності і розуміння суті того, що відбувається, екран розділений на дві частини, де ліворуч код написаний препроцесорною мовою, а праворуч «чистим» CSS.

правила

Думки та поради

Погодьтеся, тепер ваш код стає інтуїтивно зрозумілим та зручним для читання. У такій структурі складно заплутатися та загубитися серед селекторів, адже тут чітко видно їхню вкладеність і не треба пам'ятати ім'я батьківського селектора — за нас це робить компілятор.

Застереження!

Постарайтеся запам'ятати раз і назавжди, що вкладати селектори один в одного можна нескінченно, але робити це не рекомендується! Багато розробників радять стежити, щоб структура, у випадку, не перевищувалатрьох вкладень. Немає необхідності вкладати селектори, починаючи з батьківського, на таку глибину. Максимально допустимий рівень у крайніх випадках п'ять вкладень. Намагайтеся уникати крайніх випадків, якщо це не потрібно.