Веб-разработка
November 24, 2021

Знакомство с HTML и CSS. Часть 1: Структура HTML-документа — Тренажёр HTML Academy

Не смотря на то, что вводный блок «Знакомства» я прошел, мое знакомство я продолжаю в следующем блоке. Разберёмся с деталями структуры HTML, базовыми тегами и оформлением.

В этом блоке достаточно много практики — в конце каждой части «Испытание» и к каждой части минимум по 4 практических задания. Это радует, люблю практические задания, в прошлом блоке их было маловато

Первая часть посвящена самым основным тегам HTML с которых вообще начинается работа с вёрсткой. В тренажёре с ходу нам рассказывают о теге, который отвечает за объявление браузеру типа документа:

<!DOCTYPE html>

Долгое время не могу понять нафига вообще объявлять тип документа браузеру в коде документа с расширением .html, масло масленое. В тренажёре нам объясняют, что можно задать устаревший тип документа, но… в общем, я сейчас не хочу на это акцентировать внимание.

Далее приступаем к основе HTML — теги которые формируют основной костяк страницы это <html>, <head> и <body>. Первый отвечает за «рамки» html-кода, то есть вся структура кода должна быть внутри тегов <html> ... </html>, возможно, есть какие-то исключения, но нам про них в самом начале знать не обязательно.

Голова

В тег <head> ... </head> записывают служебные данные страницы, т. е. то, что напрямую не отображается в браузере, но крайне важно для её работы. Например, одиночный тег <link> подключает к странице внешние файлы, именно его я «потерял» в предыдущем блоке в части про CSS.

<head>
  <link href="адрес_файла_стилей.css" rel="stylesheet">
</head>

Атрибут href понятно что далеат, а атрибут rel помогает браузеру определить для чего этот файл.

В тег <title> ... </title> вписывается заголовок страницы, он отображается во вкладке браузера и именно он отображается в результатах поиска, если эта страница каким-то образом попала в него.

Одиночный тег <meta> с помощью своих различных атрибутов, позволяет указать различную служебную информацию о странице, чтобы браузер и поисковые роботы могли «легче» ее воспринять. В тренажёре дают сразу несколько примеров, я наверное запихну их в один кодовый блок:

<head>

  <!-- кодировка страницы, utf-8 самая распространённая -->
  <meta charset="utf-8">
  
  <!-- ключевые слова, помогающие поисковому роботу с индексацией -->
  <meta name="keywords" content="важные, ключевые, слова">
  
  <!-- описание страницы, которое иногда показывается под title в поисковой выдаче -->
  <meta name="description" content="краткое описание страницы">
  
</head>

Да, кстати. В предыдущей статье очень предательски поехали все комментарии в кодовых блоках. При написании статьи появляется горизонтальный скролл, не показывая никаких переносов. Только при публикации выясняется как все через жопу, поэтому здесь и далее я, наверное, буду писать только многострочные комментарии над объектом.

UPD. Пофиксили :D

Туловище

Внутри тега <body> ... </body> находится вся видимая часть страницы. У видимой части тоже есть своя вложенная логическая структура, которой, кстати, очень многие пренебрегают. Я тоже о ней узнал не так давно, а уж в точности разобраться с ней я до сих пор не мог.

В тег <header> ... </header> вписывают вводную часть страницы или «шапку», чаще всего именно сюда вписывают навигацию или «меню» сайта или страницы с помощью тега <nav> ... </nav>, а еще иногда поле поиска, иконки соц. сетей, корзину и так далее.

Тег <main> ... </main> обозначает основное содержимое страницы. Именно не «все остальное» содержимое, а конкретно основное — та уникальная в рамках сайта информация для которой эта страница была создана. Это важный смысловой тег, применение которого не всегда может быть понятно.

Тег <footer> ... </footer> описывает заключительную часть страницы или «подвал», чаще всего сюда записывают дополнительные ссылки для перелинковки по разделам сайта, различную юридическую и контактную информацию. Кстати, не только всей страницы – этот тег можно использовать как заключительную часть какого-либо блока, если это необходимо.

Тег <section> ... </section> обозначает крупный смысловой раздел страницы. Чаще всего страница состоит из нескольких разделов или блоков и именно этот тег помогает их определить.


С этими тегами всё более-менее понятно, они просто формируют смысловую структуру страницы, которая упрощает жизнь как верстальщику, так, в итоге, и пользователю и еще, конечно же, поисковым роботам. Но с тегами далее у меня лично возникли проблемы с … пониманием того где их использовать.

