These keywords specify the element's inner display
type, which defines the type of formatting context that lays out its contents (assuming it is a non-replaced element). These keywords are used as values of the display
property, and can be used for legacy purposes as a single keyword, or as defined in the Level 3 specification alongside a value from the <display-outside>
keywords.
On this page
<display-inside>
Baseline: Widely supported
Baseline is determined by this web feature being supported on the current and the previous major versions of major browsers.
Syntax
Valid <display-inside>
values:
flow
Experimental-
The element lays out its contents using flow layout (block-and-inline layout).
If its outer display type is
inline
orrun-in
, and it is participating in a block or inline formatting context, then it generates an inline box. Otherwise it generates a block container box.Depending on the value of other properties (such as
position
,float
, oroverflow
) and whether it is itself participating in a block or inline formatting context, it either establishes a new block formatting context (BFC) for its contents or integrates its contents into its parent formatting context. -
flow-root
-
The element generates a block element box that establishes a new block formatting context, defining where the formatting root lies.
-
table
-
These elements behave like HTML
<table>
elements. It defines a block-level box. -
flex
-
The element behaves like a block element and lays out its content according to the flexbox model.
-
grid
-
The element behaves like a block element and lays out its content according to the grid model.
ruby
Experimental-
The element behaves like an inline element and lays out its content according to the ruby formatting model. It behaves like the corresponding HTML
<ruby>
elements.
Note: Browsers that support the two value syntax, on finding the inner value only, such as when display: flex
or display: grid
is specified, will set their outer value to block
. This will result in expected behavior; for example if you specify an element to be display: grid
, you would expect that the box created on the grid container would be a block level box.
Formal syntax
Examples
In this example the parent box has been given display: flow-root
and so establishes a new BFC and contains the floated item.
HTML
html
<div class="box">
<div class="float">I am a floated box!</div>
<p>I am content inside the container.</p>
</div>
CSS
css
.box {
background-color: rgb(224, 206, 247);
border: 5px solid rebeccapurple;
display: flow-root;
}
.float {
float: left;
width: 200px;
height: 150px;
background-color: white;
border: 1px solid black;
padding: 10px;
}
Result
Specifications
Specification |
---|
CSS Display Module Level 3 # typedef-display-inside |
Browser compatibility
Desktop | Mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | WebView Android | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | |
display-inside |
No | 12–79 | 38 | 7 | No | No | No | No | 38 | No | No | No |
Desktop | Mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | WebView Android | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | |
display-inside |
2921 | 12 |
20Firefox 28 added multi-line flexbox support. |
11IE incorrectly positions inline block content inside flex containers. See the discussion on Microsoft Answers.8IE incorrectly positions inline block content inside flex containers. See the discussion on Microsoft Answers. |
161512.1–15 | 97 | ≤374.4 | 2925 |
20Firefox 28 added multi-line flexbox support. |
161412.1–14 | 97 | 2.01.5 |
Desktop | Mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | WebView Android | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | |
display-inside |
57 | 1612 | 52 |
10Internet Explorer implements an older version of the specification. |
44 | 10.1 | 57 | 57 | 52 | 43 | 10.3 |
6.0Samsung Internet added this earlier than the corresponding Chrome version would indicate. |
Desktop | Mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | WebView Android | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | |
display-inside |
1 | 12 | 1 | 8 | 7 | 1 | ≤37 | 18 | 4 | 14 | 1 | 1.0 |
Desktop | Mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | WebView Android | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | |
display-inside |
58 | 79 | 53 | No | 45 | 13 | 58 | 58 | 53 | 43 | 13 | 7.0 |
Desktop | Mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | WebView Android | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | |
display-inside |
115 | 115 | 70 | No | 101 | 15 | 115 | 115 | 79 | No | 15 | No |
css.properties.display.multi-keyword_values
BCD tables only load in the browser
css.properties.display.flow-root
BCD tables only load in the browser
css.properties.display.table_values
BCD tables only load in the browser
css.properties.display.grid
BCD tables only load in the browser
css.properties.display.flex
BCD tables only load in the browser
css.properties.display.ruby_values
BCD tables only load in the browser
See also
© 2005–2023 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/display-inside