# Проект "Террариум", Часть 1: Введение в HTML

> Скетчноут от [Tomomi Imura](https://twitter.com/girlie_mac)
## Викторина перед лекцией
[Викторина перед лекцией](https://ff-quizzes.netlify.app/web/quiz/15)
> Посмотрите видео
>
> [](https://www.youtube.com/watch?v=1TvxJKBzhyQ)
### Введение
HTML, или язык гипертекстовой разметки, — это "скелет" веба. Если CSS "одевает" ваш HTML, а JavaScript оживляет его, то HTML — это тело вашего веб-приложения. Синтаксис HTML даже отражает эту идею, так как включает теги "head", "body" и "footer".
В этом уроке мы будем использовать HTML, чтобы создать "скелет" интерфейса нашего виртуального террариума. Он будет включать заголовок и три колонки: правую и левую, где будут находиться перетаскиваемые растения, и центральную область, которая будет выглядеть как стеклянный террариум. К концу урока вы сможете увидеть растения в колонках, но интерфейс будет выглядеть немного странно; не переживайте, в следующем разделе вы добавите стили CSS, чтобы улучшить внешний вид интерфейса.
### Задание
На вашем компьютере создайте папку с названием 'terrarium', а внутри нее файл 'index.html'. Вы можете сделать это в Visual Studio Code, открыв новое окно VS Code, нажав 'open folder' и выбрав вашу новую папку. Затем нажмите на маленькую кнопку 'file' в панели проводника и создайте новый файл:

Или
Используйте эти команды в git bash:
* `mkdir terrarium`
* `cd terrarium`
* `touch index.html`
* `code index.html` или `nano index.html`
> Файлы index.html указывают браузеру, что это файл по умолчанию в папке; URL, такие как `https://anysite.com/test`, могут быть построены с использованием структуры папок, включая папку с названием `test` и файлом `index.html` внутри; `index.html` не обязательно должен отображаться в URL.
---
## DocType и теги html
Первая строка HTML-файла — это его doctype. Это немного удивительно, но эта строка должна быть в самом верху файла, так как она сообщает старым браузерам, что страница должна отображаться в стандартном режиме, следуя текущей спецификации HTML.
> Совет: в VS Code вы можете навести курсор на тег и получить информацию о его использовании из справочников MDN.
Вторая строка должна быть открывающим тегом ``, за которым сразу следует закрывающий тег ``. Эти теги являются корневыми элементами вашего интерфейса.
### Задание
Добавьте эти строки в начало вашего файла `index.html`:
```HTML
```
✅ Существует несколько режимов, которые можно определить, установив DocType с помощью строки запроса: [Quirks Mode и Standards Mode](https://developer.mozilla.org/docs/Web/HTML/Quirks_Mode_and_Standards_Mode). Эти режимы использовались для поддержки очень старых браузеров, которые сейчас практически не используются (Netscape Navigator 4 и Internet Explorer 5). Вы можете придерживаться стандартного объявления doctype.
---
## 'head' документа
Область 'head' HTML-документа включает важную информацию о вашей веб-странице, также известную как [метаданные](https://developer.mozilla.org/docs/Web/HTML/Element/meta). В нашем случае мы сообщаем веб-серверу, который будет отображать эту страницу, следующие четыре вещи:
- заголовок страницы
- метаданные страницы, включая:
- 'character set', указывающий, какая кодировка символов используется на странице
- информацию о браузере, включая `x-ua-compatible`, который указывает, что поддерживается браузер IE=edge
- информацию о том, как должен вести себя viewport при загрузке. Установка начального масштаба viewport в 1 контролирует уровень увеличения при первой загрузке страницы.
### Задание
Добавьте блок 'head' в ваш документ между открывающим и закрывающим тегами ``.
```html
Welcome to my Virtual Terrarium
```
✅ Что произойдет, если вы установите мета-тег viewport следующим образом: ``? Узнайте больше о [viewport](https://developer.mozilla.org/docs/Web/HTML/Viewport_meta_tag).
---
## 'body' документа
### Теги HTML
В HTML вы добавляете теги в ваш .html файл, чтобы создать элементы веб-страницы. Каждый тег обычно имеет открывающий и закрывающий тег, например: `
hello
` для обозначения абзаца. Создайте тело вашего интерфейса, добавив набор тегов `` внутри пары тегов ``; теперь ваша разметка выглядит так:
### Задание
```html
Welcome to my Virtual Terrarium
```
Теперь вы можете начать создавать вашу страницу. Обычно вы используете теги `
` для создания отдельных элементов на странице. Мы создадим серию элементов `
`, которые будут содержать изображения.
### Изображения
Один из тегов HTML, который не требует закрывающего тега, — это ``, так как он имеет элемент `src`, содержащий всю информацию, необходимую для отображения элемента на странице.
Создайте папку в вашем приложении с названием `images` и добавьте в нее все изображения из [папки исходного кода](../../../../3-terrarium/solution/images); (всего 14 изображений растений).
### Задание
Добавьте эти изображения растений в две колонки между тегами ``:
```html
```
> Примечание: Spans vs. Divs. Divs считаются 'блочными' элементами, а Spans — 'встроенными'. Что произойдет, если вы преобразуете эти divs в spans?
С этой разметкой растения теперь отображаются на экране. Это выглядит довольно плохо, так как они еще не стилизованы с помощью CSS, и мы займемся этим в следующем уроке.
Каждое изображение имеет альтернативный текст, который будет отображаться, даже если вы не можете увидеть или отобразить изображение. Это важный атрибут для обеспечения доступности. Узнайте больше о доступности в будущих уроках; пока запомните, что атрибут alt предоставляет альтернативную информацию для изображения, если пользователь по какой-либо причине не может его увидеть (из-за медленного соединения, ошибки в атрибуте src или если пользователь использует экранный диктор).
✅ Вы заметили, что у каждого изображения одинаковый alt-тег? Это хорошая практика? Почему или почему нет? Можете ли вы улучшить этот код?
---
## Семантическая разметка
В общем, предпочтительно использовать осмысленную 'семантику' при написании HTML. Что это значит? Это значит, что вы используете HTML-теги для представления типа данных или взаимодействия, для которых они были разработаны. Например, основной заголовок текста на странице должен использовать тег `
`.
Добавьте следующую строку сразу под вашим открывающим тегом ``:
```html
My Terrarium
```
Использование семантической разметки, такой как заголовки `
` и неупорядоченные списки `
`, помогает экранным дикторам ориентироваться на странице. В общем, кнопки должны быть написаны как `
`:
```html
```
✅ Несмотря на то, что вы добавили эту разметку на экран, вы ничего не видите. Почему?
---
## 🚀Задача
Существуют некоторые забавные "старые" теги в HTML, которые все еще можно использовать, хотя не стоит применять устаревшие теги, такие как [эти](https://developer.mozilla.org/docs/Web/HTML/Element#Obsolete_and_deprecated_elements) в вашей разметке. Тем не менее, можете ли вы использовать старый тег `