Этот документ представляет собой общие рекомендации по стилю написания HTML-разметки. Данное руководство призывает к использованию общепринятых и устоявшихся подходов к написанию кода.
1. Основные принципы
Весь код в любой кодовой базе должен выглядеть так, будто его написал один человек, вне зависимости от реального количества разработчиков.
Строго следуйте принятому стилю.
Если вы сомневаетесь в том, какой стиль использовать, пользуйтесь общепринятыми и устоявшимися подходами.
2. Пустое пространство
В вашей кодовой базе должен быть лишь один стиль написания кода. Всегда согласованно используйте пустое пространство. Используйте пустое пространство для улучшения читаемости кода.
Никогда не смешивайте табы и пробелы в отступах.
Выберите между мягкой табуляцией (пробелы) и реальными табами. Придерживайтесь выбранного подхода (предпочтительны пробелы).
Если вы используете пробелы, выберите количество символов для отступа (предпочтительно 4 пробела).
Совет: настройте свой текстовый редактор так, чтобы он показывал непечатные символы. Это позволит вам устранить появление лишних пробелов и табов в конце строк или ещё где-либо.
3. Форматирование
Названия тегов и атрибутов всегда пишите в нижнем регистре.
На одной строке размещайте только один элемент.
Используйте дополнительный уровень отступов для каждого вложенного элемента.
Указывайте атрибуты без их значения, если это возможно (например, checked
вместо checked="checked"
).
Всегда используйте двойные кавычки для значений атрибутов.
Не указывайте атрибут type
в элементах link
, style
и script
.
Всегда закрывайте теги.
Не используйте слеш в единичных тегах (<img>
— правильно, <img/>
— неправильно).
Сохраняйте длину строки в пределах разумного максимума, например 80 символов.
Пример:
<div class="tweet">
<a href="path/to/somewhere">
<img src="path/to/image.png" alt="">
</a>
<p>[tweet text]</p>
<button disabled>Reply</button>
</div>
Исключения и небольшие допущения
В элементах с несколькими атрибутами эти атрибуты можно расположить на отдельных строках, чтобы улучшить читабельность:
<a class="[value]"
data-action="[value]"
data-id="[value]"
href="[url]">
<span>[text]</span>
</a>
4. Порядок атрибутов
HTML-атрибуты должны быть перечислены в порядке, учитывающем то, что названия классов — базовая вещь, которая позволяет выбирать элементы с помощью JavaScript или CSS:
class
id
data-*
- Любые другие атрибуты
Пример:
<a class="[value]" id="[value]" data-name="[value]" href="[url]">[text]</a>
5. Именование
Именование — вещь сложная, но очень важная. Это ключевая часть процесса написания поддерживаемого кода. Без правильного именования невозможно иметь относительно масштабируемый интерфейс между HTML и CSS/JS.
Используйте простые, понятные и уместные имена для классов. Имена должны быть информативны вне зависимости от контекста — как в разметке, так и в CSS-файлах.
Избегайте систематического сокращения имён классов. Не усложняйте код.
Пример с плохим именованием классов:
<div class="cb s-scr"></div>
.s-scr {
overflow: auto;
}
.cb {
background: #000;
}
Хороший пример именования:
<div class="column-body is-scrollable"></div>
.is-scrollable {
overflow: auto;
}
.column-body {
background: #000;
}
6. Практический пример
Пример различных соглашений.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Document</title>
<link rel="stylesheet" href="main.css">
<script src="main.js"></script>
</head>
<body>
<article class="post" id="1234">
<time class="timestamp">March 15, 2012</time>
<a data-id="1234"
data-analytics-category="[value]"
data-analytics-action="[value]"
href="[url]">[text]</a>
<ul>
<li>
<a href="[url]">[text]</a>
<img src="[url]" alt="[text]">
</li>
<li>
<a href="[url]">[text]</a>
</li>
</ul>
<a class="link-complex" href="[url]">
<span class="link-complex__target">[text]</span>
[text]
</a>
<input value="text" readonly>
</article>
</body>
</html>
Это перевод Principles of writing consistent, idiomatic HTML Николаса Галлахера. Оригинал лицензирован по Creative Commons Attribution 3.0 Unported License. Лицензия распространяется на все документы и переводы.