HTML Правила кодирования

Последовательный, чистый и аккуратный HTML‑код облегчает другим чтение и понимание вашего кода.

Вот несколько рекомендаций и советов по созданию хорошего HTML‑кода.


Всегда объявляйте тип документа

Всегда объявляйте тип документа в качестве первой строки в вашем документе.

Правильный тип документа для HTML:

<!DOCTYPE html>

Используйте строчные буквы в именах элементов

HTML допускает смешивание прописных и строчных букв в именах элементов.

Однако мы рекомендуем использовать имена элементов в строчном регистре, потому что:

  • смешивание прописных и строчных имён выглядит плохо;
  • разработчики обычно используют строчные имена;
  • строчные буквы выглядят аккуратнее;
  • строчные буквы проще набирать.

Хорошо:

<body>
<p>Это абзац.</p>
</body>

Плохо:

<BODY>
<P>Это абзац.</P>
</BODY>

Закрывайте все HTML‑элементы

В HTML не обязательно закрывать все элементы (например, элемент <p>).

Однако мы настоятельно рекомендуем закрывать все HTML‑элементы, вот так:

Хорошо:

<section>
  <p>Это абзац.</p>
  <p>Это абзац.</p>
</section>

Плохо:

<section>
  <p>Это абзац.
  <p>Это абзац.
</section>

Используйте строчные буквы в именах атрибутов

HTML допускает смешивание прописных и строчных букв в именах атрибутов.

Однако мы рекомендуем использовать строчные имена атрибутов, потому что:

  • смешивание прописных и строчных имён выглядит плохо;
  • разработчики обычно используют строчные имена;
  • строчные буквы выглядят аккуратнее;
  • строчные буквы проще набирать.

Хорошо:

<a href="https://htmlclub.ru/docs/html/">Посетите наш учебник по HTML</a>

Плохо:

<a HREF="https://htmlclub.ru/docs/html/">Посетите наш учебник по HTML</a>

Всегда заключайте значения атрибутов в кавычки

HTML позволяет использовать значения атрибутов без кавычек.

Однако мы рекомендуем заключать значения атрибутов в кавычки, потому что:

  • разработчики обычно заключают значения атрибутов в кавычки;
  • значения в кавычках легче читать;
  • вы ОБЯЗАНЫ использовать кавычки, если значение содержит пробелы.

Хорошо:

<table class="striped">

Плохо:

<table class=striped>

Очень плохо:

Это не сработает, потому что значение содержит пробелы:

<table class=table striped>

Всегда указывайте alt, width и height для изображений

Всегда указывайте атрибут alt для изображений. Этот атрибут важен, если по какой‑либо причине изображение не может быть отображено.

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

Хорошо:

<img src="html5.gif" alt="HTML5" style="width:128px;height:128px">

Плохо:

<img src="html5.gif">

Пробелы и знаки равенства

HTML допускает пробелы вокруг знаков равенства. Но вариант без пробелов легче читать и лучше группирует сущности.

Хорошо:

<link rel="stylesheet" href="styles.css">

Плохо:

<link rel = "stylesheet" href = "styles.css">

Избегайте длинных строк кода

При использовании HTML‑редактора неудобно прокручивать вправо и влево для чтения HTML‑кода.

Старайтесь избегать слишком длинных строк кода.


Пустые строки и отступы

Не добавляйте пустые строки, пробелы или отступы без причины.

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

Для удобочитаемости используйте отступ в два пробела. Не используйте клавишу табуляции.

Хорошо:

<body>

<h1>Знаменитые города</h1>

<h2>Токио</h2>
<p>Токио — столица Японии, центр Большого Токийского района и самый густонаселённый мегаполис в мире.</p>

<h2>Лондон</h2>
<p>Лондон — столица Англии. Это самый густонаселённый город Соединённого Королевства.</p>

<h2>Париж</h2>
<p>Париж — столица Франции. Район Парижа — один из крупнейших населённых центров в Европе.</p>

