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-канал.