CSS-свойства, связанные с моделью коробки
Эта статья объясняет CSS-свойства, связанные с моделью коробки.
Вы можете узнать о случаях применения и синтаксисе таких свойств, как ширина, высота и отступы.
YouTube Video
HTML для предварительного просмотра
css-box.html
1<!DOCTYPE html>
2<html lang="en">
3<head>
4 <meta charset="UTF-8">
5 <meta name="viewport" content="width=device-width, initial-scale=1.0">
6 <title>Box Model Related CSS Properties</title>
7 <link rel="stylesheet" href="css-base.css">
8 <link rel="stylesheet" href="css-box.css">
9</head>
10<body>
11 <!-- Header -->
12 <header>
13 <h1>Box Model Related CSS Properties</h1>
14 </header>
15
16 <!-- Main content -->
17 <main>
18 <header>
19 <h2>Box Model Related Properties</h2>
20 </header>
21 <article>
22 <h3>width and height</h3>
23 <section>
24 <header><h4>width: 250px; height: 150px;</h4></header>
25 <section class="sample-view">
26 <div class="width-height-fixed">Fixed size(250px,150px)</div>
27 </section>
28 </section>
29 <section>
30 <header><h4>width: 50%; height: 50%;</h4></header>
31 <section class="sample-view">
32 <div class="width-height-percent">Percentage size(50%,50%)</div>
33 </section>
34 </section>
35 <section>
36 <header><h4>width: min-content; height: min-content;</h4></header>
37 <section class="sample-view">
38 <div class="width-height-min-content">This is an example of min-content.</div>
39 </section>
40 </section>
41 <section>
42 <header><h4>width: max-content; height: max-content;</h4></header>
43 <section class="sample-view">
44 <div class="width-height-max-content">This is an example of max-content.</div>
45 </section>
46 </section>
47 <section>
48 <header><h4>width: fit-content; max-width: 150px;</h4></header>
49 <section class="sample-view">
50 <div class="width-height-fit-content">This is an example of fit-content.</div>
51 </section>
52 </section>
53 </article>
54 <article>
55 <h3>margin and padding</h3>
56 <section style="height: auto;">
57 <h4>Margin & padding</h4>
58 <header><h4>margin: 20px; padding: 15px;</h4></header>
59 <section class="sample-view">
60 <div class="margin-padding">margin & padding</div>
61 </section>
62 </section>
63 <section style="height: auto;">
64 <h4>Margin only(no padding)</h4>
65 <header><h4>margin: 20px; padding: 0;</h4></header>
66 <section class="sample-view">
67 <div class="margin-only">margin only</div>
68 </section>
69 </section>
70 <section style="height: auto;">
71 <h4>No margin & padding example</h4>
72 <header><h4>margin: 0; padding: 0;</h4></header>
73 <section class="sample-view">
74 <div class="no-margin">no margin & padding</div>
75 </section>
76 </section>
77 </article>
78 <article>
79 <h3>box-sizing</h3>
80 <section style="height: auto;">
81 <header><h4>box-sizing: content-box</h4></header>
82 <section class="sample-view">
83 <div style="width: 300px;">width: 300px</div>
84 <div class="content-box">Content Box</div>
85 <div style="width: 360px;">width: 360px</div>
86 </section>
87 </section>
88 <section>
89 <header><h4>box-sizing: border-box</h4></header>
90 <section class="sample-view">
91 <div style="width: 300px;">width: 300px</div>
92 <div class="border-box">Border Box</div>
93 </section>
94 </section>
95 </article>
96 <article>
97 <h3>visibility</h3>
98 <section>
99 <header><h4>visibility: visible</h4></header>
100 <section class="sample-view">
101 <div class="visibility-visible">Visible Box</div>
102 </section>
103 <header><h4>visibility: hidden</h4></header>
104 <section class="sample-view">
105 <div class="visibility-hidden">Hidden Box</div>
106 </section>
107 <header><h4>visibility: collapse</h4></header>
108 <section class="sample-view">
109 <div class="visibility-collapse">Collapsed Box (Hold layout space)</div>
110 </section>
111 <header><h4>HTML</h4></header>
112 <pre><div class="visibility-collapse">Collapsed Box (Hold layout space)</div></pre>
113 <header><h4>visibility: collapse</h4></header>
114 <section class="sample-view">
115 <table style="height: 200px; margin: auto;">
116 <tr class="visibility-collapse">
117 <td>Cell 1 (Remove layout space)</td>
118 </tr>
119 <tr>
120 <td>Cell 2</td>
121 </tr>
122 </table>
123 </section>
124 <header><h4>HTML</h4></header>
125<pre>
126<table style="height: 200px; margin: auto;">
127 <tr class="visibility-collapse">
128 <td>Cell 1 (Remove layout space)</td>
129 </tr>
130 <tr>
131 <td>Cell 2</td>
132 </tr>
133</table>
134</pre>
135 </section>
136 </article>
137 </main>
138</body>
139</html>
Связанное с моделью коробки
Свойства width
и height
1.width-height-fixed {
2 width: 250px;
3 height: 150px;
4 background-color: lightblue;
5}
6
7.width-height-percent {
8 width: 50%;
9 height: 50%;
10 background-color: lightblue;
11}
12
13.width-height-min-content {
14 width: min-content;
15 height: min-content;
16 background-color: lightblue;
17}
18
19.width-height-max-content {
20 width: max-content;
21 height: max-content;
22 background-color: lightblue;
23}
24
25.width-height-fit-content {
26 width: fit-content;
27 max-width: 150px;
28 background-color: lightblue;
29}
Свойства width
и height
— это CSS-свойства, используемые для указания ширины и высоты элемента. Они особенно используются при установке размеров блочных элементов, изображений, видео и т.д.
- В классе
width-height-fixed
указаны фиксированные значения ширины и высоты. - В классе
width-height-percent
указаны процентные значения ширины и высоты.
Значения, которые можно указать
Свойства width
и height
могут принимать следующие значения.
auto
: Размер по умолчанию. Автоматически подстраивает размер относительно родительского элемента.- Фиксированные значения: Задает фиксированную ширину в пикселях, процентах или относительных единицах.(ex:
100px
,50%
,10rem
)- Например,
250px
устанавливает размер элемента в 250 пикселей, а50%
задает 50% от размера родительского элемента.
- Например,
min-content
: Подходит под минимальный размер содержимого.max-content
: Подходит под максимальный размер содержимого.fit-content
: Подстраивает размер элемента в зависимости от размера содержимого.
Указание минимальных и максимальных значений
min-width
, max-width
, min-height
и max-height
— это CSS-свойства, используемые для задания ограничений размера элемента по его ширине и высоте. С их помощью вы можете гарантировать, что элемент останется в определенном диапазоне размеров.
Свойства margin
и padding
1.margin-padding {
2 margin: 20px; /* Margin outside the element */
3 padding: 15px; /* Padding inside the element */
4 border: 1px solid #333;
5 background-color: lightblue;
6 width: 300px;
7 height: 40px;
8}
9
10.margin-only {
11 margin: 20px; /* Margin outside the element */
12 padding: 0; /* No padding inside the element */
13 border: 1px solid #333;
14 background-color: lightblue;
15 width: 300px;
16 height: 40px;
17}
18
19.no-margin {
20 margin: 0; /* No margin outside the element */
21 padding: 0; /* No padding inside the element */
22 border: 1px solid #333;
23 background-color: lightblue;
24 width: 300px;
25 height: 40px;
26}
Margin
и padding
— это свойства, используемые в CSS для управления внешним и внутренним отступами элементов в рамках модели коробки (box model). Они используются для регулирования пространства между элементами и улучшения внешнего вида.
- В классе
margin-padding
указаны какmargin
, так иpadding
. Вне сплошной границы находится пространствоmargin
, а внутри сплошной границы — пространствоpadding
. - В классе
margin-only
задан толькоmargin
. Вы можете заметить, что синяя область меньше по сравнению с классомmargin-padding
, так как внутри сплошной границы отсутствует пространствоpadding
. - В классе
no-margin
какmargin
, так иpadding
равны 0. Вы можете заметить, что синяя область полностью сместилась влево, так как снаружи сплошной границы нет пространстваmargin
.
Таким образом, свойство margin
задает внешнее пространство элемента, регулируя расстояние между элементами. С другой стороны, свойство padding
задает внутреннее пространство элемента, регулируя расстояние между содержимым и границей.
Свойство margin
-
Свойство
margin
задает внешнее пространство (отступ) элемента. Оно используется для создания пространства между соседними элементами. Можно указать следующие значения:. -
Фиксированные значения: Вы можете указать размер отступа в пикселях, относительных единицах (em, rem) или процентах.(ex:
10px
,1em
,5%
) -
auto
: Полезно для выравнивания блочных элементов по центру. При заданной ширине оно автоматически регулирует левые и правые отступы. -
Положительные и отрицательные значения: Положительные значения увеличивают пространство, а отрицательные приближают элементы друг к другу.
Сокращенная запись:
1div.one-value {
2 margin: 20px;
3}
4
5div.two-value {
6 /* top-bottom left-right */
7 margin: 10px 5px;
8}
9
10div.three-value {
11 /* top left-right bottom */
12 margin: 10px 5px 15px;
13}
14
15div.four-value {
16 /* top right bottom left */
17 margin: 10px 5px 15px 20px;
18}
Свойство margin
может принимать от одного до четырех значений.
- Одно значение: Применяется ко всем сторонам.
- Два значения: Первое применяется к верхней и нижней сторонам, второе — к левой и правой.
- Три значения: Применяются в порядке: верх, слева и справа, низ.
- Четыре значения: Применяются в порядке: верх, справа, низ, слева.
Свойство padding
Функция:
-
Свойство
padding
задает внутреннее пространство (отступы) элемента. Оно используется для создания пространства между содержимым и границей элемента. Можно указать следующие значения:. -
Фиксированные значения: Указывает размер отступов.(ex:
10px
,1em
,5%
) -
Отрицательные значения не могут быть использованы. Значения отступов могут быть указаны только положительными числами.
Сокращенная запись:
1div.one-value {
2 padding: 20px;
3}
4
5div.two-value {
6 /* top-bottom left-right */
7 padding: 10px 5px;
8}
9
10div.three-value {
11 /* top left-right bottom */
12 padding: 10px 5px 15px;
13}
14
15div.four-value {
16 /* top right bottom left */
17 padding: 10px 5px 15px 20px;
18}
Как и для margin
, вы можете указать от одного до четырех значений.
- Одно значение: Применяется ко всем сторонам.
- Два значения: Первое применяется к верхней и нижней сторонам, второе — к левой и правой.
- Три значения: Применяются в порядке: верх, слева и справа, низ.
- Четыре значения: Применяются в порядке: верх, справа, низ, слева.
Свойство box-sizing
1/* Default content-box : 300px + 2 * 20px + 2 * 10px = 360px */
2.content-box {
3 width: 300px;
4 padding: 20px;
5 border: 10px solid blue;
6 box-sizing: content-box;
7 background-color: lightblue;
8}
9
10/* Using border-box */
11.border-box {
12 width: 300px;
13 padding: 20px;
14 border: 10px solid red;
15 box-sizing: border-box;
16 background-color: lightcoral;
17}
box-sizing
— это CSS-свойство, которое контролирует, как рассчитываются ширина и высота элемента.
- В классе
content-box
ширина элемента составляет 360px.width
равна 300px, при этом левый и правыйpadding
в сумме составляют 40px, а левый и правыйborder
— 20px, что в итоге даёт 360px. - В
border-box
ширина элемента составляет 300px.padding
иborder
включаются в указаннуюwidth
.
Значения свойства box-sizing
Основные значения box-sizing
— это content-box
и border-box
, причем content-box
является значением по умолчанию.
content-box
1.content-box {
2 box-sizing: content-box;
3 width: 200px;
4 padding: 20px;
5 border: 10px solid black;
6}
7/*
8260px = 200px(width) +
920px(padding-left) + 20px(padding-right) +
1010px(border-left) + 10px(border-right)
11*/
Если указано content-box
, только ширина и высота содержимого устанавливаются через width
и height
. padding
и border
добавляются к ним для определения итогового размера. Другими словами, width
и height
относятся только к области содержимого.
В данном примере указано значение width
200px, но с учетом ширины левого и правого padding
и border
итоговая ширина элемента составляет 260px.
border-box
1.border-box {
2 width: 200px;
3 padding: 20px;
4 border: 10px solid black;
5 box-sizing: border-box;
6}
Когда указано border-box
, ширина и высота (width
и height
) рассчитываются с учетом padding
и border
. Другими словами, указанные значения width
и height
становятся общим размером содержимого, padding
и border
.
В этом случае указанный width
равен 200px, и поскольку padding
и border
также включены, итоговая фактическая ширина элемента остается равной 200px. padding
и border
регулируются внутри него.
Сводка различий box-sizing
Свойство | Метод расчёта | Расчёт фактической ширины |
---|---|---|
content-box (по умолчанию) |
width относится только к содержимому. padding и border добавляются. |
width + padding + border |
border-box |
width включает всё (содержимое, padding , border ) |
Указанный width используется как есть. |
Преимущества использования box-sizing
-
Использование
border-box
стабилизирует разметку. Добавлениеpadding
илиborder
не изменяет указанный размер, упрощая расчёты. -
Это полезно при создании гибких макетов. В адаптивных дизайнах или сложных макетах
border-box
часто используется для предотвращения неожиданных изменений размеров.
Как применить border-box
глобально
1*,
2*::before,
3*::after {
4 box-sizing: border-box;
5}
Настроив CSS таким образом, вы можете применить border-box
ко всем элементам, чтобы избежать неожиданных изменений размеров.
Резюме
box-sizing
определяет, включаются лиpadding
иborder
в размерыwidth
иheight
элемента.- Использование
border-box
упрощает расчёты размеров и подходит для адаптивного дизайна.
Свойство visibility
1.visibility-visible {
2 visibility: visible;
3}
4
5.visibility-hidden {
6 visibility: hidden;
7}
8
9.visibility-collapse {
10 visibility: collapse;
11}
Свойство visibility
используется для отображения или скрытия элементов, но, в отличие от свойства display
, оно сохраняет влияние на разметку, даже если элемент скрыт. Оно лишь скрывает элемент, сохраняя его исходное положение и размер, не влияя на расположение других элементов.
Базовый синтаксис
1element {
2 visibility: value;
3}
значение
: Значение, определяющее видимость элемента.
Типы значений
- Свойству
visibility
можно присвоить следующие значения:.
visible
- Указание
visible
сделает элемент видимым. Это значение по умолчанию.
hidden
- Указание
hidden
скроет элемент, но его место в разметке будет сохранено.
collapse
collapse
главным образом используется для строк или столбцов таблицы. Элемент становится невидимым, и его место также игнорируется. При применении к строкам или столбцам таблицы скрытые строки или столбцы полностью удаляются из макета.- Однако, при использовании на обычных блочных или встроенных элементах, за исключением элементов таблицы, это работает как
hidden
, и место в макете сохраняется.
inherit
- Указание
inherit
унаследует значение свойстваvisibility
от родительского элемента.
Различия между visibility
и display
Существуют следующие различия между visibility
и display
.
visibility: hidden
скрывает элемент, но сохраняет его место и макет.display: none
полностью удаляет элемент из макета, позволяя другим элементам занять это место.
Вы можете следовать этой статье, используя Visual Studio Code на нашем YouTube-канале. Пожалуйста, также посмотрите наш YouTube-канал.