Как написать сайт на html с нуля - руководство для начинающих
HTML (HyperText Markup Language) является основным языком разметки, используемым для создания веб-страниц. Важность HTML в создании веб-страниц заключается в нескольких ключевых аспектах:
HTML, созданный даже в обычном Блокноте, — это первый шаг к собственному сайту. Он даёт структуру и смысл каждой странице, делает контент доступным на любом устройстве, а вместе с CSS открывает путь к профессиональному дизайну. Именно с чистой разметки начинается ваше присутствие в интернете — без неё не работают мультимедиа, не строится SEO и не рождается настоящая свобода творчества.
| Категория | Элемент/Концепция | Описание | Пример использования | Поддержка браузеров |
|---|---|---|---|---|
| Структурные элементы | <!DOCTYPE> | Объявление типа документа, указывает браузеру версию HTML | <!DOCTYPE html> | ✓ Все браузеры |
| Структурные элементы | <html> | Корневой элемент, содержащий весь HTML-документ | <html lang="ru"> | ✓ Все браузеры |
| Структурные элементы | <head> | Контейнер для метаданных, не отображается на странице | <head><title>...</title></head> | ✓ Все браузеры |
| Структурные элементы | <body> | Содержит видимое содержимое веб-страницы | <body>Контент</body> | ✓ Все браузеры |
| Семантические элементы HTML5 | <header> | Определяет шапку документа или раздела | <header>Логотип</header> | ✓ IE9+ |
| Семантические элементы HTML5 | <nav> | Контейнер для навигационных ссылок | <nav><ul>...</ul></nav> | ✓ IE9+ |
| Семантические элементы HTML5 | <main> | Основное содержание документа (уникальное) | <main>Статья</main> | ✓ IE11+ |
| Семантические элементы HTML5 | <article> | Независимый, самодостаточный контент | <article>Блог-пост</article> | ✓ IE9+ |
| Семантические элементы HTML5 | <section> | Тематическая группа контента | <section>Глава</section> | ✓ IE9+ |
| Семантические элементы HTML5 | <aside> | Побочный контент (боковая панель) | <aside>Реклама</aside> | ✓ IE9+ |
| Семантические элементы HTML5 | <footer> | Подвал документа или раздела | <footer>Контакты</footer> | ✓ IE9+ |
| Текстовые элементы | <h1>-<h6> | Заголовки разных уровней (h1 - самый важный) | <h1>Главный заголовок</h1> | ✓ Все браузеры |
| Текстовые элементы | <p> | Абзац текста | <p>Текст абзаца</p> | ✓ Все браузеры |
| Текстовые элементы | <span> | Строчный контейнер для группировки | <span class="highlight">Текст</span> | ✓ Все браузеры |
| Текстовые элементы | <div> | Блочный контейнер для группировки элементов | <div class="container">...</div> | ✓ Все браузеры |
| Элементы форматирования | <strong> | Важный текст (обычно жирный) | <strong>Внимание!</strong> | ✓ Все браузеры |
| Элементы форматирования | <em> | Выделенный текст (обычно курсив) | <em>Акцент</em> | ✓ Все браузеры |
| Элементы форматирования | <mark> | Выделенный/помеченный текст | <mark>Поиск</mark> | ✓ IE9+ |
| Элементы форматирования | <code> | Фрагмент компьютерного кода | <code>print()</code> | ✓ Все браузеры |
| Медиа элементы | <img> | Встраивание изображений | <img src="pic.jpg" alt="Описание"> | ✓ Все браузеры |
| Медиа элементы | <video> | Встраивание видео контента | <video controls><source src="movie.mp4"></video> | ✓ IE9+ |
| Медиа элементы | <audio> | Встраивание звукового контента | <audio controls><source src="sound.mp3"></audio> | ✓ IE9+ |
| Медиа элементы | <figure> & <figcaption> | Контейнер для медиа с подписью | <figure><img><figcaption>Подпись</figcaption></figure> | ✓ IE9+ |
| Таблицы | <table> | Контейнер для табличных данных | <table><tr><td>Ячейка</td></tr></table> | ✓ Все браузеры |
| Таблицы | <thead>, <tbody>, <tfoot> | Группировка частей таблицы | <thead><tr><th>Заголовок</th></tr></thead> | ✓ Все браузеры |
| Формы | <form> | Контейнер для элементов ввода данных | <form action="/submit">...</form> | ✓ Все браузеры |
| Формы | <input> | Поле ввода различных типов | <input type="text" name="username"> | ✓ Все браузеры |
| Формы | <input type="email"> | Поле для ввода email с валидацией | <input type="email" required> | ✓ IE10+ |
| Формы | <input type="date"> | Выбор даты через календарь | <input type="date"> | ✓ IE14+ |
| Формы | <textarea> | Многострочное текстовое поле | <textarea rows="4">Текст</textarea> | ✓ Все браузеры |
| Формы | <select> & <option> | Выпадающий список вариантов | <select><option>Выбор</option></select> | ✓ Все браузеры |
| Формы | <button> | Кнопка для отправки формы или действий | <button type="submit">Отправить</button> | ✓ Все браузеры |
| Ссылки | <a> | Гиперссылка для навигации | <a href="https://example.com">Ссылка</a> | ✓ Все браузеры |
| Ссылки | <a target="_blank"> | Открытие ссылки в новой вкладке | <a href="url" target="_blank">Новое окно</a> | ✓ Все браузеры |
| Списки | <ul> & <li> | Маркированный (неупорядоченный) список | <ul><li>Пункт</li></ul> | ✓ Все браузеры |
| Списки | <ol> & <li> | Нумерованный (упорядоченный) список | <ol><li>Первый</li></ol> | ✓ Все браузеры |
| Списки | <dl>, <dt>, <dd> | Список определений (термин и описание) | <dl><dt>HTML</dt><dd>Язык разметки</dd></dl> | ✓ Все браузеры |
| Мета-теги | <meta charset> | Кодировка документа | <meta charset="UTF-8"> | ✓ Все браузеры |
| Мета-теги | <meta name="viewport"> | Адаптивность для мобильных устройств | <meta name="viewport" content="width=device-width"> | ✓ Все браузеры |
| Мета-теги | <meta name="description"> | Описание страницы для SEO | <meta name="description" content="Описание"> | ✓ Все браузеры |
| Атрибуты | id | Уникальный идентификатор элемента | <div id="main"> | ✓ Все браузеры |
| Атрибуты | class | Класс для группировки элементов | <div class="container box"> | ✓ Все браузеры |
| Атрибуты | style | Встроенные CSS стили | <p style="color: red"> | ✓ Все браузеры |
| Атрибуты | data-* | Пользовательские данные | <div data-id="123"> | ✓ IE11+ |
| HTML5 API | Local Storage | Хранение данных в браузере | localStorage.setItem('key', 'value') | ✓ IE8+ |
| HTML5 API | Geolocation | Определение геопозиции пользователя | navigator.geolocation.getCurrentPosition() | ✓ IE9+ |
| HTML5 API | Canvas | Рисование графики через JavaScript | <canvas id="myCanvas"></canvas> | ✓ IE9+ |
| HTML5 API | Web Workers | Фоновые скрипты без блокировки UI | new Worker('script.js') | ✓ IE10+ |
| Доступность (a11y) | alt | Альтернативный текст для изображений | <img src="pic.jpg" alt="Описание"> | ✓ Все браузеры |
| Доступность (a11y) | aria-* | Атрибуты для скринридеров | <div aria-label="Меню"> | ✓ IE8+ |
| Доступность (a11y) | tabindex | Порядок навигации клавишей Tab | <button tabindex="0"> | ✓ Все браузеры |
| Оптимизация | defer | Отложенная загрузка скриптов | <script src="app.js" defer></script> | ✓ IE10+ |
| Оптимизация | async | Асинхронная загрузка скриптов | <script src="analytics.js" async></script> | ✓ IE10+ |
| SEO | <title> | Заголовок страницы (важен для SEO) | <title>Название страницы</title> | ✓ Все браузеры |
| SEO | <link rel="canonical"> | Указание канонического URL | <link rel="canonical" href="https://..."> | ✓ Все браузеры |
| Валидация | required | Обязательное поле формы | <input type="text" required> | ✓ IE10+ |
| Валидация | pattern | Регулярное выражение для проверки | <input pattern="[A-Za-z]{3}"> | ✓ IE10+ |
| Валидация | min/max | Минимальное/максимальное значение | <input type="number" min="1" max="10"> | ✓ IE10+ |
Каждый HTML-документ начинается с
<!DOCTYPE html>. Это не просто формальность — именно эта строка указывает браузеру, как правильно читать и показывать страницу по современным стандартам HTML5. Без неё даже идеально написанный код может отображаться с ошибками. Начинайте с doctype, и ваш сайт будет работать там, где это важно.