Свойства display в CSS
Свойство display в CSS управляет тем, как элемент отображается на странице. Оно определяет, будет ли элемент блоком, строчным элементом, или элементом с другим типом отображения.
Основные значения для свойства display
| Значение | Описание | Пример |
|---|---|---|
block | Элемент занимает всю доступную ширину, начиная с новой строки. Обычно используется для контейнеров, заголовков, абзацев и т.д. | <div>, <p>, <h1> |
inline | Элемент занимает только необходимое пространство по ширине и не вызывает перехода на новую строку. | <span>, <a>, <strong> |
inline-block | Элемент ведет себя как строчный элемент, но при этом позволяет задавать размеры (ширину и высоту). | <img>, <button> |
none | Элемент не отображается и не занимает места в документе. Все его свойства, включая размеры и позиционирование, игнорируются. | <div style="display: none;"> |
flex | Элемент становится флекс-контейнером, внутри которого его дочерние элементы становятся флекс-элементами (позволяет создавать гибкие макеты). | <div style="display: flex;"> |
grid | Элемент становится контейнером для сетки, а его дочерние элементы становятся ячейками этой сетки. | <div style="display: grid;"> |
table | Элемент ведет себя как таблица, подобно элементу <table>. | <div style="display: table;"> |
list-item | Элемент ведет себя как элемент списка, подобно <li>. | <div style="display: list-item;"> |
run-in | Этот режим используется редко. Элемент сначала ведет себя как блочный, а затем, если возможно, он становится строчным. | <div style="display: run-in;"> |
inherit | Значение display наследуется от родительского элемента. | <div style="display: inherit;"> |
unset | Если свойство display задано на элементе, то оно сбрасывается, и элемент возвращается к своему первоначальному значению. | <div style="display: unset;"> |
Когда использовать каждое значение
block— используйте для элементов, которые должны занимать всю ширину родительского контейнера, например, для контейнеров и секций.inline— используйте для элементов, которые должны быть расположены в строке с другими элементами, например, для ссылок или текста.inline-block— полезно для создания элементов, которые должны располагаться в строке, но при этом иметь возможность задавать размеры.none— используйте для скрытия элементов, когда необходимо полностью удалить их из потока документа.flex— используйте для создания гибких, адаптивных макетов, где дочерние элементы могут изменять свой размер в зависимости от доступного пространства.grid— используйте для создания двухмерных макетов с точным позиционированием элементов в сетке.table— используйте для создания таблиц, где элементы должны вести себя как строки и ячейки таблицы.list-item— используйте для элементов, которые должны вести себя как элементы списка, например,<ul>и<ol>.run-in— редко используется, но полезно для создания элементов, которые сначала ведут себя как блочные, а затем становятся строчными.
Пример использования
/* Флекс-контейнер */
.container {
display: flex;
justify-content: space-between;
}
/* Элемент в сетке */
.grid-container {
display: grid;
grid-template-columns: repeat(3, 1fr);
}
/* Скрытие элемента */
.hidden {
display: none;
}
Особенности использования display: none:
При использовании display: none элемент не только скрывается, но и не занимает места в потоке документа. Если нужно скрыть элемент, но оставить его место, используйте visibility: hidden.