</body>

Плохо:

<body>
<h1>Знаменитые города</h1>
<h2>Токио</h2><p>Токио — столица Японии, центр Большого Токийского района и самый густонаселённый мегаполис в мире.</p>
<h2>Лондон</h2><p>Лондон — столица Англии. Это самый густонаселённый город Соединённого Королевства.</p>
<h2>Париж</h2><p>Париж — столица Франции. Район Парижа — один из крупнейших населённых центров в Европе.</p>
</body>

Хороший пример таблицы:

<table>
  <tr>
    <th>Имя</th>
    <th>Описание</th>
  </tr>
  <tr>
    <td>A</td>
    <td>Описание A</td>
  </tr>
  <tr>
    <td>B</td>
    <td>Описание B</td>
  </tr>
</table>

Хороший пример списка:

<ul>
  <li>Лондон</li>
  <li>Париж</li>
  <li>Токио</li>
</ul>

Никогда не пропускайте элемент <title>

Элемент <title> обязателен в HTML.

Содержимое заголовка страницы очень важно для поисковой оптимизации (SEO)! Алгоритм поисковых систем использует заголовок страницы для определения порядка отображения страниц в результатах поиска.

Элемент <title>:

  • определяет заголовок в панели инструментов браузера;
  • предоставляет заголовок для страницы, когда она добавляется в избранное;
  • отображает заголовок для страницы в результатах поисковых систем.

Поэтому старайтесь сделать заголовок максимально точным и осмысленным:

<title>Руководство по стилю HTML и соглашения о кодировании</title>

Пропускать ли теги <html> и <body>?

HTML‑страница пройдёт валидацию и без тегов <html> и <body>:

Пример:

<!DOCTYPE html>
<head>
  <title>Заголовок страницы</title>
</head>

<h1>Это заголовок</h1>
<p>Это абзац.</p>

Однако мы настоятельно рекомендуем всегда добавлять теги <html> и <body>!

Пропуск <body> может привести к ошибкам в старых браузерах.

Пропуск <html> и <body> также может вызвать сбой в работе ПО для работы с DOM и XML.


Пропускать ли тег <head>?

Тег HTML <head> также можно пропустить.

Браузеры добавят все элементы перед <body> в элемент <head> по умолчанию.

Пример:

<!DOCTYPE html>
<html>
<title>Заголовок страницы</title>
<body>

<h1>Это заголовок</h1>
<p>Это абзац.</p>

</body>
</html>

Однако мы рекомендуем использовать тег <head>.


Закрывать ли пустые HTML‑элементы?

В HTML закрывать пустые элементы необязательно.

Допускается:

<meta charset="utf-8">

Также допускается:

<meta charset="utf-8" />

Если вы ожидаете, что XML/XHTML‑программы будут обращаться к вашей странице, оставляйте закрывающий слэш (/), потому что он обязателен в XML и XHTML.


Добавляйте атрибут lang

Вы всегда должны добавлять атрибут lang внутри тега <html>, чтобы указать язык веб‑страницы. Это нужно для помощи поисковым системам и браузерам.

Пример:

<!DOCTYPE html>
<html lang="ru-RU">
<head>
  <title>Заголовок страницы</title>
</head>
<body>

<h1>Это заголовок</h1>
<p>Это абзац.</p>

</body>
</html>

Метаданные

Чтобы обеспечить правильную интерпретацию и корректную индексацию поисковыми системами, язык и кодировку символов <meta charset="charset"> следует определить как можно раньше в HTML‑документе:

<!DOCTYPE html>
<html lang="en-us">
<head>
  <meta charset="UTF-8">
  <title>Заголовок страницы</title>
</head>

Настройка области просмотра

Область просмотра (viewport) — это видимая пользователю область веб‑страницы. Она зависит от устройства: на мобильном телефоне она будет меньше, чем на экране компьютера.

Вам следует включить следующий элемент <meta> на всех ваших веб‑страницах:

<meta name="viewport" content="width=device-width, initial-scale=1.0">

Это даёт браузеру инструкции о том, как управлять размерами страницы и масштабированием.

Часть width=device-width устанавливает ширину страницы в соответствии с шириной экрана устройства (которая будет различаться в зависимости от устройства).

Часть initial-scale=1.0 задаёт начальный уровень масштабирования при первой загрузке страницы браузером.

Вот пример веб‑страницы без мета‑тега viewport и той же веб‑страницы с мета‑тегом viewport:

Без тега meta для области просмотра

Без тега meta для области просмотра

С тегом meta для области просмотра

С тегом meta для области просмотра


Комментарии в HTML

Короткие комментарии следует записывать в одну строку, вот так:

<!-- This is a comment -->

Комментарии, занимающие более одной строки, следует записывать так:

<!--
  This is a long comment example. This is a long comment example.
  This is a long comment example. This is a long comment example.
-->

Длинные комментарии легче воспринимать, если они имеют отступ в два пробела.


Использование таблиц стилей

Используйте простой синтаксис для подключения таблиц стилей (атрибут type не обязателен):

<link rel="stylesheet" href="styles.css">

Короткие правила CSS можно записывать сжато, вот так:

p.intro {font-family:Verdana;font-size:16em;}

Длинные правила CSS следует записывать в несколько строк:

body {
  background-color: lightgrey;
  font-family: "Arial Black", Helvetica, sans-serif;
  font-size: 16em;
  color: black;
}
  • Размещайте открывающую фигурную скобку в той же строке, что и селектор.
  • Используйте один пробел перед открывающей скобкой.
  • Используйте отступ в два пробела.
  • Ставьте точку с запятой после каждой пары «свойство‑значение», включая последнюю.
  • Используйте кавычки вокруг значений только в том случае, если значение содержит пробелы.
  • Размещайте закрывающую скобку на новой строке, без начальных пробелов.

Загрузка JavaScript в HTML

Используйте простой синтаксис для загрузки внешних скриптов (атрибут type не обязателен):

<script src="myscript.js">

Доступ к HTML‑элементам с помощью JavaScript

Использование «неопрятного» HTML‑кода может привести к ошибкам в JavaScript.

Эти два оператора JavaScript дадут разные результаты:

Пример:

getElementById("Demo").innerHTML = "Hello";

getElementById("demo").innerHTML = "Hello";

Используйте строчные буквы в именах файлов

Некоторые веб‑серверы (Apache, Unix) чувствительны к регистру в именах файлов: «london.jpg» нельзя открыть как «London.jpg».

Другие веб‑серверы (Microsoft, IIS) не чувствительны к регистру: «london.jpg» можно открыть как «London.jpg».

Если вы используете смесь прописных и строчных букв, вы должны учитывать это.

Если вы переходите с сервера, не чувствительного к регистру, на сервер, чувствительный к регистру, даже небольшие ошибки приведут к сбою вашего сайта!

Чтобы избежать этих проблем, всегда используйте строчные буквы в именах файлов!


Расширения файлов

Файлы HTML должны иметь расширение .html (допускается .htm).

Файлы CSS должны иметь расширение .css.

Файлы JavaScript должны иметь расширение .js.


Есть ли разница между .htm и .html?

Между расширениями файлов .htm и .html нет разницы!

Оба будут обрабатываться как HTML любым веб‑браузером и веб‑сервером.


Имена файлов по умолчанию

Когда URL не указывает имя файла в конце (например, «https://htmlclub.ru/»), сервер просто добавляет имя файла по умолчанию, такое как «index.html», «index.htm», «default.html» или «default.htm».

Если ваш сервер настроен только с «index.html» в качестве имени файла по умолчанию, ваш файл должен называться «index.html», а не «default.html».

Однако серверы можно настроить с несколькими именами файлов по умолчанию; обычно вы можете установить столько имён файлов по умолчанию, сколько захотите.

To top