# HTML

### 1. Синтаксис

#### 1.1 Два пробела в качестве отступа

Отступы позволяют визуально оценить структуру документа и быстро переключаться между его фрагментами. Размер отступа настраивается в редакторе. Также во многих редакторах можно включить отображение пробельных символов и преобразовать отступы.

Хорошо

```
<!DOCTYPE html>
<html lang="ru">
  <head>
    <meta charset="UTF-8">
    <title>Ваша страница</title>
  </head>
  <body>
    <h1>Страница</h1>
    <p>Текст</p>
  </body>
</html>
```

Плохо

```
<!DOCTYPE html>
<html lang='ru'>
<head>
	<meta charset='UTF-8'>
    <title>Ваша страница</title>
</head>
<body>
<h1>Страница</h1>
<p>Текст</p>
</body>
</html>
```

#### 1.2 Теги и атрибуты записываются в нижнем регистре

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

Хорошо

```
<div class="user">
  <img src="./i/userpic.png" title="Иванов Иван">
  <a href="/profile/">Перейти в профиль</a>
</div>
```

Плохо

```
<DIV Class="user">
  <Img Src="./i/userpic.png" titLE="Иванов Иван">
  <A href="/profile/">Перейти в профиль</a>
</DIV>
```

#### 1.3 Отдельные логические блоки отбиваются пустой строкой

Это облегчает работу с кодом и визуально создает структуру документа.

Хорошо

```
<h1>Заголовок первого уровня</h1>
<p>Первый параграф</p>

<h2>Заголовок второго уровня</h2>
<ul>
  <li>Первый пункт</li>
  <li>Второй пункт</li>
  <li>Третий пункт</li>
</ul>

<h3>Заголовок третьего уровня</h3>
<figure>
  <figcaption>Блок с картинкой</figcaption>
  <img src="../img/image.jpg">
</figure>
```

Плохо

```
<h1>Заголовок первого уровня</h1>
<p>Первый параграф</p>
<h2>Заголовок второго уровня</h2>
<ul>
  <li>Первый пункт</li>
  <li>Второй пункт</li>
  <li>Третий пункт</li>
</ul>
<h3>Заголовок третьего уровня</h3>
<figure>
  <figcaption>Блок с картинкой</figcaption>
  <img src="../img/image.jpg">
</figure>
```

#### 1.4 Используйте только двойные кавычки

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

Хорошо

```
<div class="first">
  <img src="first-img.jpg" alt="Первая картинка">
</div>
```

Плохо

```
<div class='first'>
  <img src='first-img.jpg' alt='Первая картинка'>
</div>
```

#### 1.5 Не ставим пробелов перед и после символа =

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

Хорошо

```
<p id="first" class="post">Это хороший пример</p>
```

Плохо

```
<p id ="first" class= "post">Это плохой пример</p>
```

#### 1.6 Между атрибутами один пробел

Не используем переносов строк между атрибутами, только один пробел. Перенос строк принят в css-документах, но не в html-разметке. Пишите все атрибуты элемента в строку.

Хорошо

```
<figure class="postItem">
  <img src="logo.jpg" alt="Логотип">
  <figcaption>Логотип компании</figcaption>
</figure>
```

Плохо

```
<figure class="postItem">
  <img
  src="logo.jpg"
  alt="Логотип">
  <figcaption>Логотип компании</figcaption>
</figure>
```

#### 1.7 Одиночные теги без закрывающего слэша

Не используйте закрывающий слэш у одиночных тегов (`<img>`, `<br>` и другие). Этот элемент является пережитком прошлого, когда HTML был более строгим, а браузеры не умели распознавать и исправлять ошибки.

Хорошо

```
<img src="logo.jpg" alt="Логотип">
<br>
```

Плохо

```
<img src="logo.jpg" alt="Логотип" />
<br />
```

### 3. !DOCTYPE

Первой строчкой в HTML-документе должен идти актуальный `doctype`. Это необходимо чтобы браузер верно отображал страницу. Это обеспечит единообразное отображение во всех современных браузерах.

```
<!DOCTYPE html>
<html lang="ru">
  <head>…</head>
  <body>…</body>
</html>
```

### 4. Кодировка

Кодировка символов в html-документе всегда должна быть указана явно. Это обеспечит верное отображение текста. Кодировка utf-8 подходит всегда, за редким исключением.

```
<head>
  <meta charset="utf-8">
  <title>Заголовок</title>
</head>
```

### 5. Атрибуты и их порядок

У HTML-элементов атрибут `class` пишется первым. Единообразное написание помогает легче считывать код и по классам быстрее разбираться в назначении блоков.

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

```
<a class="element element-big" id="element" href="/" data-name="element">Ссылка</a>

<input class="form-control" type="text" name="test">

<img class="picture" src="img.jpg" alt="Картинка">
```

### 6. Атрибут языка

Для элемента `<html>` в атрибуте `lang` должен указываться верный язык документа. Это помогает системам перевода определить, какие использовать языковые правила.

```
<!DOCTYPE html>
<html lang="ru">
  <head>…</head>
  <body>…</body>
</html>
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://birskiys.gitbook.io/html-css/master.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
