
Блок в HTML формируется любым тегом блочного уровня, например <div>, <section> или <article>. Такие элементы автоматически занимают всю доступную ширину контейнера и располагаются друг под другом. Для управления расположением внутри блока используют вложенные теги и CSS-свойства.
Чтобы задать блоку размеры, применяют свойства width и height. Без явного указания ширины элемент будет растягиваться по горизонтали на всю область родителя. Высота по умолчанию зависит от содержимого, поэтому при проектировании верстки важно задавать min-height, чтобы блок сохранял форму при пустом содержимом.
Для управления отступами применяются margin и padding. Первый создает расстояние между блоками, второй – внутренние поля между границей элемента и его содержимым. Например, margin: 20px; раздвинет соседние элементы, а padding: 20px; добавит пространство внутри блока.
Визуальное оформление достигается через свойства background-color, border и box-shadow. Использование border-radius позволяет сглаживать углы, а комбинация фона и теней помогает выделять блоки на странице. Для более сложных структур применяется свойство display, включая flex и grid, которые дают точный контроль над расположением вложенных элементов.
Создание базового блока с тегом <div>

Простейший пример блока:
<div>Текст внутри блока</div>
Чтобы задать размеры и отступы, применяются CSS-свойства. Например:
<div style="width:200px; height:100px; margin:10px; padding:15px; border:1px solid #000;">
Содержимое блока
</div>
Свойство width определяет ширину, height – высоту, margin создаёт внешние отступы, padding – внутренние. Граница задаётся через border. При отсутствии ширины блок растягивается по ширине родительского элемента.
Для вложенной структуры можно создавать несколько <div> внутри одного контейнера, чтобы управлять отдельными областями независимо:
<div style="border:1px solid #333; padding:10px;">
<div style="background:#f0f0f0; padding:5px;">Левый блок</div>
<div style="background:#d0d0d0; padding:5px;">Правый блок</div>
</div>
Таким образом, <div> выступает основой для построения каркаса страницы и структурирования контента.
Задание размеров блока с помощью width и height

Свойства width и height определяют ширину и высоту блока. Они принимают значения в пикселях (px), процентах (%), относительных единицах (em, rem, vw, vh) и ключевое слово auto.
Фиксированные размеры в пикселях задают жёсткую ширину и высоту, что удобно для элементов с неизменяемой структурой, например, кнопок или иконок.
Процентные значения рассчитываются относительно родительского элемента. Например, width: 50%; сделает блок равным половине ширины контейнера.
Единицы vw и vh используют размер окна браузера: 100vw соответствует полной ширине экрана, 100vh – полной высоте.
Значение auto позволяет браузеру вычислять размеры автоматически на основе содержимого или контекста.
При комбинировании width, height и box-sizing: border-box; учитываются внутренние отступы и границы, что помогает избежать «разъезжания» верстки.
Использование margin и padding для отступов
margin задаёт внешние отступы между блоками, а padding – внутренние отступы от границ элемента до его содержимого. Оба свойства принимают значения в пикселях, процентах или других единицах.
marginвлияет на расстояние между элементами. Например,margin-bottom: 20px;создаёт промежуток ниже блока.paddingувеличивает область фона и границ. Например,padding: 15px;добавит внутренний буфер вокруг текста.
Значения можно задавать для каждой стороны:
margin-top,margin-right,margin-bottom,margin-leftpadding-top,padding-right,padding-bottom,padding-left
Сокращённая запись позволяет указывать отступы через пробел:
- Одно значение – применяется ко всем сторонам:
padding: 10px; - Два значения – первое для вертикали, второе для горизонтали:
margin: 10px 20px; - Три значения – верх, горизонтали, низ:
padding: 5px 15px 10px; - Четыре значения – верх, право, низ, лево:
margin: 10px 15px 20px 25px;
Практические рекомендации:
- Используйте
marginдля управления расстоянием между соседними блоками. - Применяйте
paddingдля увеличения пространства внутри элемента без изменения положения соседей. - Избегайте больших фиксированных отступов в пикселях – для адаптивности предпочтительнее проценты или
em. - Комбинируйте оба свойства: например, карточка с
margin: 20px;иpadding: 15px;будет визуально отделена и удобна для чтения.
Применение рамок через свойство border
Свойство border задаёт толщину, стиль и цвет рамки вокруг элемента. Запись идёт в формате: border: толщина стиль цвет;. Например: border: 2px solid #333;.
Толщина указывается в пикселях, em или rem. Для акцента на важных блоках лучше использовать значения от 2px и выше. Более тонкие линии (1px) подходят для разделителей.
Стиль может быть solid (сплошная), dashed (пунктирная), dotted (точечная), double (двойная), groove и ridge (объёмные эффекты). Для строгих макетов чаще применяют solid, для декоративных элементов – dashed или dotted.
Цвет рамки задаётся любым поддерживаемым форматом: HEX, RGB, HSL или ключевыми словами. Например: border: 3px dashed red; или border: 4px double rgba(0,0,0,0.5);.
Для управления каждой стороной отдельно используют свойства border-top, border-right, border-bottom, border-left. Это удобно при создании таблиц, карточек или выделения только нижней границы заголовков.
Свойство border-radius сглаживает углы. Например: border-radius: 10px; делает скругление, а 50% превращает квадрат в круг при равных ширине и высоте.
Для адаптивных макетов желательно комбинировать border с box-sizing: border-box;, чтобы толщина рамки не увеличивала размеры блока.
Окрашивание блоков с помощью background-color

