- Модуль 1: Основы HTML-разметки
- Модуль 2: Форматирование текста
- Жирный текст (b и strong).
- Курсив (i и em).
- Подчеркивание и перечеркивание (u, s, del, ins).
- Верхний и нижний индекс (sup, sub).
- Цитаты и блоки цитат (q, blockquote, cite).
- Код и предварительно форматированный текст (code, pre).
- Аббревиатуры и определения (abbr, dfn).
- Технические элементы (kbd, samp, var).
- Двунаправленный текст (bdi, bdo).
- Модуль 3: Ссылки и навигация
- Базовые ссылки (a href).
- Внутренние ссылки и якоря.
- Относительные и абсолютные пути.
- Атрибуты target (_blank, _self).
- Заголовки ссылок (title).
- Ссылки на email и телефон.
- Скачивание файлов через ссылки (download).
- Атрибуты rel (nofollow, noreferrer).
- Создание кнопок-ссылок.
- Hash-навигация между разделами.
- URI-схемы (sms:, geo:).
- Модуль 4: Изображения
- Добавление базовых изображений (img).
- Атрибуты изображений (alt, width, height).
- Изображения-ссылки.
- Карты изображений (map, area).
- Picture элемент и множественные источники.
- Адаптивные изображения (srcset, sizes).
- Ленивая загрузка изображений (loading='lazy').
- Форматы изображений и их применение (JPEG, PNG, WebP, SVG).
- SV-анимация через элемент.
- Интерактивные SVG-карты.
- Модуль 5: Списки
- Неупорядоченные списки (ul, li).
- Упорядоченные списки (ol, li) и их атрибуты.
- Типы нумерации (decimal, alpha, roman).
- Вложенные списки и иерархия.
- Списки определений (dl, dt, dd).
- Создание навигационного меню из списка.
- Кастомные маркеры и стилизация списков.
- Атрибуты start и reversed в OL.
- Горизонтальные списки через CSS.
- Модуль 6: Таблицы
- Базовая структура таблицы (table, tr, td).
- Заголовки таблиц (th) и атрибуты scope.
- Объединение строк и столбцов (rowspan, colspan).
- Группировка ячеек (thead, tbody, tfoot).
- Заголовок и подпись таблицы (caption).
- Группировка столбцов (colgroup, col).
- Стилизация таблиц и чередующиеся строки.
- Фиксированные заголовки таблиц.
- Модуль 7: Формы и элементы ввода
- Создание базовой формы (form).
- Атрибуты формы (action, method, enctype).
- Текстовые поля (input type='text').
- Поля ввода пароля (input type='password').
- Флажки и чекбоксы (input type='checkbox').
- Радиокнопки (input type='radio').
- Кнопки (button, input type='submit', input type='reset').
- Выпадающие списки (select, option, optgroup).
- Многострочные поля ввода (textarea).
- Группировка элементов формы (fieldset, legend).
- Подписи к полям (label).
- HTML5 типы полей ( url, number ).
- Поля выбора даты и времени (date, time).
- Слайдеры и диапазоны (input type='range').
- Выбор цвета (input type='color').
- Поля с автозаполнением (datalist).
- Атрибуты полей (placeholder, autocomplete).
- Валидация форм (required, pattern, min, max).
- Загрузка файлов (input type='file').
- Скрытые поля (input type='hidden').
- Элемент output для вычислений.
- Модуль 8: Семантические элементы HTML5
- Шапка сайта (header).
- Основная навигация (nav).
- Основной контент (main).
- Боковая панель (aside).
- Подвал сайта (footer).
- Статьи и самодостаточный контент (article).
- Тематические разделы (section).
- Фигуры и подписи (figure, figcaption).
- Время и даты (time).
- Разворачиваемые блоки (details, summary).
- Прогресс и метрики (progress, meter).
- Диалоговые окна (dialog).
- Когда использовать div, а когда семантические элементы.
- Модуль 9: Аудио и видео
- Модуль 10: Метаданные и head
- Структура head элемента.
- Задание заголовка страницы (title).
- Кодировка и язык документа (meta charset, lang).
- Мета-описание и ключевые слова.
- Настройка viewport для мобильных устройств.
- Добавление favicon.
- Подключение внешних CSS (link rel='stylesheet').
- Подключение скриптов (script).
- Open Graph метаданные для соц.сетей.
- Метатеги для SEO и индексации.
- Предварительная загрузка ресурсов (preload, prefetch).
- PWA манифест и метатеги.
- Модуль 11: Фреймы и встраивание контента
- Модуль 12: SVG и Canvas
- Модуль 13: HTML и доступность
- Модуль 14: HTML для адаптивного веба
- Модуль 15: Практические проекты
Базовый тег для скриптов
Чтобы добавить на страницу интерактивность, используется язык JavaScript. Для вставки кода или подключения файла с ним предназначен специальный тег. Вставьте его имя в пропуск, чтобы подключить файл `app.js`.
body {
font-family: sans-serif;
padding: 20px;
}
p {
font-style: italic;
color: #555;
}
<head>
<title>Подключение скрипта</title>
<input1 src="app.js"></input1>
</head>
<body>
<p>Скрипт подключен, но визуальных изменений не будет.</p>
</body>
Атрибут для указания источника
Мы уже знаем тег для скриптов, но как указать, какой именно файл нужно загрузить? Для этого используется специальный атрибут, который задает источник (source) файла. Вставьте имя этого атрибута.
body {
font-family: sans-serif;
padding: 20px;
}
.note {
background-color: #fefcea;
border-left: 4px solid #ffd700;
padding: 10px;
}
<head>
<title>Источник скрипта</title>
<script input1="main.js"></script>
</head>
<body>
<p class="note">Этот файл скрипта будет загружен браузером.</p>
</body>
Встраиваемый (inline) скрипт
Иногда небольшой скрипт проще написать прямо в HTML-документе. В этом случае атрибут `src` не нужен, а код помещается непосредственно между открывающим и закрывающим тегами. Добавьте закрывающий тег.
body { font-family: sans-serif; padding: 15px; }
button {
padding: 10px 15px;
font-size: 16px;
cursor: pointer;
}
<body>
<button onclick="sayHi()">Нажми на меня</button>
<script>
function sayHi() {
alert('Привет от встроенного скрипта!');
}
<input1>
</body>
Размещение скрипта для производительности
Чтобы страница отображалась быстрее, скрипты, которые не критичны для первоначального рендеринга, часто размещают в самом конце тела документа. Вставьте тег для подключения файла `main.js` перед закрывающим тегом `</body>`.
body { font-family: sans-serif; background: #f4f4f4; padding: 20px; }
.content { padding: 20px; background: white; border: 1px solid #ccc; }
<body>
<div class="content">
<h1>Контент страницы</h1>
<p>Этот текст виден сразу.</p>
</div>
<input1 src="main.js"></input1>
</body>
Отложенная загрузка с `defer`
Представьте, что скрипт зависит от HTML-элементов на странице. Чтобы он гарантированно выполнился после полной загрузки и разбора HTML, используется специальный атрибут. Добавьте его.
body { font-family: sans-serif; padding: 20px; }
<head>
<title>Атрибут defer</title>
<script src="app.js" input1></script>
</head>
<body>
<p>Скрипт `app.js` загрузится, но подождет, пока вся страница не будет готова к работе.</p>
</body>
Асинхронная загрузка с `async`
Если скрипт полностью независим (например, счетчик аналитики), его можно загружать и выполнять, не дожидаясь остальной части страницы. Для этого есть другой атрибут. Укажите его.
body { font-family: sans-serif; padding: 20px; }
<head>
<title>Атрибут async</title>
<script src="analytics.js" input1></script>
</head>
<body>
<p>Скрипт `analytics.js` загрузится и выполнится как можно скорее, не мешая странице.</p>
</body>
Подключение JavaScript-модуля
Современный JavaScript активно использует модульную систему. Чтобы браузер понял, что подключаемый файл является модулем, а не обычным скриптом, нужно указать правильный `type`. Заполните имя атрибута и его значение.
body { font-family: sans-serif; padding: 20px; }
<body>
<h1>Модульный JavaScript</h1>
<script input1="input2" src="app.js"></script>
</body>