Що таке мова HTML?

Hyper Text Markup Language (мова розмітки гіпертексту) — мова розмітки веб-документів. Набір правил структурування (розмітки) текстової інформації, додавання зображень, створення таблиць, форм, списків тощо.

HTML-документ — текстовий файл з розширенням .html.

Документ, розмічений за допомогою HTML, інтерпретується браузером. Як результат, користувачі бачать не вихідний код з елементами розмітки, а результат обробки цього файлу — веб-сторінку.

raw-html-web

Популярність HTML та використання її як основи веб-сторінок призвело до необхідності створення, підтримки та розвитку відповідних стандартів. Зараз цим займається Web Hypertext Application Technology Working Group (WHATWG), яка працює над специфікацією HTML Living Standard.

Тег абзацу <p>

Тег <p> — універсальний контейнер для групування дрібних фразових елементів, відокремлення їх один від одного й подальшої стилізації. За замовчуванням тег абзацу <p> — це блоковий елемент, який починається з нового рядка і має вертикальні відступи, які можна буде змінити за допомогою CSS.

Часто буває необхідно заповнити тег текстом, але самого тексту, який розміщуватиметься на сайті, ще немає. Для цього використовують спеціальний заповнювач (текст-риба).

  У редакторі VSCode, в HTML-документі можна набрати код lorem10, після чого натиснути клавішу Tab. Це створить масив тексту із 10 слів. Замість 10 можна встановити будь-яке число.
Тег заголовка <h1>

Заголовок є інструментом структурування текстового вмісту сторінки. Для того, щоб додати найважливіший заголовок, що описує весь вміст сторінки, використовується тег <h1> — заголовок першого рівня. На практиці тег <h1> використовується лише один раз як основний заголовок сторінки.

Оформлення коду 
          Запам’ятай основне:
          — кожен тег починається з нового рядка; 
          — якщо контент займає кілька рядків, відкриваючий та закриваючий теги розташовані один під одним (див. абзац); 
          — якщо контент займає один рядок, відкриваючий та закриваючий теги розташовані безпосередньо до та після контенту (див. заголовок). 
          Це забезпечує кращу візулізацію початку та кінця тегу.
Коментарі <!--...-->

Коментарі використовуються для того, щоб:

  • залишити у вихідному коді пояснення, нотатку;
  • візуально розділити код, позначивши, де починається і закінчується розмітка шапки сайту, підвала, окремої секції тощо;
  • закоментувати ділянку коду, тобто тимчасово приховати частину HTML-коду, щоб вона не відображалася на сторінці в браузері.
Тег посилання <a> та його атрибути

Атрибути — це додаткові налаштування тегів, за допомогою яких можна змінювати властивості та поведінку елементу. Теги можуть мати обов'язкові та необов'язкові атрибути. Їх може бути декілька або зовсім не бути.

Атрибути записуються всередині відкриваючого тегу, а їх значення вказуються всередині подвійних лапок. Декілька атрибутів розділяються пробілом.

Корисно! 
  Для того, щоб дізнатися які атрибути доступні для тегу та призначення атрибутів, можна зайти в документацію або довідник, наприклад htmlreference.io

Давай розглянемо структуру тегу з атрибутами на прикладі тегу <a>. Він призначений для створення посилань або тексту. Клікаючи по ньому, ми переходимо на іншу сторінку, завантажуємо файл тощо. Текст посилання відображається в браузері з підкресленням синім шрифтом. При наведенні на посилання курсор миші змінює вигляд.

tag-struktur

Адреса посилання задається в обов'язковому атрибуті href="адреса", де адреса — це URL, що вказує на сторінку, файл або будь-який ресурс. 

Запам’ятай основні характеристики атрибутів: 
        — Атрибути змінюють або надають додаткові властивості тегам. 
        — Кілька атрибутів у тегу відокремлюються за допомогою пробілу. 
        — Атрибути та їх значення містяться всередені відкриваючого тегу. 
        — Знак “=” ставиться між атрибутом та його значенням.
Посилання: атрибут target