Свойство background-color задаёт цвет фона для любого блочного элемента. Значение можно указывать в виде ключевого слова, HEX-кода, RGB, RGBA, HSL или HSLA. RGBA и HSLA позволяют задавать прозрачность через альфа-канал.
Если блок имеет внутренние отступы или границы, цвет распространяется на всю область, включая их. Чтобы ограничить заливку только содержимым, используется дополнительное свойство background-clip со значением content-box.
| Формат | Пример записи | Особенности |
|---|---|---|
| Ключевое слово | background-color: red; |
Поддерживается ограниченный набор предустановленных цветов |
| HEX | background-color: #1e90ff; |
Шестнадцатеричное представление, популярно для веб-дизайна |
| RGB | background-color: rgb(30, 144, 255); |
Три канала: красный, зелёный, синий |
| RGBA | background-color: rgba(30, 144, 255, 0.5); |
Добавляется четвёртый параметр прозрачности |
| HSL | background-color: hsl(210, 100%, 56%); |
Удобен для работы с оттенками и насыщенностью |
| HSLA | background-color: hsla(210, 100%, 56%, 0.5); |
То же, что HSL, но с прозрачностью |
Для согласованной цветовой схемы рекомендуется использовать HSL/HSLA, так как эти модели позволяют гибко регулировать оттенки без пересчёта всех каналов.
Выравнивание блоков с помощью display и float
Свойство display определяет, как элемент занимает пространство на странице. Для блочных элементов (display: block) ширина по умолчанию растягивается на 100% родителя, а для строчных (display: inline) элементы выстраиваются в одну линию без разрыва строки. Использование display: inline-block позволяет комбинировать характеристики блочных и строчных элементов: задавать ширину и высоту, при этом элементы располагаются горизонтально рядом.
Для горизонтального выравнивания блоков часто применяют display: flex. Контейнер с display: flex управляет направлением осей с помощью flex-direction (строка или колонка) и распределением пространства через justify-content (начало, центр, конец, равномерное распределение) и align-items (вертикальное выравнивание). Такой метод предпочтителен для адаптивной верстки и точного контроля положения элементов.
Свойство float позволяет «вытекать» элемент влево или вправо, позволяя последующему контенту обтекать его. Для использования float необходимо учитывать очистку потока через clear: left|right|both, иначе блоки могут перекрываться или обнулять родительский контейнер. Float полезен для простого расположения колонок или обтекания текста вокруг изображений, но менее гибок для сложных макетов.
Комбинация display и float применяется редко, так как float изменяет контекст блока, а flex и grid обеспечивают более стабильное выравнивание. При необходимости горизонтального ряда одинаковых блоков рекомендуется использовать display: inline-block с управлением промежутками или flex для динамического распределения.
Практическая рекомендация: для статических колонок без адаптивности можно использовать float, для адаптивных и точных макетов – flex или inline-block. Всегда контролируйте ширину, отступы и очищение потока, чтобы элементы не «выпадали» за пределы контейнера.
Создание гибкой структуры через flexbox
Flexbox позволяет управлять расположением блоков внутри контейнера без использования float и позиционирования. Основная идея – назначить контейнеру display: flex;, после чего все его прямые дочерние элементы становятся flex-элементами.
Ключевые свойства контейнера:
flex-direction– задаёт направление оси:row(по горизонтали),column(по вертикали),row-reverse,column-reverse.justify-content– выравнивает элементы вдоль основной оси:flex-start,flex-end,center,space-between,space-around,space-evenly.align-items– выравнивает элементы по перекрестной оси:stretch,flex-start,flex-end,center,baseline.flex-wrap– управляет переносом элементов на новую строку:nowrap,wrap,wrap-reverse.
Свойства flex-элементов дают контроль над размером и порядком:
flex-grow– определяет, насколько элемент может расширяться относительно других.flex-shrink– управляет сжатием при нехватке пространства.flex-basis– задаёт начальный размер элемента до распределения оставшегося пространства.order– изменяет порядок отображения без изменения HTML-разметки.
Примеры использования flexbox для практических задач:
- Горизонтальное меню:
display: flex; justify-content: space-between;обеспечивает равномерное распределение пунктов. - Карточки товаров с адаптивной шириной:
flex-wrap: wrap;иflex: 1 1 200px;позволяют элементам автоматически подстраиваться под экран. - Центрирование контента:
justify-content: center; align-items: center;выравнивает элементы точно по центру контейнера.
Для сложных макетов рекомендуется комбинировать flex-контейнеры с вложенными контейнерами, назначая каждому уровень свои flex-свойства. Это уменьшает зависимость от фиксированных размеров и повышает адаптивность.
Flexbox эффективно решает задачи выравнивания, распределения пространства и адаптивного расположения блоков, делая структуру гибкой и управляемой без лишнего кода.
Добавление теней и скруглений углов блока
Для создания скругленных углов блока используется свойство border-radius. Оно принимает значения в пикселях, процентах или комбинацию сторон. Например, border-radius: 10px; скругляет все углы одинаково, а border-radius: 10px 20px 30px 40px; задает разные радиусы для верхнего левого, верхнего правого, нижнего правого и нижнего левого углов соответственно. Процентное значение, например 50%, формирует идеально круглую форму при равной ширине и высоте блока.
Тень блока добавляется через свойство box-shadow. Основной синтаксис: box-shadow: смещениеX смещениеY размытие радиус цвет. Например, box-shadow: 5px 5px 15px rgba(0,0,0,0.3); создаст мягкую тень, смещенную вправо и вниз. Для внутренней тени используется ключевое слово inset, например: box-shadow: inset 2px 2px 5px rgba(0,0,0,0.2);.
Для реалистичного эффекта рекомендуется комбинировать несколько теней через запятую: box-shadow: 2px 2px 5px rgba(0,0,0,0.2), 0 0 10px rgba(0,0,0,0.1);. Это добавляет глубину и имитацию рассеянного освещения.
При скруглении и тенях важно учитывать фон блока и соседние элементы. Контрастные цвета тени усиливают восприятие объема, а совпадающие цвета фона делают эффект мягким и естественным. Для адаптивного дизайна значения px лучше заменять em или rem, чтобы радиусы и тени масштабировались вместе с блоком.
Пример комбинированного стиля:
div {
width: 200px;
height: 150px;
background-color: #f0f0f0;
border-radius: 15px;
box-shadow: 4px 4px 12px rgba(0,0,0,0.25);
}
Вопрос-ответ:
Как создать простой блок в HTML?
Для создания блока используется тег
. Этот блок можно стилизовать с помощью CSS, задавая ширину, высоту, цвет фона и отступы.
Какая разница между блочными и строчными элементами?
Блочные элементы (
