display

Все значения свойства display

Свойство display имеет много разных значений. Обычно, используются только три из них: none , inline и block , потому что когда-то браузеры другие не поддерживали.

Но после ухода IE7-, стало возможным использовать и другие значения тоже. Рассмотрим здесь весь список.

Значение none

Самое простое значение. Элемент не показывается, вообще. Как будто его и нет.

 
Невидимый div (
Я - невидим!
) Стоит внутри скобок

Значение block

  • Блочные элементы располагаются один над другим, вертикально (если нет особых свойств позиционирования, например float ).
  • Блок стремится расшириться на всю доступную ширину. Можно указать ширину и высоту явно.

Это значение display многие элементы имеют по умолчанию: , заголовок , параграф

.

Блоки прилегают друг к другу вплотную, если у них нет margin .

Значение inline

  • Элементы располагаются на той же строке, последовательно.
  • Ширина и высота элемента определяются по содержимому. Поменять их нельзя.

Например, инлайновые элементы по умолчанию: , .

Если вы присмотритесь внимательно к примеру выше, то увидите, что между внутренними и есть пробел. Это потому, что он есть в HTML.

Если расположить элементы вплотную – его не будет:

Содержимое инлайн-элемента может переноситься на другую строку.

При этом каждая строка в смысле отображения является отдельным прямоугольником («line box»). Так что инлайн-элемент состоит из объединения прямоугольников, но в целом, в отличие от блока, прямоугольником не является.

Это проявляется, например, при назначении фона.

Например, три прямоугольника подряд:

 
. Ля Ля Ля Ля Ля Ля Ля Ля Ля Ля Ля Ля Ля Ля Ля Ля Ля Ля Ля Ля Ля Ля Ля Ля Ля Ля Ля Ля Ля Ля Ля Ля Ля Ля Ля Ля Ля Ля Ля Ля .

Если инлайн-элемент граничит с блоком, то между ними обязательно будет перенос строки:

Значение inline-block

Это значение – означает элемент, который продолжает находиться в строке ( inline ), но при этом может иметь важные свойства блока.

Во всём остальном – это блок, то есть:

Это значение display используют, чтобы отобразить в одну строку блочные элементы, в том числе разных размеров.

Свойство vertical-align позволяет выровнять такие элементы внутри внешнего блока:

Как и в случае с инлайн-элементами, пробелы между блоками появляются из-за пробелов в HTML. Если элементы списка идут вплотную, например, генерируются в JavaScript – их не будет.

Значения table-*

Современные браузеры (IE8+) позволяют описывать таблицу любыми элементами, если поставить им соответствующие значения display .

Для таблицы целиком table , для строки – table-row , для ячейки – table-cell и т.д.

Важно то, что это действительно полноценная таблица. Используются табличные алгоритмы вычисления ширины и высоты элемента, описанные в стандарте.

Читайте также:  Java editions and versions

Это хорошо для семантической вёрстки и позволяет избавиться от лишних тегов.

table < display: table >tr < display: table-row >thead < display: table-header-group >tbody < display: table-row-group >tfoot < display: table-footer-group >col < display: table-column >colgroup < display: table-column-group >td, th < display: table-cell >caption

Очень подробно об алгоритмах вычисления размеров и отображении таблиц рассказывает стандарт CSS 2.1 – Tables.

Вертикальное центрирование с table-cell

Внутри ячеек свойство vertical-align выравнивает содержимое по вертикали.

Это можно использовать для центрирования:

 div 
Элемент
С неизвестной
Высотой

CSS не требует, чтобы вокруг table-cell была структура таблицы: table-row и т.п. Может быть просто такой одинокий DIV , это допустимо.

При этом он ведёт себя как ячейка TD , то есть подстраивается под размер содержимого и умеет вертикально центрировать его при помощи vertical-align .

Значения list-item, run-in и flex

У свойства display есть и другие значения. Они используются реже, поэтому посмотрим на них кратко:

Этот display по умолчанию используется для элементов списка. Он добавляет к блоку с содержимым ещё и блок с номером(значком) списка, который стилизуется стандартными списочными свойствами:

