HTML ( — мова розмітки гіпертексту) — стандартизована мова розмітки документів для перегляду вебсторінок у браузері. Браузери отримують HTML документ від сервера за протоколами HTTP/HTTPS або відкривають з локального диска, далі інтерпретують код в інтерфейс, який відображатиметься на екрані монітора.

Елементи HTML є будівельними блоками сторінок HTML. За допомогою конструкцій HTML, зображення та інші об'єкти, такі як інтерактивні форми, можуть бути вбудовані у візуалізовану сторінку. HTML надає засоби для створення структурованих документів, позначаючи структурну семантику тексту, наприклад заголовки, абзаци, списки, посилання, цитати та інші елементи. Елементи HTML окреслені тегами, написаними з використанням кутових дужок. Теги на кшталт чи безпосередньо виводять вміст на сторінку. Інші теги, такі як , оточують текст і надають інформацію про нього, а також можуть включати інші теги як піделементи. Браузери не показують теги HTML, але використовують їх для інтерпретації вмісту сторінки.

В HTML можна вбудовувати програми, написані на скриптових мовах, наприклад JavaScript, які впливають на поведінку та вміст вебсторінок. Включення CSS визначає вигляд і компонування вмісту. World Wide Web Consortium (W3C), який супроводжує стандарти HTML та CSS, заохочує використання CSS над явним презентаційним HTML з 1997 року.

HTML впроваджує засоби для: створення структурованого документа шляхом позначення структурного складу тексту: заголовки, абзаци, списки, таблиці, цитати та інше; отримання інформації зі Всесвітньої мережі через гіперпосилання; створення інтерактивних форм; включення зображень, звуку, відео, та інших об'єктів до тексту.

Історія розвитку HTML

1980 року фізик Тім Бернерс-Лі, який на той час був співробітником CERN, запропонував і прототипував систему INQUIRE, яка мала полегшити сумісне користування документами для дослідників CERN.

1989 року Бернерс-Лі запропонував впровадити на базі Internet гіпертекстову систему документівTim Berners-Lee, «Information Management: A Proposal.» CERN (March 1989, May 1990)..

Вже наприкінці 1990 року він розробив HTML і написав браузер та серверне програмне забезпечення для запропонованої системи. У цьому ж році Тім Бернерс-Лі та Роберт Кайо, інженер інформаційних систем CERN, подали спільну заявку на фінансування проєкту, проте цей проєкт не був офіційно прийнятий CERN.

Наприкінці 1991 року Тім Бернерс-Лі опублікував в Інтернеті перший загальнодоступний опис мови розмітки HTML, відомий як документ «HTML-теги» (HTML Tags). В ньому були описані 18 елементів первісної, відносно простої схеми розмітки HTML. Всі вони, за винятком тегу гіперпосилання, були жорстко підпорядкований внутрішньому SGML-формату документації CERN. Одинадцять із тих елементів ще й досі існують у HTML4.

Бернерс-Лі розглядав HTML як похідну мову від SGML, і в середині 1993 року Спеціальна Комісія Інтернет-розробок (IETF) офіційно визначила її такою, опублікувавши першу специфікацію HTML: «Hypertext Markup Language (HTML)» Internet-проєкт , авторами якої були Тім Бернерс-Лі та Ден Конолі. Ця специфікація вже містила визначення типу документа, яке чітко зазначало граматику HTML.

Проєкт втратив силу через 6 місяців, але відзначився використанням для браузера NCSA Mosaic тегу додавання зображень, відобразивши філософію IETF щодо базування стандартів на успішних прототипах. Так само пізніше в 1993 році в конкуруючому Інтернет-проєкті Дейва Раджетта «HTML+ (Hypertext Markup Format)», було запропоновано стандартизувати вже запроваджені браузерами сенсаційні на той час можливості, такі як таблиці та перші інтерактивні форми.

На початку 1994 року, після того, як проєкти «HTML» і «HTML+» втратили свою силу, IETF створив Робочу групу HTML (HTML Working Group). 1995 року Робоча група HTML завершила роботу над документом «HTML 2.0» (опублікований як RFC із номером 1866), першою специфікацією, що мала бути використана як базовий стандарт для подальших вдосконалень HTML. Версія 2.0 окреслювала чіткі відмінності між новим виданням специфікації та попередніми проєктами.

