# Проект "Террариум", Часть 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, нажав "открыть папку" и выбрав вашу новую папку. Затем нажмите на маленькую кнопку "файл" в панели проводника и создайте новый файл:

Или
Используйте эти команды в 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 — встроенными. Что произойдет, если вы замените эти div на span?
С этой разметкой растения теперь отображаются на экране. Выглядит это пока плохо, так как они еще не стилизованы с помощью CSS, но мы займемся этим в следующем уроке.
Каждое изображение имеет альтернативный текст (alt), который будет отображаться, даже если вы не можете увидеть или отобразить изображение. Это важный атрибут для обеспечения доступности. Узнайте больше о доступности в будущих уроках; пока запомните, что атрибут alt предоставляет альтернативную информацию для изображения, если пользователь по какой-либо причине не может его увидеть (из-за медленного соединения, ошибки в атрибуте src или если пользователь использует экранный диктор).
✅ Обратили ли вы внимание, что у каждого изображения одинаковый alt-тег? Это хорошая практика? Почему или почему нет? Можете ли вы улучшить этот код?
---
## Семантическая разметка
В общем, предпочтительнее использовать осмысленную "семантику" при написании HTML. Что это значит? Это значит, что вы используете HTML-теги для представления типа данных или взаимодействия, для которых они были разработаны. Например, основной заголовок текста на странице должен использовать тег `
`.
Добавьте следующую строку сразу под открывающим тегом ``:
```html
My Terrarium
```
Использование семантической разметки, такой как заголовки `
` и ненумерованные списки `
`, помогает экранным дикторам ориентироваться на странице. В общем, кнопки должны быть написаны как `
`:
```html
```
✅ Несмотря на то, что вы добавили эту разметку на экран, вы ничего не видите. Почему?
---
## 🚀Челлендж
Существуют забавные "старые" теги в HTML, которые все еще можно использовать, хотя вы не должны использовать устаревшие теги, такие как [эти теги](https://developer.mozilla.org/docs/Web/HTML/Element#Obsolete_and_deprecated_elements) в вашей разметке. Тем не менее, можете ли вы использовать старый тег `