Свойство display
Свойство display отвечает за вывод и визуальное отображение элементов на странице. Также с помощью свойства display можно изменить тип генерируемого контейнера. Свойство не наследуется.
Любой html-элемент генерирует на веб-странице прямоугольный контейнер. Все видимое на экране состоит из контейнеров разных типов.
В нормальном потоке блочные элементы генерируют структурные блоки и выводятся вертикально один над другим, занимая по ширине 100% ширины блока-контейнера.
Строковые контейнеры генерируют строковые блоки и выводятся в строке горизонтально. Ширина строковых элементов равна ширине их содержимого.
Строчно-блочный элемент также генерирует строку текста, при этом низ элемента располагается на базовой линии строки текста и не разрывает строку. Содержимое элемента форматируется так же, как и для блочных элементов, а ширина блока равна ширине содержимого.
Таблицы обрабатываются браузером как блоки. Внутренние элементы таблицы генерируют прямоугольные блоки, имеющие содержимое, отступы padding и рамки border, но не имеющие полей margin.
display | |
---|---|
Значения: | |
inline | Значение по умолчанию. Элемент генерирует строковый блок. Аналог — тег <span>. |
block | Элемент генерирует структурный блок, как и тег <div>. |
flex | Элемент генерирует структурный блок, который создает адаптивный контейнер для дочерних элементов. |
inline-block | Элемент генерирует строковый блок. |
inline-flex | Элемент генерирует строковый блок, который создает адаптивный контейнер для дочерних элементов. |
inline-table | Элемент определяет структурный блок, который генерирует строковый блок. |
list-item | Элемент генерирует структурный блок, который отображается как элемент списка <li>. |
table | Элемент генерирует структурный блок. На странице ведет себя аналогично |
table-caption | Элемент генерирует основной заголовок таблицы. На странице ведет себя аналогично <caption>. |
table-column | Элемент описывает столбец ячеек, визуальное представление не генерируется. Аналог — <col>. |
table-column-group | Элемент объединяет один или несколько столбцов. Аналог — <colgroup>. |
table-cell | Элемент генерирует отдельную ячейку таблицы, на странице ведет себя аналогично <th> и <td>. |
table-header-group | Элемент определяет группу строк заголовка, которая всегда отображается перед остальными строками и группами строк. Аналог — <thead>. |
table-footer-group | Элемент определяет группу строк заголовка, которая всегда отображается после всех остальных строк и перед любым нижним основным заголовком. Ведет себя аналогично <tfoot>. |
table-row-group | Элемент объединяет одну или несколько строк. Аналог — <tbody. |
table-row | Элемент является строкой ячеек. Пример — <tr>. |
none | Элемент не генерирует никакой контейнер, полностью удаляясь со страницы. |
inherit | Наследует свойство от родительского элемента. |
html5book.ru
display | CSS | WebReference
Многоцелевое свойство, которое определяет, как элемент должен быть показан в документе.
Краткая информация
Значение по умолчанию | inline |
---|---|
Наследуется | Нет |
Применяется | Ко всем элементам |
Анимируется | Нет |
Синтаксис ?
display: block | inline | inline-block | inline-table |
inline-flex | flex | list-item | none |
run-in | table | table-caption | table-cell | table-column-group | table-column |
table-footer-group | table-header-group | table-row | table-row-group
Обозначения
Описание | Пример | |
---|---|---|
<тип> | Указывает тип значения. | <размер> |
A && B | Значения должны выводиться в указанном порядке. | <размер> && <цвет> |
A | B | Указывает, что надо выбрать только одно значение из предложенных (A или B). | normal | small-caps |
A || B | Каждое значение может использоваться самостоятельно или совместно с другими в произвольном порядке. | width || count |
[ ] | Группирует значения. | [ crop || cross ] |
* | Повторять ноль или больше раз. | [,<время>]* |
+ | Повторять один или больше раз. | <число>+ |
? | Указанный тип, слово или группа не является обязательным. | inset? |
{A, B} | Повторять не менее A, но не более B раз. | <радиус>{1,4} |
# | Повторять один или больше раз через запятую. | <время># |
Значения
- block
- Элемент показывается как блочный. Применение этого значения для строчных элементов, например <span>, заставляет его вести подобно блокам — происходит перенос строк в начале и в конце содержимого.
- inline
- Элемент отображается как строчный. Использование блочных элементов, таких, как <div> и <p>, автоматически создаёт перенос и показывает их содержимое с новой строки. Значение inline отменяет эту особенность, поэтому содержимое блочных элементов начинается с того места, где окончился предыдущий элемент.
- inline-block
- Это значение генерирует блочный элемент, который обтекается другими элементами веб-страницы подобно строчному элементу. Фактически такой элемент по своему действию похож на встраиваемые элементы (вроде <img>). При этом его внутренняя часть форматируется как блочный элемент, а сам элемент — как строчный.
- inline-table
- Определяет, что элемент является таблицей, как при использовании <table>, но при этом таблица является строчным элементом и происходит её обтекание другими элементами, например, текстом.
- inline-flex
- Элемент ведёт себя как строчный и выкладывает содержимое согласно флекс-модели.
- flex
- Элемент ведёт себя как блочный и выкладывает содержимое согласно флекс-модели.
- list-item
- Элемент выводится как блочный и добавляется маркер списка.
- none
- Временно удаляет элемент из документа. Занимаемое им место не резервируется, и веб-страница формируется так, словно элемента и не было. Изменить значение и сделать вновь видимым элемент можно с помощью скриптов, обращаясь к свойствам через объектную модель. В этом случае происходит переформатирование данных на странице с учётом вновь добавленного элемента.
- run-in
- Устанавливает элемент как блочный или строчный, в зависимости от контекста.
- table
- Определяет, что элемент является блочной таблицей, подобно использованию <table>.
- table-caption
- Задаёт заголовок таблицы, подобно применению <caption>.
- table-cell
- Указывает, что элемент представляет собой ячейку таблицы (<td> или <th>).
- table-column
- Назначает элемент колонкой таблицы, словно был добавлен <col>.
- table-column-group
- Определяет, что элемент является группой одной или более колонок таблицы, как при использовании <colgroup>.
- table-footer-group
- Используется для хранения одной или нескольких строк ячеек, которые отображаются в самом низу таблицы. По своему действию сходно с работой <tfoot>.
- table-header-group
- Элемент предназначен для хранения одной или нескольких строк ячеек, которые представлены вверху таблицы. По своему действию сходно с работой <thead>.
- table-row
- Элемент отображается как строка таблицы (<tr>).
- table-row-group
- Создаёт структурный блок, состоящий из нескольких строк таблицы, аналогично действию <tbody>.
Пример
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>display</title> <style> .example { border: dashed 1px #634f36; /* Параметры рамки */ background: #fffff5; /* Цвет фона */ font-family: "Courier New", Courier, monospace; /* Шрифт текста */ padding: 7px; /* Поля вокруг текста */ margin: 0 0 1em; /* Отступы */ } .exampleTitle { border: 1px solid black; /* Параметры рамки */ border-bottom: none; /* Убираем линию снизу */ padding: 3px; /* Поля вокруг текста */ display: inline; /* Устанавливаем как строчный элемент */ background: #efecdf; /* Цвет фона */ font-weight: bold; /* Жирное начертание */ font-size: 90%; /* Размер текста */ margin: 0; /* Убираем отступы */ white-space: nowrap; /* Отменяем переносы текста */ } </style> </head> <body> <p>Пример</p> <p> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><br> <html><br> <body><br> <b>Формула серной кислоты:</b> <i>H<sub><small>2</small></sub> SO<sub><small>4</small> </sub></i><br> </body><br> </html></p> </body> </html>
Результат данного примера показан на рис. 1.
Рис. 1. Применение свойства display
Объектная модель
Объект.style.display
Примечание
Internet Explorer до версии 7 включительно:
- поддержка значений table-footer-group и table-header-group происходит только для элементов <thead> и <tfoot>;
- для элементов <li> понимает значение block как list-item;
- значение inline-block применяется только для строчных элементов, с блочными элементами работает некорректно.
Opera 9.2, а также Firefox 2.0:
- значение table-column применяется только для <col>;
- значение table-column-group поддерживается только для <colgroup>.
Chrome до версии 4, а также Safari до версии 5:
- значение run-in поддерживают только для элементов, которые располагаются перед строчными элементами или такими, у которых значение display установлено как inline.
Safari 3.1
- Значение table-cell не работает, если нет элементов со значениями свойства display: table и table-row.
Chrome 32
- Значение run-in больше не поддерживается.
Спецификация ?
Спецификация
Каждая спецификация проходит несколько стадий одобрения.
- Recommendation (Рекомендация) — спецификация одобрена W3C и рекомендована как стандарт.
- Candidate Recommendation (Возможная рекомендация) — группа, отвечающая за стандарт, удовлетворена, как он соответствует своим целям, но требуется помощь сообщества разработчиков по реализации стандарта.
- Proposed Recommendation (Предлагаемая рекомендация) — на этом этапе документ представлен на рассмотрение Консультативного совета W3C для окончательного утверждения.
- Working Draft (Рабочий проект) — более зрелая версия черновика после обсуждения и внесения поправок для рассмотрения сообществом.
- Editor’s draft (Редакторский черновик) — черновая версия стандарта после внесения правок редакторами проекта.
- Draft (Черновик спецификации) — первая черновая версия стандарта.
Браузеры ?
none, inline, block | 4 | 12 | 1 | 7 | 1 | 1 |
inline-block | 5.5 | 12 | 1 | 7 | 1 | 3 |
inline-flex, flex | 11 | 12 | 29 | 17 | 9 | 28 |
list-item | 6 | 12 | 1 | 7 | 1 | 1 |
run-in | 8 | 12 | 1 | 7 | 1 | |
inline-table | 8 | 12 | 1 | 7 | 1 | 3 |
table, table-cell, table-column, table-column-group,table-header-group, table-row-group, table-footer-group, table-row, table-caption | 8 | 12 | 1 | 7 | 1 | 1 |
none, inline, block | 1 | 1 | 8 | 1 |
inline-block | 1 | 1 | 8 | 1 |
inline-flex, flex | 4.4 | 28 | 12.1 | 9.2 |
list-item | 1 | 1 | 8 | 1 |
run-in | 1 | 8 | 1 | |
inline-table | 1 | 1 | 8 | 1 |
table, table-cell, table-column, table-column-group,table-header-group, table-row-group, table-footer-group, table-row, table-caption | 1 | 1 | 8 | 1 |
Браузеры
В таблице браузеров применяются следующие обозначения.
- — свойство полностью поддерживается браузером со всеми допустимыми значениями;
- — свойство браузером не воспринимается и игнорируется;
- — при работе возможно появление различных ошибок, либо свойство поддерживается лишь частично, например, не все допустимые значения действуют или свойство применяется не ко всем элементам, которые указаны в спецификации.
Число указывает версию браузера, начиная с которой свойство поддерживается.
×Автор и редакторы
Автор: Влад Мержевич
Последнее изменение: 27.08.2017
Редакторы: Влад Мержевич
webref.ru
display | CSS справочник
Поддержка браузерами
12.0+ | 8.0+ | 3.0+ | 4.0+ | 7.0+ | 3.1+ |
Описание
CSS свойство display указывает тип элемента. От типа элемента зависит то, как он будет отображаться на веб-странице.
Обратите внимание, что по умолчанию в CSS все элементы являются строчными (display:inline). Для переопределения варианта отображения элемента со строчного на блочный, браузеры используют встроенную таблицу стилей, задающую для каждого элемента стили, применяемые к нему по умолчанию. В старых версиях браузеров используется устаревшая встроенная таблица стилей, в которой нет правил для переопределения новых элементов, добавленных в HTML5, в блочные. Поэтому, для таких элементов как <section>, <header>, <nav>, <article>, <aside> и <footer>, способ отображения должен быть задан вручную в таблице стилей:
<style> section, header, nav, article, aside, footer { display: block; } </style>
Такой код не повредит корректному отображению элементов в новых браузерах, а заодно послужит страховкой правильного отображения в их старых версиях.
Все типы элементов, которые имеют разрыв строки до и после элемента относятся к элементам блочного уровня. Все остальные элементы относятся к элементам строчного уровня.
Значение по умолчанию: | inline |
---|---|
Применяется: | ко всем элементам |
Анимируется: | нет |
Наследуется: | нет |
Версия: | CSS1 |
Синтаксис JavaScript: | object.style.display=»inline» |
Синтаксис
display: значение;
Значения свойства
Значение | Описание |
---|---|
none | Элемент исключается из общего потока, он не отображается на экране и под него не резервируется место на странице ( все элементы ведут себя как обычно, как будто этот элемент отсутствует в исходном коде). |
block | Элемент воспринимается браузером, как блочный (например, как <div>), т.е. имеет разрыв строки до и после элемента и занимает всю доступную ширину. Появляется возможность применения свойств для блочных элементов. |
inline | Элемент будет отображаться, как строчный (например, как <span>), содержимое блочных элементов, к которым было применено данное значение, будет начинаться с того места, где окончился предыдущий строчный элемент. |
inline-block | Элемент отображается, как строчный, но появляется возможность применять к нему свойства, доступные только блочным элементам (например: margin, padding). |
list-item | Элемент становится блочным и отображается, как элемент списка (тег <li>) с маркером перед началом содержимого. |
table | Определяет блочный элемент, который ведёт себя как <table>. |
table-caption | Элемент ведёт себя как <caption>. |
table-cell | Элемент ведёт себя как <td>. |
table-column | Элемент ведёт себя как <col>. |
table-column-group | Элемент ведёт себя как <colgroup>. |
table-footer-group | Элемент ведёт себя как <tfoot>. |
table-header-group | Элемент ведёт себя как <thead>. |
table-row | Элемент ведёт себя как <tr>. |
table-row-group | Элемент ведёт себя как <tbody>. |
flex | Преобразует элемент в блочный flex-контейнер. Все дочерние элементы данного контейнера автоматически становятся flex-элементами. Примечание: появляется возможность пользоваться следующими свойствами: |
inline-flex | Преобразует элемент в строчный flex-контейнер. Все дочерние элементы данного контейнера автоматически становятся flex-элементами. |
inline-table | Элемент будет вести себя как <table>, но не как блочный, а как строчно-блочный. То есть значение inline-table эквивалентно следующему CSS правилу:
table { display: inline-block;} |
inherit | Указывает, что значение наследуется от родительского элемента. |
Пример
A span element. mySpan. Another span element.
span#mySpan {
background-color: red;
display: inline;
}
puzzleweb.ru
Свойство display — способ отображения элемента браузером
Свойство display — задает способ отображения элемента браузером. См. видео ниже, чтобы вникнуть в работу с этим свойством.
Синтаксис
Принимает одно из значений: block, inline, inline-block, list-item, none, table, table-cell, inline-table, table-caption, table-column, table-row, table-column-group, table-footer-group, table-header-group, table-row-group, run-in, flex, inline-flex:
селектор {
display: значение;
}
Значения
Значение | Описание |
---|---|
block | Блочный элемент. |
inline | Строчный элемент. |
inline-block | Строчно-блочный элемент. |
list-item | Элемент станет пунктом списка и перед ним появится маркер списка. |
none | Элемент вообще пропадет и все остальные элементы будут вести себя так, как будто этого элемента нет. |
table | Элемент будет вести себя как таблица. |
table-cell | Элемент будет вести себя как ячейка таблицы. |
inline-table | Элемент будет вести себя как таблица, но при этом таблица является встроенным элементом и происходит ее обтекание другими элементами, например, текстом. |
table-caption | Элемент будет вести себя как тег caption. |
table-column | Элемент будет вести себя как колонка таблицы. |
table-row | Элемент будет вести себя как ряд таблицы. |
table-column-group | Элемент будет вести себя как тег colgroup. |
table-footer-group | Элемент будет вести себя как тег tfoot. |
table-header-group | Элемент будет вести себя как тег thead. |
table-row-group | Элемент будет вести себя как тег tbody. |
run-in | Устанавливает элемент как блочный или встроенный в зависимости от контекста. |
flex | Устанавливает элемент как блочный, а его потомки станут flex элементами. |
inline-flex | Устанавливает элемент как строчно-блочный, а его потомки станут flex элементами. |
grid | См. здесь. |
По умолчанию элементы могут иметь различные значения display.
code.mu
CSS свойство display
Определяет, как элемент должен быть показан в документе (тип его отображения)
CSS синтаксис
display: значение;
Возможные значения
Значение | Описание |
---|---|
inline | Элемент отображается как встроенный (подобно <span>). |
block | Элемент отображается как блоковый (подобно <div>). |
flex | Элемент отображается как flex-контейнер блочного уровня (гибкий контейнер). Может использоваться в создании гибкой верстки страницы по модели FlexBox. Добавлено в CSS3. |
inline-block | Генерирует блочный элемент, который обтекается другими элементами веб-страницы подобно встроенному элементу. При этом его внутренняя часть форматируется как блочный элемент, а сам элемент — как встроенный. |
inline-flex | Элемент отображается как flex-контейнер встроенного уровня (гибкий элемент). Может использоваться в создании гибкой верстки страницы по модели FlexBox. Добавлено в CSS3. |
inline-table | Определяет, что элемент является таблицей как при использовании тега <table>, но при этом таблица является встроенным элементом и обтекается другими элементами. |
list-item | Элемент ведет себя подобно элементу <li>. |
run-in | Генерирует либо встроенный, либо блочный элемент в зависимости от контекста. |
table | Элемент ведет себя подобно элементу <table>. |
table-caption | Элемент ведет себя подобно элементу <caption>. |
table-column-group | Элемент ведет себя подобно элементу <colgroup>. |
table-header-group | Элемент ведет себя подобно элементу <thead>. |
table-footer-group | Элемент ведет себя подобно элементу <tfooter>. |
table-row-group | Элемент ведет себя подобно элементу <tbody>. |
table-cell | Элемент ведет себя подобно элементу <td>. |
table-column | Элемент ведет себя подобно элементу <col>. |
table-row | Элемент ведет себя подобно элементу <tr>. |
none | Элемент не отображается (и не имеет никакого воздействия на верстку страницы). |
inherit | Значение наследуется от родительского элемента. |
initial | Устанавливает значение по умолчанию. |
Совместимость: Полностью поддерживаются всеми браузерами только значения block, inline, list-item и none. Значения inline-table, table, table-caption, table-cell, table-column, table-column-group, table-row и table-row-group не поддерживаются IE7 и более ранними версиями. В IE8 требуется декларация !DOCTYPE. IE9 поддерживает все значения. В Safari для значений flex и inline-flex требуется указывать префикс, например, «display: -webkit-flex» и «display: -webkit-inline-flex;«.
Пример
Отображаем параграф, как встроенный элемент
p.inline {
display: inline;
}
msiter.ru
Насколько хорошо вы знаете свойство CSS display?
954display является одним из наиболее важных свойств CSS для разметки. Большинство из нас использовали значения block, inline CSS и none. Также часто используются table и inline-block. Новым и весьма полезным является значение flex, потому что оно было создано специально для разметки.
При рассмотрении свойства display нельзя не упомянуть дерево блоков. Браузер анализирует CSS и выводит дерево блоков, которое представляет собой структуру форматирования отображаемого документа. Свойство display определяет тип отображения блоков.
Значения свойства display, которые мы постоянно используем — на самом деле сокращения. Например, block — сокращение от block flow. Полный список можно найти в спецификации.
Для всех элементов задано значение свойства display по умолчанию, но оно может быть переопределено.
display: none;
Удаляет элемент и все его дочерние элементы из потока документа. Документ отображается так, как если бы элемент в нем никогда не существовал. Пространство, которое он занимает, распределяется между другими элементами.
CSS display inline;
Элемент генерирует один или несколько встроенных блоков. Их можно считать дополнением к блочным элементам.
display: block;
Генерирует поле для блочного элемента. Все блочные элементы начинаются с новой строки и растягиваются по ширине контейнера.
display: list-item;
Элемент, отображаемый, как элемент списка, ведет себя так же, блочный. Но также генерирует поле маркера, для которого могут быть заданы стили с помощью свойства list-style. Только элементы <li> по умолчанию имеют значение list-item. Данное значение используется для сброса элементов <li> на поведение по умолчанию.
display inline block CSS
Посмотреть пример
Создается позиция для блочного элемента, но все поле ведет себя как, встроенный элемент. Попробуйте открыть приведенный выше пример и изменить ширину окна, чтобы лучше понять, как это работает.
Одним из компонентов, который мне в свое время пришлось разрабатывать, был числовой пошаговый обработчик для выбора различных типов пассажиров. У меня был статический файл Photoshop с мобильным шаблоном и шаблоном для стационарных компьютеров. Но между ними было несколько неучтенных размеров, на которых макет «ломался«.
Проблема была связана с текстом в скобках, который не разбивался красиво. Так что мне пришлось обработать кучу медиа-запросов, чтобы настроить отображение соответствующих элементов при различной ширине окна.
Посмотреть пример
Несмотря на то, что большинство из нас больше не использует табличную верстку, display: table и inline table CSS может оказаться полезно в некоторых случаях. Например, если вы хотите выводить таблицы только на более широких макетах, а для меньших экранов хотите сохранить стандартное расположение блоков. Этого можно достигнуть с помощью комбинации медиа-запросов и свойства display.
table | Соответствует HTML-элементу <table>. Определяет структурный блок. |
table-header-group | Соответствует HTML-элементу <thead>. |
table-row | Соответствует HTML-элементу <tr>. |
table-cell | Соответствует HTML-элементу <td>. |
table-row-group | Соответствует HTML-элементу <tbody>. |
table-footer-group | Соответствует HTML-элементу <tfoot>. |
table-column-group | Соответствует HTML-элементу <colgroup>. |
table-column | Соответствует HTML-элементу <col>. |
table-caption | Соответствует HTML-элементу <caption>. |
inline-table CSS | Это единственное значение, которое не имеет непосредственного отношения к HTML-элементам. Элемент ведет себя, как табличный. Но как встроенный, а не элемент блочного уровня. |
@media screen and (min-width: 720px) { .table { display: table; width: 100%; border-collapse: collapse; } } .tr { margin-bottom: 1.6rem; } @media screen and (min-width: 720px) { .tr { display: table-row; } } @media screen and (min-width: 720px) { .td { display: table-cell; border: #f0f0f0 1px solid; padding: 0.4rem; } .td:first-child { width: 11em; } } .th { font-size: 1rem; line-height: 1.6rem; font-family: "Palo Alto"; } @media screen and (min-width: 720px) { .th { font-size: 1.294rem; line-height: 1.6rem; } } @media screen and (min-width: 720px) { .th { font-size: 0.8rem; line-height: 1.6rem; font-family: "Roboto Slab", Rockwell, serif; font-weight: 700; } } @media screen and (min-width: 720px) and (min-width: 720px) { .th { font-size: 1rem; line-height: 1.6rem; } } .th::before { content: 'display: '; } @media screen and (min-width: 720px) { .th::before { content: ''; } } .th::after { content: ';'; } @media screen and (min-width: 720px) { .th::after { content: ''; } }
Автор спецификаций Flexbox и Grid, сделал очень меткое замечание по поводу новых режимов отображения:
inline flex CSS предназначен для одномерных макетов, которые можно уложить в одну строку.Grid предназначен для двухмерных макетов. Он может быть использован в качестве замены менее гибкого flexbox (сетка с одним столбцом / строкой действует очень похоже на flexbox), но это не задействует всех его возможностей.
Введение режима flexbox или CSS Flexible Box, ознаменовало момент, когда мы получили спецификацию, которая предназначена для размещения контента в браузере.
Разметка контента в интернете изменилась не значительно. Когда дизайнеры хотели создать какой-нибудь креативный макет, первое что они использовали, это табличную верстку.
И когда появился CSS, мы перешли на плавающие макеты, вкладывая элементы в различные div, чтобы они обтекали и смещались, как нам нужно а. Плавающие макеты все еще широко распространены, но пройдет совсем немного времени и flexbox и grid станут преобладающим методом разметки:
Объявляя для элемента display: flex, inline flex CSS, мы преобразуем его в гибкий контейнер, и его дочерние элементы становятся гибкими элементами. Это не распространяется далее, то есть гибкие свойства не распространяются на элементы ниже, чем его дочерние элементы. И flex-контейнер, и flex-элементы имеют соответствующие им свойства.
flex-direction — определяет главную ось и направление гибких элементов. Полный список значений flex-direction.
flex-wrap — указывает, должны ли flex-элементы настраиваться таким образом, чтобы поместиться в одну строку, или они могут быть перенесены на несколько строк. Полный список значений flex-wrap.
flex-flow — сокращенное свойство от flex-direction и flex-wrap. Полный список значений flex-flow.
justify-content — определяет, как распределяется вдоль главной оси пространство между и вокруг flex-элементов. Полный список значений justify-content.
align-items — определяет, как пространство между и вокруг flex-элементов распределяется перпендикулярно главной оси. Полный список значений align-items.
align-content — определяет, как линии flex-элементов распределены внутри контейнера. Не применяется, если элементы размещаются только в одной строке. Полный список значений align-content.
order — указывает порядок, в котором размещаются элементы в соответствии с увеличением значения свойства order. Элементы с одинаковым значением размещаются в соответствии с исходным порядком. Полный список значений order и inline CSS.
flex-grow — определяет, могут ли элементы расширяться, если вокруг них есть свободное пространство. Значение свойства определяет долю пространства, которую может занять элемент. Полный список значений flex-grow.
flex-shrink — определяет, насколько элементы могут сокращаться в случае, если недостаточно свободного пространства. Значение свойства определяет пространство, которое элемент может освободить. Полный список значений flex-shrink.
flex-basis — определяет размер элемента по умолчанию до того, как доступное пространство будет распределяться между всеми flex-элементами. Полный список значений flex-basis.
flex — сокращенное свойство от flex-grow, flex-shrink и flex-basis, именно в таком порядке. Полный список значений flex.
align-self — позволяет переназначать выравнивание одиночного гибкого элемента. Полный список значений align-self.
Сетки дают возможность создавать сеточные системы и контролировать расположение элементов через CSS, что позволяет четче разделить задачи с HTML. При использовании с медиа-запросами CSS-сетки становятся мощным дополнением к используемому набору инструментов, когда речь идет о создании гибких макетов.
Текущую версию CSS Grid Layout Module Level 1 мы запустили в 2011 году, как рабочий проект. Как и в случае с flexbox, эта спецификация возникла вследствие растущей потребности дизайнеров получить в свое распоряжение надлежащий метод для разметки контента без ущерба для семантики HTML.
Обратите внимание, что CSS-сетки поддерживаются не во всех браузерах. Хотя Microsoft Edge и Internet Explorer поддерживают более старую версию спецификации через префикс -ms-. Когда-то так было и с CSS inline block.
После непоследовательной реализации спецификации flexbox разработчики CSS-сеток решили применить другой подход. Создатели браузеров используют префиксы, чтобы добавить в них экспериментальные функции для разработчиков с целью проверки. Это помогает в процессе уточнения спецификации и отработке несоответствий, прежде чем спецификация станет официальной.
Вместо этого CSS grid разрабатывалась с помощью переключателей. Функция должна быть вручную включена разработчиками. В Google Chrome и Opera нужно перейти к chrome://flags и opera://flags соответственно и включить «экспериментальные функции веб-платформы». В Firefox нужно перейти к about:config и установить для layout.css.grid.enabled и layout.css.grid-template-subgrid-value.enabled — true.
Сеточный контейнер — аналогично концепции гибкого контейнера, применив к элементу `display: grid;` мы делаем его дочерние элементы сеточными элементами.
Сеточный элемент — если к родительскому элементу применено `display: grid;` то этот элемент считается сеточным элементом. Дочерние элементы сеточного элемента не считаются сеточными.
Трек сетки — это может быть либо столбец или ряд сетки.
Линия сетки — линии, которые определяют структуру сетки. Вы можете представить их как линии между треками сетки.
Ячейки сетки — одиночные блоки сетки, ограниченные соседними горизонтальными и вертикальными линиями.
Пространство сетки — это крутая часть. Сетка позволяет определить область, состоящую из нескольких ячеек сетки.
Вы можете прямо сейчас перейти к Сеткам в примерах и найти там множество примеров использования сеток.
Устанавливает элемент как встроенный или блочный в зависимости от контекста.
Для начала стоит представить элемент <ruby>. В двух словах, это элемент для отображения аннотаций на одной базовой линии с основным текстом. Используется, чтобы указать правильное произношение слов. Он довольно часто используется в восточно-азиатских языках, таких как китайский или японский.
Существуют определенные общие черты между свойствами display: ruby и inline table CSS, но спецификация настоятельно предостерегает от применения значения ruby при отображении не-ruby элементов, таких как span, для вывода ruby-текста. Вместо этого лучше разметить контент с использованием HTML-элементов ruby, чтобы экранные дикторы и визуализаторы могли интерпретировать структуры ruby.
ruby | Соответствует HTML-элементу <ruby>. Генерирует блок ruby-контейнера, который устанавливает контекст ruby-форматирования для дочерних элементов, размеченных, как внутренние блоки. |
ruby-base | Соответствует HTML-элементу <rb>. Внутренний ruby-блок в ruby-контексте. |
ruby-text | Соответствует HTML-элементу <rt>. Внутренний ruby-блок в ruby-контексте. |
ruby-base-container | Соответствует HTML-элементу <rbc>. Внутренний ruby-блок в ruby-контексте. |
ruby-text-container | Соответствует HTML-элементу <rtc>. Внутренний ruby-блок в ruby-контексте. |
— CSS Display Level Модуль 3
Авторы спецификации пытаются сказать, что, когда вы устанавливаете для элемента свойство display: contents, он исчезнет из DOM. Но все его дочерние элементы остаются и занимают пространство, которое занимает он. На данный момент эта спецификация поддерживается только в Firefox. Измените в Firefox размер полной версии приведенного ниже примера, чтобы увидеть, как это работает.
Посмотреть пример
Описание inline CSS и других значений display заняло намного больше времени, чем первоначально ожидалось. Я действительно взволнован по поводу новых возможностей, которые уже очень скоро окажутся в нашем распоряжении. С их помощью мы сможем создавать уникальные макеты без необходимости прибегать к хакам. Я надеюсь, что эта статья мотивирует вас узнать больше о макетах CSS.
Данная публикация представляет собой перевод статьи «How well do you know CSS display?» , подготовленной дружной командой проекта Интернет-технологии.ру
www.internet-technologies.ru
CSS3 | Свойство display
Свойство display
Последнее обновление: 27.04.2016
Кроме свойства float
, которое позволяет изменять позицию элемента, в CSS есть еще одно важное свойство — display.
Оно позволяет управлять блоком элемента и также влиять на его позиционирование относительно соседних элементов.
Это свойство может принимать следующие значения:
inline
: элемент становится строчным, подобно словам в строке текстаblock
: элемент становится блочным, как параграфinline-block
: элемент располагается как строка текстаlist-item
: элемент позиционируется как элемент списка обычно с добавление маркера виде точки или порядкового номераrun-in
: тип блока элемента зависит от окружающих элементовflex
: позволяет осуществлять гибкое позиционирование элментовtable
,inline-table
: позволяет расположить элементы в виде таблицыnone
: элемент не виден и удален из разметки html
Итак, значение block позволяет определить блочный элемент. Такой элемент визуально отделяется от соседних элементов переносом строки, как, например, элемент параграфа p или элемент div, которые по умолчанию являются блочными и при визуализации веб-страницы визуально переносятся на новую строку.
Однако элемент span
в отличие от элемента div блочным не является. Поэтому посмотрим, какие с ним произойдут изменения при применении значения
block
:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <link href="styles.css" rel="stylesheet"> <title>Свойство display в CSS3</title> <style> span{ color: red; } .blockSpan{ display: block; } </style> </head> <body> <div>Это <span>строчный</span> элемент span</div> <div>Это <span>блочный</span> элемент span</div> </body> </html>
Здесь определено два элемента span, но один из них является блочным, так как к нему применяется стиль display: block;
. Поэтому этот элемент
span переносится на новую строку.
В отличие от блочных элементов строчные встраиваются в строку, так как имеют для свойства display
значение inline. Элемент
span как раз по умолчанию имеет стиль display: inline
, поэтому и встраивается в строку, а не переносится на следующую, как параграфы или div.
И теперь произведем обратную процедуру — сделаем блочный элемент div
строчным:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Свойство display в CSS3</title> <style> div{ display: inline; } </style> </head> <body> <div>Первый строчный элемент div.</div> <div>Второй строчный элемент div.</div> </body> </html>
Следует учитывать, что при применении значения inline
браузер игнорирует некоторые свойства, такие как width
, height
, margin
.
inline-block
Еще одно значение — inline-block — представляет элемент, который обладает смесью признаков блочного и строчного элементов.
По отношению к соседним внешним элементам такой элемент расценивается как строчный. То есть он не отделяется от соседних элементов переводом строки.
Однако по отношению к вложенным элементам он рассматривается как блочный. И к такому элементу применяются свойства width
, height
,
margin
.
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Свойство display в CSS3</title> <style> span{ width: 100px; height: 30px; background-color: #aaa; } .inineBlockSpan{ display: inline-block; } </style> </head> <body> <p>Проехав с полверсты в хвосте <span>колонны</span>, он остановился</p> <p>Проехав с полверсты в хвосте <span>колонны</span>, он остановился</p> </body> </html>
Первый элемент span является строчным, у него значение inline
, поэтому для него бессмысленно применять свойства width
и
height
. А вот второй элемент span
имеет значение inline-block
, поэтому к нему жуе применяются и ширина, и высота, и
при необходимости еще можно установить отступы.
run-in
Значение run-in определяет элемент, который зависит от соседних элементов. И здесь есть три возможных варианта:
Элемент окружен блочными элементами, тогда фактически он имеет стиль
display: block
, то есть сам становится блочнымЭлемент окружен строчными элементами, тогда фактически он имеет стиль
display: inline
, то есть сам становится строчнымВо всех остальных случаях элемент считается блочным
Табличное представление
Значение table по сути превращает элемент в таблицу. Посмотрим на примере списка:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Свойство display в CSS3</title> <style> ul{ display: table; margin: 0; } li{ list-style-type: none; display: table-cell; padding: 10px; } </style> </head> <body> <ul> <li>Item 1</li> <li>Item 2</li> <li>Item 3</li> </ul> </body> </html>
Здесь список превращается в таблицу, а каждый элемент списка — в отдельную ячейку. Для этого у элемента списка устанавливается стиль display: table-cell
.
Фактически вместо этого списка мы могли бы использовать стандартную таблицу.
Сокрытие элемента
Значение none позволяет скрыть элемент, которого как-будто нет на веб-странице:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Свойство display в CSS3</title> <style> .invisible{ display: none; } </style> </head> <body> <p>Первый параграф</p> <p>Второй параграф</p> <p>Третий параграф</p> </body> </html>
metanit.com