Тег <article> ... </article> — в тренажёре нам пишут, что это цельный и самостоятельный фрагмент информации, который можно выдернуть из контекста страницы и он всё равно будет понятен. В этот тег может быть вписан <main>, что логично — основная информация страницы должна быть самостоятельным фрагментом.

При этом на странице может быть несколько <article>, например, на странице есть раздел под названием «Интересные статьи», в котором находится несколько карточек статей, в которых есть заголовок, превью и краткое описание статьи. Такая карточка тоже самостоятельный фрагмент информации — если поместить его где угодно, даже не на сайте вообще, всё еще будет понятно о чем он.

Другой тег с которым возникли проблемы с пониманием — это тег <aside> ... </aside> — в тренажёре написано, что этот тег включает в себя что-то дополнительное, не связанное напрямую с основным содержанием страницы.

На мой взгляд, не совсем корректно написано, т. к. можно подумать, что применение только одно — какая-то боковая панель с дополнительной инфой. На самом деле <aside> я бы описал одним словом — «кстати, ...».

Кстати, вы знали, что у Плутона вытянутая эллиптическая орбита?

Этот блок выше, типичный <aside> — он может быть как внутри <article>, так и внешним элементом типа боковой панели. Это именно означает «кстати, а у нас еще тут есть вот это» на странице или в другом смысловом блоке.


Основная текстовая структура страницы создаётся из заголовков разных уровней от <h1> </h1> до <h6> </h6>. Причем <h1> – заголовок верхнего уровня, буквально должен обозначать заголовок страницы и, следовательно, должен быть только один на странице.

Для разметки параграфов используется тег <p> </p>, причем по хорошему в один абзац стоит записывать одну смысловую структуру. Это довольно сложная и спорная тема, но главное не злоупотреблять тегом <p> для обозначения нескольких отдельных строк.

Практика и Испытание

В этой практике, точнее в Испытании, я внезапно заметил «Видеоразбор», который по сути «даёт списать» — там буквально объясняют решение задачи. Задачи пока что тривиальные, поэтому не вижу в нём особого смысла, но если эти видеоразборы будут и дальше в сложных для понимания вопросах, то чудесно.

Испытание помогает закрепить все вышеописанные теги, где нам показывают наглядно как их можно использовать. А вот в практике нам сходу показывают интересную вещь. В первом задании нам нужно проставить параграфам соответствующие языку текста в них атрибуты lang и, в общем-то, дающие понять, что даже к этому атрибуту можно привязать стили, правда не показывают как — langs.css скрыт. Ну да ладно.

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


Я решил попробовать разбить статью по частям, так как написав даже 2 из 5 частей получилась колбаса на 20+ скроллов вниз, при этом я честно говоря устаю столько строчить не публикуя ничего. Не хочу перегореть раньше времени и, возможно, изменив немного формат я смогу сохранить желание их писать.

Да, я это делаю для себя, но тем ещё хуже — самого себя легче убедить всё бросить, особенно когда нет особого опыта в написании такого объема текста.

Тому кто каким-то волшебным образом попал на эту страницу и дочитал до этого момента — огромное спасибо за внимание. Если вы здесь впервые, а скорее всего так и есть — в этой статье написано обо мне и как я до такой жизни докатился, а в этой немного написано почему я вообще сейчас прохожу эти тренажёры.

Ссылки на другие статьи по тренажёрам HTML Academy:

Знакомство с Веб-разработкой
Знакомство с HTML и CSS. Часть 1 <- Вы здесь
Знакомство с HTML и CSS. Часть 2: Разметка текста
Знакомство с HTML и CSS. Часть 3: Ссылки и изображения
Знакомство с HTML и CSS. Часть 4: Основы CSS
Знакомство с HTML и CSS. Часть 5: Оформление текста
Знакомство с JavaScript
Знакомство с PHP
Таблицы и подробно о формах
Наследование, каскады и селекторы
Блочная модель, поток и сетка на float
Гибкие флексбоксы display: flex
Удобные сетки на гридах display: grid
Пропуск блока «Погружение»
Позиционирование и двумерные трансформации
Теневое искусство и линейные градиенты
CSS-фильтры и Кекстаграм
Мастерские
Продвинутые Мастерские
...

Остальные статьи можно посмотреть у меня на главной странице блога.

Также я завел себе несколько соц. сеток, в надежде найти тех, кому это будет интересно и тех, кто также как и я занимается самообучением. Кстати, вполне не безрезультатно!

Мой Twitter
Мой Telegram
Мой Паблик ВК

Заходите куда удобно вам и подписывайтесь! Еще раз спасибо за внимание!