Что такое блочная модель (box model) в CSS?
Блочная модель (box model) в CSS — это концепция, которая описывает, как элементы на веб-странице занимают пространство и располагаются друг относительно друга. Всякий элемент в HTML представлен в виде прямоугольной области, состоящей из нескольких слоев. Основные компоненты блочной модели:
- Содержимое (content): Это фактическое содержимое элемента, такое как текст или изображения. Размер содержимого определяется свойствами
width
иheight
. - Полосы (padding): Пространство между содержимым и границей элемента. Этот отступ можно изменить с помощью свойства
padding
. Ширина отступов увеличивает общий размер элемента. - Граница (border): Линия, окружающая элемент, которая может иметь заданный цвет, стиль и толщину с помощью свойства
border
. - Внешний отступ (margin): Пространство между границей элемента и соседними элементами. Внешний отступ также влияет на размещение элементов на странице.
Схема блочной модели (box model)
Пример использования блочной модели
Рассмотрим элемент <div>
с применением всех компонент блочной модели:
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Пример блочной модели</title>
<style>
.box {
width: 200px; /* Ширина содержимого */
height: 100px; /* Высота содержимого */
padding: 20px; /* Отступы */
border: 5px solid blue; /* Граница */
margin: 30px; /* Внешний отступ */
background-color: lightgray; /* Цвет фона */
}
</style>
</head>
<body>
<div class="box">Это пример блочной модели</div>
</body>
</html>
Как рассчитывается полный размер элемента?
Полный размер элемента можно рассчитать следующим образом:
- Ширина элемента:
total-width = width + padding-left + padding-right + border-left + border-right + margin-left + margin-right
- Высота элемента:
total-height = height + padding-top + padding-bottom + border-top + border-bottom + margin-top + margin-bottom
В приведённом примере исходная ширина содержимого составляет 200px, а высота 100px. С учетом padding, border и margin получается:
- Полная ширина:
total-width = 200px + 20px + 20px + 5px + 5px + 30px + 30px = 310px
- Полная высота:
total-height = 100px + 20px + 20px + 5px + 5px + 30px + 30px = 210px
Итог
Блочная модель является основой для понимания того, как элементы располагаются на странице и как они взаимодействуют друг с другом. Знание о блочной модели поможет вам эффективнее управлять стилями и версткой ваших веб-страниц.