Основные понятия веб страницы
Основные понятия веб-страницы
Веб-страница — это документ, отображаемый в браузере, который состоит из трёх взаимосвязанных технологий: HTML, CSS и JavaScript. Каждая из них выполняет свою уникальную роль, и только их совместное использование позволяет создавать полноценные, интерактивные и визуально привлекательные приложения.
Что такое HTML, CSS
HTML (HyperText Markup Language) — это язык гипертекстовой разметки, созданный для описания структуры веб-документов. Он не выполняет вычислений, не обрабатывает логику и не управляет поведением — его задача: обозначить смысл содержимого. Каждый элемент HTML — это маркер, который говорит браузеру: «Это заголовок», «Это абзац», «Это ссылка», «Это изображение».
HTML работает на основе тегов — специальных ключевых слов, заключённых в угловые скобки: <tag>. Теги могут быть:
- Парными — имеют открывающий и закрывающий тег:
<p>Это параграф</p> - Самозакрывающимися — не содержат содержимого и закрываются сразу:
<img src="image.jpg" alt="Описание изображения" /> <br />
Каждый тег может иметь атрибуты — дополнительные параметры, уточняющие поведение или свойства элемента. Например:
<a href="https://example.com" target="_blank">Перейти</a>
Здесь href указывает адрес ссылки, а target="_blank" — открывать её в новой вкладке.
HTML5 — современная версия стандарта — ввела семантические теги, которые не только описывают внешний вид, но и передают значение контента:
<header>— шапка страницы или раздела<nav>— навигационное меню<main>— основное содержимое страницы<section>— логический блок тематически связанного контента<article>— самостоятельная сущность (например, статья, пост)<footer>— подвал
Использование семантики улучшает:
- Доступность — для пользователей с ограниченными возможностями (экранная речь корректно интерпретирует структуру),
- SEO — поисковые системы лучше понимают и ранжируют содержимое,
- Поддержку кода — разработчики быстрее ориентируются в структуре.
CSS (Cascading Style Sheets) — это язык, предназначенный для оформления HTML-документов. Он отвечает за то, как выглядит страница: цвета, размеры, расположение элементов, анимации, адаптивность под разные устройства.
CSS работает через селекторы — правила, определяющие, к каким элементам применяются стили. Пример:
h1 {
color: #2c3e50;
font-size: 2rem;
text-align: center;
}
Здесь h1 — селектор, { ... } — набор свойств и их значений.
CSS обладает ключевыми особенностями:
- Каскадность (Cascading) — стили могут переопределяться. Если два правила влияют на один элемент, приоритет определяется по специфичности селектора, порядку объявления и использованию
!important. - Наследование — некоторые свойства (например,
font-family,color) автоматически передаются дочерним элементам. - Медиа-запросы — позволяют применять стили в зависимости от характеристик устройства: ширины экрана, ориентации, разрешения. Это основа адаптивного дизайна:
@media (max-width: 768px) { body { font-size: 14px; } }
CSS можно подключать тремя способами:
- Внутренний стиль — внутри
<style>в<head>(не рекомендуется для больших проектов). - Внешний файл — через
<link rel="stylesheet" href="styles.css">— лучшая практика. - Встроенный стиль — атрибут
styleвнутри тега (<p style="color:red;">) — используется крайне редко, только для экстренных случаев.
Важно: HTML отвечает за что — CSS — за как выглядит. Их разделение — фундаментальный принцип веб-разработки. Это позволяет:
- Менять дизайн без трогания структуры,
- Одинаковый HTML отображать по-разному на разных устройствах,
- Ускорять загрузку за счёт кэширования CSS-файлов,
- Облегчать командную разработку (дизайнеры работают с CSS, разработчики — с HTML и JS).
В рамках дисциплины мы не будем изучать свойства CSS, поэтому они остаются на самообучение
Структура HTML
Каждый валидный HTML-документ должен начинаться с DOCTYPE, чтобы браузер знал, какой стандарт использовать. Без него он может перейти в режим "quirks mode", где поведение становится непредсказуемым.
<!DOCTYPE html>
— единственное объявление, необходимое для HTML5. Не требует закрывающего тега.
<html>
Корневой элемент. Атрибут lang обязателен для доступности и SEO:
<html lang="ru">
Указывает язык содержимого — помогает экранной речи, переводчикам и поисковикам.
<head>
Не отображается на странице, но содержит метаданные, необходимые для работы браузера и поисковых систем:
<meta charset="UTF-8">— задаёт кодировку символов. UTF-8 поддерживает все языки мира — обязательный элемент.<meta name="viewport" content="width=device-width, initial-scale=1.0">— критически важен для мобильных устройств. Без него страница будет масштабироваться как на десктопе, что делает её нечитаемой на телефоне.<title>— название вкладки браузера и заголовок в результатах поиска. Должен быть уникальным и описательным.<link>— подключение внешних ресурсов: CSS, favicon, шрифтов.<script>— подключение JavaScript (может находиться и в<head>, и в<body>, но это отдельная тема).
Пример полного <head>:
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Моя первая страница</title>
<link rel="stylesheet" href="styles.css">
<link rel="icon" href="favicon.ico" type="image/x-icon">
</head>
<body>
Содержит всё, что видит пользователь. Внутри могут быть любые элементы, включая:
- Заголовки:
<h1>до<h6>— иерархия важности.<h1>— главный заголовок страницы, только один. - Параграфы:
<p>— для текстовых блоков. - Списки:
<ul>— неупорядоченный (с точками),<ol>— упорядоченный (с номерами),<li>— элемент списка.
- Изображения:
<img src="..." alt="...">—altобязателен для доступности и SEO. - Ссылки:
<a href="...">текст</a>—href— адрес перехода. - Кнопки:
<button>...</button>— для взаимодействия. - Формы:
<form>,<input>,<label>— для сбора данных.
Пример минимальной, но корректной структуры <body>:
<body>
<header>
<h1>Добро пожаловать!</h1>
</header>
<main>
<p>Это основной текст страницы.</p>
<button id="myButton">Нажми меня</button>
</main>
<footer>
<p>© 2025 Моя компания</p>
</footer>
</body>
Вложенность и иерархия
HTML — дерево. Элементы должны быть правильно вложены:
✅ Правильно:
<p><strong>Жирный текст</strong> внутри параграфа</p>
❌ Неправильно:
<p><strong>Жирный текст</p></strong> <!-- Нарушена вложенность -->
Браузеры пытаются исправить ошибки, но это приводит к непредсказуемому поведению, особенно в сложных случаях.
Рекомендации по структуре
- Используйте семантические теги вместо
<div>там, где это возможно. - Не используйте
<h1>–<h6>исключительно для изменения размера шрифта — используйте CSS. - Все изображения должны иметь
alt— даже если пустой (alt=""), если они декоративные. - Для кнопок и ссылок используйте правильные теги:
<button>— для действий,<a>— для переходов. - Поддерживайте чистую и читаемую структуру: отступы, переносы, комментарии (если нужно).
- Всегда проверяйте валидность кода через validator.w3.org.
Что такое DOM
DOM (Document Object Model — Модель объектов документа) — это программное представление веб-документа (обычно HTML или XML), созданное браузером в виде иерархического дерева объектов, где каждый элемент документа — это объект, доступный для манипуляций через JavaScript.
DOM не является частью самого HTML-файла. Он динамически генерируется браузером при загрузке страницы: парсер читает HTML-код и превращает его в структуру из узлов (nodes), которые можно изменять, добавлять, удалять или запрашивать с помощью JavaScript.
Структура DOM как дерева
Каждый элемент HTML становится узлом (node) в DOM-дереве:
- Элементные узлы — теги (
<div>,<p>,<button>и т.д.) - Текстовые узлы — текст внутри тегов
- Атрибутные узлы — атрибуты элементов (
id,class,href) - Корневой узел —
<html> - Дочерние и родительские узлы — элементы связаны отношениями «родитель–ребёнок»
Пример HTML:
<div id="container">
<h1>Привет, мир!</h1>
<p>Это параграф.</p>
</div>
Соответствующее DOM-дерево:
html
└── body
└── div#container
├── h1
│ └── #text: "Привет, мир!"
└── p
└── #text: "Это параграф."
Каждый узел имеет свойства и методы, позволяющие взаимодействовать с ним. Например:
element.tagName— имя тега,element.textContent— содержимое текста,element.id,element.className— значения атрибутов,element.appendChild(),element.removeChild()— управление дочерними узлами.
Зачем нужен DOM?
JavaScript не может напрямую работать с HTML-кодом файла. Он работает только с DOM-представлением, которое браузер создал в памяти. Это позволяет:
- Динамически изменять содержимое страницы без перезагрузки (например, обновлять список задач, менять текст кнопки),
- Реагировать на действия пользователя — клики, ввод текста, скроллинг,
- Изменять стили элементов — через
element.style, - Добавлять и удалять элементы — например, создавать новые карточки товаров по запросу,
- Получать информацию о состоянии страницы — размер окна, положение элементов, состояние форм.
Без DOM JavaScript был бы бесполезен на веб-странице — он просто не имел бы «точки входа» в контент.