Как создать более читаемый CSS

Как создать более читаемый CSS

От автора: в мире CSS есть два типа веб-разработчиков. Первый тип – это 90 процентов всех разработчиков — записывают каждое свойство в отдельной строке. Разработчики второго типа записывают свойства полной строкой для каждого селектора CSS; они составляют оставшиеся 10 процентов.

Вас, наверное, не удивит, что я отношусь к этим 10 процентов, и в этом посте я попытаюсь объяснить, почему написание CSS в одну строку гораздо более читаемо.

Sass для разделения

В наши дни большинство веб-проектов используют те или иные формы препроцессоров CSS, таких как Sass, Less или другие. Работа с препроцессорами CSS значительно упрощает организацию кода в небольшие файлы и разделение его на небольшие компоненты.

/*main parts*/
@import "2-components/main-header.scss";
@import "2-components/main-nav.scss";
@import "2-components/mega-menu.scss";
@import "2-components/main-social.scss";
@import "2-components/main-side.scss";
@import "2-components/main-footer.scss";

Разделение на небольшие файлы помогает лучше понять код и сосредоточиться на том, что для нас важно.

Упорядочение свойств по типу

Существует много типов свойств: свойства макета, свойства позиции, свойства блочной модели, свойства шрифта и другие. Понимание этого помогает нам упорядочивать свойства по их типам, поэтому, когда мы читаем их, нам гораздо проще ориентироваться в коде.

.some-component{ /*position*/ position: sticky; z-index: 10; top: 0; /*layout*/ display: flex; align-items: center; /*box-model*/ padding: 15px; border: sold 2px red; /*font*/ color: $common-color-1; font-size: 14rem; /*animation*/ transition: 0.3s height;
}

Запись каждого свойства в отдельной строке приводит к созданию больших CSS-файлов, что для меня похоже на чтение книги, в которой каждое слово находится на отдельной строке, без контекста.

При написании CSS в одну строку я делю стили на типы и присваиваю каждому типу свою строку. Таким образом, я могу быстро сканировать и найти нужный стиль.

.some-component{ position:sticky; z-index:10; top:0; /*position*/ display:flex; align-items:center; /*layout*/ padding:15px; border:sold 2px red; /*box-model*/ color:$common-color-1; font-size:14rem; /*font*/ transition:0.3s height; /*animation*/ }

Иногда, если нас есть только одно свойство определенного типа, я добавляю его в строку с другим типом. Пример:

.breadcrumbs{ color:$common-color-1; font-size:14rem; padding:4px 0;
}

Цепочки имен классов CSS

В CSS всегда лучше писать менее специфичные селекторы, поскольку это облегчает переопределение селектора при необходимости. Плохая практика:

.breadcrumbs .breadcrumbs-list{}

Хорошая практика:

.breadcrumbs-list{}

Но не делайте так, например. Плохая практика:

.breadcrumbs-list-item{}

Хорошая практика:

.breadcrumbs-item{}

Цепочки имен классов с помощью Sass

Создавать цепочки классов с помощью Sass очень просто: используйте символ &.

.breadcrumbs{ font-size:14rem; color:$common-color-1; padding:4px 0; &-list{ display:flex; } &-item{ display:flex; align-items:center; }
}

Если посмотреть на структуру файла Sass, в котором весь контекст находится в одной строке, нам намного проще увидеть все селекторы одновременно, и это значительно облегчает подключение HTML-компонента.

HTML-код компонента хлебных крошек:

<nav class="breadcrumbs"> <ol class="breadcrumbs-list"> <li class="breadcrumbs-item"> <a href="/"> <span class="text">Home</span> </a> </li> <li class="breadcrumbs-item is-active"> <span class="text">News</span> </li> </ol>
</nav>

Заключение

Простота чтения и интуитивно понятная связь между CSS и HTML — основные идеи написания свойств CSS в одну строку. Надеюсь, вам понравилась эта статья, и теперь вы лучше понимаете, как упорядочить код, и, возможно, вы захотите написать свойства CSS в одну строку.

Автор: Elad Shechter

Источник: https://medium.com

Редакция: Команда webformyself.