Если после run-in идёт block , то run-in становится его первым инлайн-элементом, то есть отображается в начале block .

Если ваш браузер поддерживает это значение, то в примере ниже h3 , благодаря display:run-in , окажется визуально внутри div :

Про пчёл.

Пчёлы - отличные создания, они делают мёд.

Если же вы видите две строки, то ваш браузер НЕ поддерживает run-in .

Вот, для примера, правильный вариант отображения run-in , оформленный другим кодом:

 

Про пчёл.

Пчёлы - отличные создания, они делают мёд.

Если этот вариант отличается от того, что вы видите выше – ваш браузер не поддерживает run-in . На момент написания этой статьи только IE поддерживал display:run-in .

Flexbox позволяет удобно управлять дочерними и родительскими элементами на странице, располагая их в необходимом порядке. Официальная спецификация находится здесь: CSS Flexible Box Layout Module

Источник

display

Многоцелевое свойство, которое определяет, как элемент должен быть показан в документе.

Синтаксис

display: block | inline | inline-block | inline-table | 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

Значения

Список возможных значений этого свойства, понимаемый разными браузерами очень короткий — block , inline , list-item и none . Все остальные допустимые значения поддерживаются браузерами выборочно. В табл. 1 приведены некоторые популярные браузеры и их поддержка различных значений.

Табл. 1. Поддержка браузерами значений display

Значение Описание IE6 IE7 IE8 Cr2 Cr8 Op9.2 Op10 Sa3.1 Sa5 Fx3 Fx4
block Элемент показывается как блочный. Применение этого значения для встроенных элементов, например тега , заставляет его вести подобно блокам — происходит перенос строк в начале и в конце содержимого.
inline Элемент отображается как встроенный. Использование блочных тегов, таких как и

, автоматически создает перенос и показывает содержимое этих тегов с новой строки. Значение inline отменяет эту особенность, поэтому содержимое блочных элементов начинается с того места, где окончился предыдущий элемент.

inline-block Это значение генерирует блочный элемент, который обтекается другими элементами веб-страницы подобно встроенному элементу. Фактически такой элемент по своему действию похож на встраиваемые элементы (вроде тега ). При этом его внутренняя часть форматируется как блочный элемент, а сам элемент — как встроенный.
inline-table Определяет, что элемент является таблицей как при использовании тега