Подальші розробки під заступництвом IETF зіштовхнулися з конкуруючими інтересами. З 1996 року специфікації HTML затверджувались Консорціумом W3C, враховуючи доповнення до розмітки, що впроваджувалися компаніями-розробниками браузерів. Тим не менш, у 2000 році HTML стала міжнародним стандартом (ISO/IEC 15445:2000).

Остання специфікація HTML, опублікована W3C наприкінці 1999 року, має назву «HTML 4.01 Recommendation». Усі спірні питання та помилки цієї специфікації були офіційно визнані у списку друкарських помилок, опублікованому в 2001 році.

Версії

Тім Бернерс-Лі представив HTML в дослідницькому центрі CERN в Женеві 1989 року. HTML (без номера версії, 3 листопада 1992): найперша версія, орієнтована лише на текст. HTML (без номера версії, 30 квітня 1993): до тексту додано атрибути, які визначають курсивне або жирне написання літер, та зображення. HTML+ (листопад 1993): заплановані доповнення, які потрапили до наступних версій, але ніколи не були відокремлені як HTML+. HTML 2.0 (листопад 1995): визначена стандартом RFC 1866 версія з підтримкою форм. Статус цього стандарту вже «історичний», також визнані застарілими попередні версії. HTML 3.0 версія, яка не зазнала поширення, оскільки із випуском браузера Netscape Navigator версії 3 цей стандарт вже був застарілим. HTML 3.2 (14 січня 1997): були додані численні можливості, такі як таблиці, обтікання текстом зображень, інтеграція аплетів. HTML 4.0 (18 грудня 1997): були додані таблиці стилів, скрипти та фрейми. Також відбулось розділення на Strict (суворе дотримання стандартів), Frameset (з підтримкою фреймів), Transitional (перехідний). 24 квітня 1998 було випущено виправлену версію цього стандарту. HTML 4.01 (24 грудня 1999): заміна версії HTML 4.0, містить численні дрібні виправлення. HTML 5 (Working Draft, 5 квітня 2008): HTML 5 має новий словник, побудований на основі HTML 4.01 та XHTML 1.0. Також перероблена і розширена пов'язана з HTML специфікація DOM. XHTML 1.0 (26 січня 2000): висловлення стандарту HTML 4.01 засобами XML. 1 серпня 2002 було випущено оновлену редакцію стандарту. XHTML 1.1 (31 травня 2001): після того, як XHTML буде розділено на модулі, стандарт XHTML 1.1 визначатиме сувору версію, в якій не буде запроваджених HTML 4 можливостей Frameset та Transitional. XHTML 2.0 (розробка припинена в 2010 році): ця версія вже не базується на HTML 4.01 і додає деякі нові теги. Буде завершено розділення між представленням та вмістом.

Документ HTML

Для поліпшення взаємодії SGML вимагає аби кожна похідна мова (HTML у тому числі) визначала свою кодову таблицю для кожного документа, яка складається з репертуару (перелік різноманітних символів) та позиції символу (перелік цифрових посилань на символи з репертуару). Кожен документ HTML — це послідовність символів із репертуару.

HTML використовує найповнішу кодову таблицю UCS ( — Універсальний Набір Символів).

Проте однієї кодової таблиці недостатньо для того, щоб браузери могли правильно відтворювати документи HTML. Для цього браузерам потрібно «знати» специфічну кодову таблицю документа, яку автор має зазначати завжди в елементі meta із параметром charset. За замовчуванням використовується кодова таблиця ISO-8859-1, відома також як Latin-1.

Розмітка

Розмітка в HTML складається з чотирьох основних компонентів: елементів (та їхніх атрибутів), базових типів даних, символьних мнемонік та декларації типу документа.

Загальна структура

Документ HTML 5.2 складається з трьох частин: Декларація типу документа (, Doctype), на початку документа, в якій визначається тип документа (DTD). Шапка документа (знаходиться в межах елемента head), в якій записано загальні технічні відомості або додаткова інформація про документ, яка не відтворюється безпосередньо в браузері; Тіло документа (може знаходитися в елементі body), в якому міститься основна інформація документа.

