Дата последнего изменения: 02.11.2023
Любой блок на странице должен описываться селектором класса. Не используйте каскадные селекторы так как они нарушают принцип независимости компонентов. Это же правило относится к селекторам прямого потомка (>
) и соседнего элемента (+
).
Исключения:
-
).<div class="task-detail"> <div class="task-detail-title"></div> <div class="task-detail-description"></div> </div>
<div class="crm-lead-form"> <div class="crm-lead-form-title"></div> <div class="crm-lead-form-description"></div> </div>
Оба варианта именования допустимы:
<div class="disk-user"> <div class="disk-user-info"> <div class="disk-user-avatar"></div> <div class="disk-user-name"></div> </div> </div>
<div class="disk-user"> <div class="disk-user-info"> <div class="disk-user-info-avatar"></div> <div class="disk-user-info-name"></div> </div> </div>
bx-
.js-
.Избегайте инлайновых стилей, все стили должны задаваться в CSS-файле через назначение классов элементам. Инлайновые стили применимы, только если они являются неотъемлемой частью контента страницы (аватар пользователя, размер ползунков в фильтре и т. п.).
Избегайте использование имен классов с селектором тега и атрибута.
Плохо:
div.task-detail-title { margin: 20px; } input[name=user] { margin: 20px; }Хорошо:
.task-detail-title { margin: 20px; } .task-detail-user-field { margin: 20px; }
CSS предлагает множество различных сокращенных форм записи (например, margin, padding, border и другие), которые рекомендуется использовать везде где это возможно, даже если задается только одно из значений. Использование сокращенной записи свойств полезно для большей эффективности и лучшего понимания кода.
Плохо:
.meeting-sidebar { margin-top: 5px; margin-bottom: 3px; border-width: 1px; border-style: solid; border-color: #fff; }
Хорошо:
.meeting-sidebar { margin: 5px 0 3px; border: 1px solid #fff; }
Сокращенные формы для шрифта (font) и фона (background) допускается разделять на несколько свойств.
Используйте значения в пикселях. Размеры, указанные в px, абсолютные, четкие, понятные и не зависят ни от чего. Допустимо использовать проценты % везде, кроме размера текста (font-size).
Не указывайте единицы измерения для нулевых значений.
Плохо:.timeman-task-list { margin: 0px 12px 0px 13px; }Хорошо:
.timeman-task-list { margin: 0 12px 0 13px;}
Не используйте кавычки с функцией url(), кроме случая, когда ссылка содержит пробел, либо формируется программно (обычно при использовании inline-стилей).
Плохо:.im-user-status { background: url("images/im-sprite.png"); }Хорошо:
.im-user-status { background: url(images/im-sprite.png); }
Для указания цвета элемента используйте шестнадцатеричную запись или rgba(), если требуется указать прозрачность. Не используйте rgb() и верхний регистр в значении свойства.
Плохо:.disk-invitation-popup { background: #FFFFFF; }Хорошо:
.disk-invitation-popup { background: #fff; }
Избегайте хаков в CSS-коде. Если все таки требуется сделать уникальные свойства для конкретного браузера, воспользуйтесь специальными классами .bx-chrome, .bx-firefox, .bx-ie10.
Плохо:*+ html .vote-answers { margin: 5px; }Хорошо:
.bx-ie7 .vote-answers { margin: 8px; }
Старайтесь, чтобы селекторы, описывающие определенный блок верстки, находились в одном месте и не были раскиданы по CSS-файлу.
Псевдоселекторы позволяют не нагромождать HTML-код лишними элементами, имеющими декоративное назначение. Важно понимать, что этих элементов нет в DOM и обратиться к ним через JavaScript невозможно.
Не используйте CSS Reset в верстке. Компоненты являются независимыми блоками. На них не должны влиять CSS-правила, созданные для всей страницы. Это нарушает независимость блоков и затрудняет их повторное использование. Общий сброс стилей реализуется с помощью глобальных CSS-правил, которые в большинстве случаев пишутся к селекторам на тег, что нежелательно использовать в верстке. Кроме того, сброс стилей влияет на производительность рендеринга страницы и может конфликтовать с версткой клиентов.
Свойство без префикса всегда должно быть в конце.
Плохо:.menu-item { -webkit-box-shadow:0 0 10px 20px #000; box-shadow:0 0 10px 20px #000; -moz-box-shadow:0 0 10px 20px #000; }Хорошо:
.menu-item { -webkit-box-shadow:0 0 10px 20px #000; -moz-box-shadow:0 0 10px 20px #000; box-shadow:0 0 10px 20px #000; }
Классы-модификаторы должны именоваться согласно общим правилам:
<div class="menu"> <div class="menu-item"></div> <div class="menu-item menu-item-selected"></div> <div class="menu-item"></div> </div>
Избегайте использования модификатора приоритета !important.
Для оформления текста всегда указывайте семейство шрифтов.
Плохо:.disk-external-folder { font: 12px "Helvetica Neue"; }Хорошо:
.disk-external-folder { font: 12px "Helvetica Neue", Helvetica, Arial, sans-serif; }