, но при этом таблица является встроенным элементом и происходит ее обтекание другими элементами, например, текстом.
list-item Элемент выводится как блочный и добавляется маркер списка.
none Временно удаляет элемент из документа. Занимаемое им место не резервируется и веб-страница формируется так, словно элемента и не было. Изменить значение и сделать вновь видимым элемент можно с помощью скриптов, обращаясь к свойствам через объектную модель. В этом случае происходит переформатирование данных на странице с учетом вновь добавленного элемента.
run-in Устанавливает элемент как блочный или встроенный в зависимости от контекста.
table Определяет, что элемент является блочной таблицей подобно использованию тега .).
table-caption Задает заголовок таблицы подобно применению тега .
table-cell Указывает, что элемент представляет собой ячейку таблицы (тег или ).
table-column Назначает элемент колонкой таблицы, словно был добавлен тег .
table-column-group Определяет, что элемент является группой одной или более колонок таблицы, как при использовании тега .
table-footer-group Используется для хранения одной или нескольких строк ячеек, которые отображаются в самом низу таблицы. По своему действию сходно с работой тега .
table-header-group Элемент предназначен для хранения одной или нескольких строк ячеек, которые представлены вверху таблицы. По своему действию сходно с работой тега .
table-row Элемент отображается как строка таблицы (тег
table-row-group Создает структурный блок, состоящий из нескольких строк таблицы аналогично действию тега .

HTML5 CSS 2.1 IE Cr Op Sa Fx

        

<html>
<body>
<b>Формула серной кислоты:</b> <i>H<sub><small>2</small></sub> SO<sub><small>4</small> </sub></i>
</body>
</html>

Результат данного примера показан на рис. 1.

Применение свойства display

Рис. 1. Применение свойства display

Объектная модель

[window.]document.getElementById(» elementID «).style.display

Браузеры

Internet Explorer до версии 7 включительно:

  • поддержка значений table-footer-group и table-header-group происходит только для тегов и ;
  • для элементов
  • понимает значение block как list-item ;
  • значение inline-block применяется только для встроенных элементов, с блочными элементами работает некорректно.

Opera 9.2, а также Firefox 2.0:

  • значение table-column применяется только для тега ;
  • значение table-column-group поддерживается только для тега .

Chrome 2.0, а также Safari версии 3 и старше, iOS:

  • значение run-in поддерживают только для элементов, которые располагаются перед встроенными элементами или такими, у которых значение display установлено как inline .
  • Значение table-cell не работает, если нет элементов со значениями свойства display : table и table-row .

Источник

Свойство display:

Сегодня узнаем об очень интересном свойстве css display: .

Свойство display: отвечает в css за то, как будет показан элемент на странице.

То есть будет ли элемент показан как блочный и всегда расположится с новой строки, или встроенный и расположится непосредственно в ряд с другими элементами.

Что-же тут интересного? А то, что свойство display: задано по умолчанию всем элементам html, и если оно не указано в коде, то браузер отобразит элемент так, как это в нём заложено.

Внося это свойство в код, вы сможете самостоятельно решать, как будет отображён тот или иной элемент на экране монитора, то есть управлять элементами на своё усмотрение.

Свойство display: имеет множество значений, которые мы сейчас рассмотрим.

Наиболее популярные из них это block (блочный), inline (встроенный) и none (не отображается).

Элемент отображается как блочный. Задано по умолчанию всем блочным элементам.

Если задать встроенному элементу, то он будет отображён как блочный, то есть с новой строки и займёт всё пространство по ширине родительского блока.

Бла-бла-бла Текс-текст-текст бла-бла-бла

Отображает элемент как встроенный. Задано по умолчанию всем встроенным элементам.

Если задать блочному элементу, то он отобразится как встроенный, в пределах содержания элемента.

Делает элемент невидимым. Место элемента освобождается и может быть занято другими элементами.

Элемент остаётся встроенным, то есть располагается в строку и занимает место по своим размерам, но в то-же время принимает свойства блочного элемента, например width (ширина) и height (высота), которые недоступны встроенным элементам, кроме тега которому display: inline-block; задан по умолчанию.

Удобно применять когда несколько блоков нужно расположить в одной строке.

Добавляет к элементу маркер списка. По умолчанию задан тегам списка, но может быть применён к любому элементу html.

Только при этом обязательно надо указать вид маркера.

Дальше пойдут так называемые табличные значения.

Свойство display: задано всем табличным тегам по умолчанию, но можно написать таблицу и с другими элементами html.

Понадобится это может, по моему, только в одном случае:

Если у вас в файле стилей уже заданы все свойства для таблиц, со всеми отступами, рамками и цветами, то они распространяются на все таблицы сайта, а вам необходимо сделать таблицу с совершенно другим оформлением, вот тогда и пригодятся табличные значения свойства display:.

К элементу начинают применяться свойства таблиц, рассчитывающие размер ячеек по наибольшей.

Определяет заголовок таблицы. (тег )

Определяет элемент как колонку таблицы. (тег )

6. display: table-column-group;

Определяет элемент как группу колонок. (тег )

7. display: table-header-group;

Определяет элемент как контейнер для нескольких строк таблицы, расположенных в начале таблицы.

Применяется для задания группе строк однотипных свойств.

Определяет элемент как контейнер для нескольких строк таблицы, расположенных в середине таблицы.

9. display: table-footer-group;

Определяет элемент как контейнер для нескольких строк таблицы, расположенных в конце таблицы.

Практическое применение значений group — табличная вёрстка сайта.

Напишем таблицу используя элемент

На этом всё о свойстве CSS display:

Источник

Оцените статью