1. Фундамент веба: HTML5, CSS3, адаптивная верстка и современные методы компоновки Flexbox и Grid
Фундамент веба: HTML5, CSS3, адаптивная верстка и современные методы компоновки Flexbox и Grid
Добро пожаловать на курс «Frontend-разработчик Junior+: от основ до алгоритмов». Мы начинаем наше путешествие с самого фундамента. Прежде чем переходить к сложной логике JavaScript и алгоритмическим задачам, необходимо научиться строить прочный каркас и создавать визуально приятный интерфейс. Без глубокого понимания HTML и CSS любой, даже самый оптимизированный код на JavaScript, будет бесполезен, если пользователь не сможет удобно взаимодействовать со страницей.
В этой статье мы разберем семантику HTML5, блочную модель CSS, научимся управлять элементами с помощью Flexbox и Grid, а также адаптировать интерфейс под любые устройства.
HTML5: Больше, чем просто теги
HTML (HyperText Markup Language) — это скелет веб-страницы. Многие новички совершают ошибку, используя для всего тег div. Это работает визуально, но плохо сказывается на доступности (accessibility) и поисковой оптимизации (SEO).
HTML5 привнес семантические теги — элементы, которые своим названием говорят браузеру и разработчику о том, какой контент они содержат.
Основные семантические элементы
header — вводная часть страницы или раздела. Обычно содержит логотип, навигацию или заголовок.nav — блок навигационных ссылок.main — основное содержимое документа. На странице должен быть только один main.article — независимый, самодостаточный контент (например, пост в блоге или новостная карточка).section — тематический раздел контента, обычно имеющий заголовок.aside — контент, косвенно связанный с основным (боковая панель, реклама).footer — «подвал» сайта с контактами, копирайтом и дополнительными ссылками.!Структура семантической веб-страницы
Использование правильных тегов позволяет скринридерам (программам для чтения с экрана) корректно озвучивать сайт для людей с нарушениями зрения, а поисковым роботам — лучше понимать структуру контента.
CSS3 и Блочная модель (Box Model)
Если HTML — это скелет, то CSS (Cascading Style Sheets) — это кожа и одежда. Ключевая концепция, которую обязан знать каждый Junior-разработчик, — это Box Model (Блочная модель).
Каждый элемент на странице — это прямоугольный ящик, состоящий из четырех уровней:
Проблема расчета ширины
По умолчанию в браузере свойство width задает ширину только контента. Если вы зададите элементу width: 100px, padding: 20px и border: 5px, реальная ширина элемента на экране составит:
Где — итоговая ширина, — ширина контента, — левый и правый отступы, — левая и правая границы.
Это часто ломает верстку. Чтобы избежать сложных расчетов, в современной разработке используют свойство:
С border-box свойство width включает в себя и padding, и border. Это стандарт индустрии.
Современная компоновка: Flexbox
До появления Flexbox верстальщики страдали, используя float и таблицы для выравнивания. Flexbox (Flexible Box Layout) — это модуль для создания гибких структур в одном измерении (строка или колонка).
Основные оси
Во Flexbox есть две оси: * Главная ось (Main Axis): по умолчанию идет слева направо (row). * Поперечная ось (Cross Axis): перпендикулярна главной (сверху вниз).
!Оси и выравнивание во Flexbox
Ключевые свойства контейнера
Flexbox идеально подходит для меню, карточек товаров в один ряд, центрирования элементов внутри блока.
Двумерная магия: CSS Grid Layout
Если Flexbox — это линия, то Grid — это сетка. Это первая система в CSS, созданная специально для двумерной компоновки (строки и колонки одновременно).
Grid позволяет разделить страницу на области и расставить элементы в нужные ячейки, не меняя HTML-структуру.
Пример простой сетки
Единица измерения fr (fraction) — это доля свободного пространства. Это мощнейший инструмент Grid, позволяющий создавать резиновые макеты без сложных процентов.
Flexbox или Grid?
* Используйте Flexbox, когда вам нужно расположить элементы в одну линию (меню, кнопки) или когда вам важен контент, а не сетка. * Используйте Grid, когда вам нужно управлять всей структурой страницы (шапка, сайдбар, контент, подвал) или когда макет имеет сложную двумерную структуру.
Адаптивная верстка и Media Queries
Сегодня пользователи заходят на сайты со смартфонов чаще, чем с компьютеров. Адаптивная верстка — это не опция, а необходимость.
Viewport
Чтобы адаптивность работала на мобильных устройствах, в head вашего HTML-документа всегда должен быть этот мета-тег:
Он говорит браузеру: «Ширина области просмотра равна ширине устройства, масштаб 1:1».
Медиа-запросы (@media)
Медиа-запросы позволяют применять CSS-правила только при определенных условиях (например, если ширина экрана меньше 768px).
Подход Mobile First подразумевает, что вы сначала пишете стили для мобильных устройств (без media queries), а затем добавляете сложности для больших экранов с помощью min-width. Это делает код чище и производительнее на слабых устройствах.
Заключение
Мы заложили фундамент. Вы узнали, что HTML5 — это про смысл, а не только про структуру. Разобрали, как браузер считает размеры элементов через Box Model. Изучили инструменты Flexbox и Grid, которые позволяют реализовать любой дизайн, и поняли принцип адаптивности.
В следующих статьях мы оживим наши страницы с помощью JavaScript, но помните: качественная верстка — это база, на которой держится все приложение.