Якщо ми хочемо, щоб веб-сторінка, до якої веде посилання, відкривалася в новій вкладці браузера, необхідно додати тегу <a> атрибут target="_blank".

За замовчуванням посилання відкриваються у поточній вкладці браузера, а значення атрибуту target за замовчуванням є target="_self".

Тег зображення <img> і його атрибут src

Використання графіки робить веб-сторінки візуально привабливими. Зображення допомагають краще передати суть та зміст документа.

Растрова графіка (raster, bitmap) — опис графічного файлу у вигляді масиву з координатами кожного пікселя і описом кольору цього пікселя. Це як мапа кольорів з фіксованим розміром.

Два формати зображень, що найбільш широко використовуються:

  • JPEG — великі файли, що не потребують прозорого фону або анімації. Цей формат ідеальний для яскравих реалістичних фотографій, оскільки вони можуть містити мільйони кольорів.
  • PNG — на відміну від JPEG, підходить для зображень, фон яких має бути прозорим або одноколірним. Використовується для іконок та декоративних елементів. Також цей формат використовується для зображень підвищеної точності: скріншотів, креслень, графіків тощо.

Тег <img> призначений для розмітки зображень у різних графічних форматах.

<img src="https://images.pexels.com/photos/67112/pexels-photo-67112.jpeg" />

Щоб задати адресу зображення, використовується обов'язковий атрибут src="шлях".

Зображення: атрибут alt

У разі якщо зображення не завантажилося, або для користувачів з обмеженим зором слід додавати значущу інформацію щодо зображень.

<img
    src="https://images.pexels.com/photos/67112/pexels-photo-67112.jpeg"
    alt="Macbook Air на сірому дерев'яному столі"
  />

Альтернативний текст має бути у кожному тегу <img>.

  • В описі має бути закінчене, повністю сформульоване речення.
  • Альтернативний текст повинен відповідати на питання «Що зображено на малюнку?».
  • Опис має бути унікальним і не повторювати те, що є в тексті до цього зображення.
  • В описі не потрібно використовувати слова "зображення", "картинка" або "ілюстрація", це само собою зрозуміло.

Зображення: атрибути width та height

За замовчуванням браузер відображає будь-яке зображення (картинки, фото, схеми) в оригінальному розмірі.

Для того щоб змінити розміри картинки, тег <img> має атрибути widthі height . Вони відповідають за ширину і висоту елементу зображення в браузері. Значення задаються в пікселях, тобто точках на екрані. В коді вказується лише число, без позначення px (див. приклад нижче).

Якщо встановити лише одну величину — ширину або висоту, браузер автоматично обчислить іншу для збереження пропорцій.

<img
    src="https://images.pexels.com/photos/67112/pexels-photo-67112.jpeg"
    alt="Macbook Air на сірому дерев'яному столі"
    width="400"
  />
Списки

Списки дозволяють упорядковувати колекції та представляти їх у наочному та зручному для користувача вигляді. Список — це контейнер, дітьми якого можуть бути лише елементи списку, теги <li> (list item).

Невпорядкований список

Тег <ul> (unordered list) створює маркований (невпорядкований) список, кожен елемент якого починається з невеликого символу (маркера). За допомогою CSS маркер можна буде забрати або замінити.

Впорядкований список

Тег <ol> створює нумерований (впорядкований) список, тобто кожен елемент у списку пронумерований. Браузер нумерує елементи по порядку автоматично, і якщо видалити один або кілька елементів такого списку в коді, інші номери будуть автоматично пронумеровані.

  В теги <ul> і <ol> можна вкладати лише елементи списку, тобто теги <li>. 
  При цьому всередині тегів <li> можуть бути вкладені деякі інші теги.
Ієрархія заголовків h1 - h6

Група тегів від <h1> до <h6> визначає текстові заголовки смислових розділів різного рівня. Вони вказують на важливість секції контенту розташованого після них. Це інструмент структурування текстового контенту.