Нижче наведено приклад загальної структури HTML-документа: <! DOCTYPE html> <html> <head> <title>Назва</title> </head> <body> <p> Hello world!</p> </body> </html>

Елементи

Елементи являють собою базові компоненти розмітки HTML. Кожен елемент має дві основні властивості: атрибути та вміст (контент). Існують певні настанови щодо кожного атрибута та контенту елемента, які треба виконувати задля того, щоб HTML-документ був визнаний валідним.

У елемента є початковий тег, який має вигляд <element-name>, та кінцевий тег, який має вигляд <code></element-name></code>. Атрибути елемента записуються в початковому тегу одразу після назви елемента, контент елемента записується між його двома тегами. Наприклад: <code><element-name element-attribute="attribute-value">контент елемента</element-name></code>.

Деякі елементи, наприклад br, не містять контенту, тож і не мають кінцевого тегу. Елемент може не мати початкового та кінцевого тегу (наприклад, елемент head), проте він завжди буде представлений в документі. Нижче зазначені деякі типи елементів розмітки HTML.

Елементи структурної розмітки застосовують для опису семантики тексту, іншими словами ці елементи описують призначення тексту свого контенту. Вони не зазначають ніякого спеціального (візуального) відтворення тексту, проте більшість браузерів мають стандартні стилі форматування для кожного елемента. Для подальшого стилізування тексту рекомендується використовувати Каскадні таблиці стилів (CSS). Наприклад:

Фрагмент HTML-розмітки документа Відтворення в браузері <h1>Давньогрецькі боги</h1> <p> <strong>Посейдон</strong> — володар світових вод, Океану, в латинян йому відповідав <em>Нептун</em>, у слов'ян — <em>Цар Моря, Цар Морський, Водяник</em>. </p>

Елементи візуальної розмітки застосовуються задля опису візуальних ефектів тексту, не зазначаючи при цьому функції тексту свого контенту. Остання чинна специфікація HTML 4.01 визначає більшість з цих елементів такими, що не рекомендується застосовувати у розмітці. Наприклад:

Фрагмент HTML-розмітки документа Відтворення в браузері <span style="font-size:x-large;">Давньогрецькі боги</span> <br /> <b>Посейдон</b> — володар світових вод, Океану, в латинян йому відповідав <i>Нептун</i>, у слов'ян — <i>Цар Моря, Цар Морський, Водяник</i>. Давньогрецькі боги

Посейдон — володар світових вод, Океану, в латинян йому відповідав Нептун, у слов'ян — Цар Моря, Цар Морський, Водяник

Елементи розмітки гіпертексту застосовуються задля з'єднання частин документа з іншими документами. Наприклад:

Фрагмент HTML-розмітки документа Відтворення в браузері <a href="http://uk.wikipedia.org/wiki/">Вікіпедія</a> Вікіпедія

Атрибути

Більшість з атрибутів елемента являє собою пару «назва-значення», розділених між собою знаком рівності, та записаних у початковому тегу одразу після назви елемента. Значення атрибуту може бути оточене лапками (подвійними або одиничними), також, якщо значення атрибуту складається з певних символів, його можна не виділяти лапками зліва. Проте невзяття значення атрибутів у лапки вважається небезпечним кодом. На відміну від атрибутів виду «назва-значення», є певні атрибути, що впливають на елемент, назва яких лише з'явилась в початковому тегу (наприклад, атрибут ismap елемента img).

Більшість елементів можуть мати будь-який з загальних атрибутів: Атрибут id впроваджує унікальний ідентифікатор елемента по всьому документу. Доданий до URL документа, він впроваджує глобальний унікальний ідентифікатор елемента. Він може використовуватися: таблицями стилів для впровадження презентаційних властивостей; браузерами для фокусування уваги на певному елементі; скриптами для виконання дій над елементом. Атрибут title використовується для додавання пояснювального тексту для елемента. В більшості браузерів значення цього атрибуту можна побачити як підказку, що виникає при наведенні курсора на елемент. Атрибут class впроваджує засіб об'єднання схожих елементів у класи. Він може використовуватися для: