Дата последнего изменения: 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;
}