Тег <h1> найчастіше використовується лише один раз, як основний заголовок сторінки. Інші заголовки (<h2>, <h3>, <h4>, <h5>, <h6>) можуть використовуватися скільки завгодно разів, але їх завжди слід застосовувати правильно, дотримуючись ієрархії. На сторінці не обов’язково мають бути всі 6 рівнів заголовків. Зазвичай, достатньо перших трьох-чотирьох рівней.

Ієрархія заголовків

Пошукові системи звертають особливу увагу на заголовки, тому коректне використання цієї групи тегів є вкрай важливим. Не визначай рівень заголовка за розміром тексту на макеті. Не весь великий текст – це заголовки. Заголовком є вираз, що описує зміст розділу чи секції.

Семантика

Розмітка веб-сторінки підпорядковується певним правилам, так само як сторінка газети чи журналу, де на першій полосі завжди найважливіші теми.

Веб-сторінки також містять різні типи контенту: заголовки, списки, зображення, абзаци тексту тощо. Для опису цієї різноманітності існують відповідні теги: для розмітки абзацу тексту використовується тег <p>, для розмітки посилань — тег <a>, тощо. Отже, семантика (тобто призначення тегів) є невід’ємною частиною HTML вже з базового рівня.

Семантична розмітка

Семантична розмітка — підхід до створення HTML-розмітки, у якому вибір тегу залежить від:

  • призначення тегу, вказаного в специфікації;
  • типу контенту.

В чому переваги семантичної розмітки?

Семантична розмітка надважлива при створенні сайту.

  • Для просування сайту у пошукових системах.

Наявність семантичної розмітки сторінок допомагає пошуковим роботам краще розуміти, що знаходиться на сторінці, і в залежності від цього ранжувати сайти в пошуковій видачі.

  • Для коректної роботи асистивних технологій

Для користувачів з вадами зору основним інструментом знайомства з контентом є скрінрідер, що зачитує вміст сторінки. Семантична розмітка допомагає скрінрідеру коректно визначати який блок треба озвучити, а користувачу краще розуміти вміст.

  • Для кращої читабельності коду

Для інших розробників в команді та для тебе самого через декілька місяців чи літ важливо швидко розуміти структуру коду. Семантична розмітка — один із шляхів цього досягти.

Оформлення коду: теги

У процесі створення веб-сайтів завжди необхідно повертатися до вже написаного коду для внесення змін. Зазвичай над проєктом працюють кілька розробників, а не один. Якщо код не оформлений відповідно до стандартів, він втрачає читабельність і, як наслідок, швидкість розробки падає.

  • Розміщуй кожен новий тег з нового рядка.
  • Якщо контент займає менше одного рядка, відкриваючий та закриваючий теги мають бути розташовані у тому ж рядку безпосередньо до та після контенту.
  • Якщо контент тегу займає кілька рядків, відкриваючий та закриваючий теги мають бути розташовані один під одним.
  • Декілька атрибутів розділяються пробілом. Між атрибутом та його значенням є тільки знак =, а значення атрибута міститься у подвійних лапках.
  • Вкладені елементи <li> розташовуються не прямо під тегом <ul>, а з відступом, що дорівнює 2 або 4 пробілам. Відступ має бути однаковий для всього проєкта.
Блокові та рядкові елементи

Потік документа — це вертикальний та горизонтальний порядок відображення елементів на веб-сторінці.

  • Вертикально потік іде зверху вниз, і за замовчуванням елементи відображаються на сторінці в тому порядку, в якому вони вказані в HTML-документі.
  • Горизонтально потік йде зліва направо (або справа наліво для східних країн).

Всі HTML елементи — це прямокутні області, що певним чином відображаються браузером на веб-сторінці. Є два основних типи елементів: блокові елементи (займають всю доступну ширину, як назва твору в зошиті) та рядкові (групуються один за одним, як слова в реченні).

Блоковий елемент (block-level element) — займає весь рядок цілком незалежно від обсягу його контенту, тому кілька блокових елементів візуально йдуть один за одним зверху вниз.

Рядковий елемент — займає те саме місце, що займає його контент. Отже, кілька рядкових елементів можуть розташовуватися в одному рядку. Коли в рядку не вистачає місця для вміщення такого елементу, він переноситься на новий рядок.