- CSS display Property
- Syntax
- Example of the display property:
- Result
- Example of the display property with the «inline» and «block» values:
- Example of the display property with the «block» value:
- Example of the display property with the «contents» value:
- Example of the display property with the «flex» value:
- Values
- Browser support
- CSS Layout — The display Property
- The display Property
- Block-level Elements
- Inline Elements
- Display: none;
- Override The Default Display Value
- Example
- Example
- CSS display
- Reference
- Properties
- Data types
- Guides
- Flow layout (display: block, display: inline)
- Flexible box layout
- Grid layout
- Specifications
- Browser compatibility
- Found a content problem with this page?
- MDN
- Support
- Our communities
- Developers
CSS display Property
The display property defines the type of the box which is used for an HTML element.
With the display property we can override the initial value of an element. For example, a block-level element could be displayed as an inline element by specifying a value of «inline». An inline element does not accept the height and width properties. It will just ignore it.
In HTML, the default values of the display property are taken from the behaviors which are described in the HTML specifications or from the browser or user default stylesheet. On the other hand, the default value in XML is «inline».
There are several main box formats in CSS:
- Inline
Inline elements or inline-level elements are boxes flowing in a line without breaking it. The , , elements are part of a line box but cannot cause a line break. Inline elements can have padding and margins, but they cannot have width and height because defining them on an inline won’t change its dimensions. Specifying padding and margins on the element will push the other elements on the line only horizontally. However, an inline-level element can accept width and height, if it is set to be an inline-block element using the display property. - Inline-block
Inline-block elements are the same as inline element except that they except width and height. The width and height push the elements on the line both horizontally and vertically. - Block
Block boxed or block-level elements do not sit in a line box but break past it. By default, they occupy as much horizontal space as possible. Block-level elements can contain other block-level elements. The , , — , , , and are examples of block level elements. - Flex
The display property is also used for Flexbox. The flex value generates a block-level box for the element and lays out the content according to the Flexbox model. Here you can read about The Ultimate Guide to Flexbox. - Grid
The display property initially sets the Grid layout. It generates a block-level box for the element laying out the content according to the Grid model. - Table Values
Display values allows you to make non-table elements behave like table elements. Each of the table values forces the element to behave like a corresponding table element in HTML. The inline-table behaves like a HTML element, but as an inline box. There is a block-level context inside the table box.
Syntax
display: inline | block | contents | flex | grid | inline-block | inline-flex | inline-grid | inline-table | list-item | run-in | table | table-caption | table-column-group | table-header-group | table-footer-group | table-row-group | table-cell | table-column | table-row | none | initial | inherit;
Example of the display property:
html> html> head> title>Title of the document title> style> .display li < display: inline; margin-right: 10px; > style> head> body> h2>Display property example h2> p>Here the list item is with its initial value: p> ul> li>List iteam li> li>List iteam li> ul> p>Here the list item is used with the display property. The "inline" value is used: p> ul class="display"> li>List iteam 1 li> li>List iteam 2 li> ul> body> html>
Result
Example of the display property with the «inline» and «block» values:
html> html> head> title>Title of the document title> style> .inline < border: 1px solid #1c87c9; display: inline; > .block < border: 1px solid #1c87c9; display: block; height: 30px; width: 300px; > style> head> body> h2>Display property example h2> p>Here the list item is with "initial" value. We see that the "inline" value does not accept height and width: p> span>This is some text. span> span class="inline">This is another text. span> hr> p>Here the list item is used with the "block" value of the display property: p> span class="block">This is some text. span> span class="block">This is another text. span> body> html>
Example of the display property with the «block» value:
html> html> head> title>The title of the document title> style> .block < display: block; border: 1px solid #666; background-color: #eee; padding: 10px; width: 200px; > .hello < border: 1px solid #1c87c9; background-color: #8ebf42; padding: 10px; > style> head> body> h2>Display property example h2> div class="block"> Lorem Ipsum is dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s when an unknown printer took a galley of type and scrambled it to make a type specimen book. div class="hello">HELLO! div> It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. div> body> html>
Example of the display property with the «contents» value:
html> html> head> title>Title of the document title> style> .contents < display: contents; border: 1px solid #666; background-color: #eee; padding: 10px; width: 200px; > .hello < border: 1px solid #1c87c9; background-color: #ccc; padding: 10px; text-align: center; > style> head> body> h2>Display property example h2> div class="contents"> Lorem Ipsum is dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. div class="hello">HELLO! div> It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. div> body> html>
Example of the display property with the «flex» value:
html> html> head> title>Title of the document title> style> #flex < width: 300px; height: 100px; border: 1px solid #c3c3c3; display: -webkit-flex; /* Safari */ -webkit-justify-content: center; /* Safari 6.1+ */ display: flex; justify-content: center; > div < width: 70px; height: 70px; > style> head> body> h2>Display property example h2> p>Here the "display: flex;" is used: p> div id="flex"> div style="background-color: #1c87c9;">1 div> div style="background-color: #666;">2 div> div style="background-color: #8ebf42;">3 div> div> body> html>
Values
Value | Description | Play it |
---|---|---|
inline | Represents an element as an inline element. | Play it » |
block | Represents an element as a block element. | Play it » |
contents | The container disappears, thus making the child elements children of the element the next level up in the DOM. | Play it » |
flex | Represents an element as a block-level-flex container. | Play it » |
grid | Represents an element as a block-level grid container. | Play it » |
inline-block | Represents an element as an inline-level block container. | Play it » |
inline-flex | Represents an element as an inline-level flex container. | Play it » |
inline-grid | Represents an element as an inline-level grid container. | Play it » |
inline-table | Represents an element as an inline-level table. It behaves like an HTML element, but as an inline box, and not as a block-level box. Inside the table box is a block-level context. | Play it » |
list-item | The element behaves like HTML element. | Play it » |
run-in | Represents an element as block or inline according to context. | Play it » |
table | The element behaves like HTML element. | Play it » |
table-caption | The element behaves like HTML element. | Play it » |
table-column-group | The element behaves like HTML element. | Play it » |
table-header-group | The element behaves like HTML element. | Play it » |
table-footer-group | The element behaves like HTML element. | Play it » |
table-row-group | The element behaves like HTML element. | Play it » |
table-cell | The element behaves like HTML element. | Play it » |
table-column | The element behaves like HTML element. | Play it » |
table-row | The element behaves like HTML element. | Play it » |
none | Means that the element won’t be shown at all. | Play it » |
initial | Makes the property use its default value. | Play it » |
inherit | Inherits the property from its parent element. |
Browser support
CSS Layout — The display Property
The display property is the most important CSS property for controlling layout.
The display Property
The display property specifies if/how an element is displayed.
Every HTML element has a default display value depending on what type of element it is. The default display value for most elements is block or inline .
This panel contains a element, which is hidden by default ( display: none ).
It is styled with CSS, and we use JavaScript to show it (change it to ( display: block ).
Block-level Elements
A block-level element always starts on a new line and takes up the full width available (stretches out to the left and right as far as it can).
Examples of block-level elements:
Inline Elements
An inline element does not start on a new line and only takes up as much width as necessary.
This is an inline element inside a paragraph.
Examples of inline elements:
Display: none;
display: none; is commonly used with JavaScript to hide and show elements without deleting and recreating them. Take a look at our last example on this page if you want to know how this can be achieved.
The element uses display: none; as default.
Override The Default Display Value
As mentioned, every element has a default display value. However, you can override this.
Changing an inline element to a block element, or vice versa, can be useful for making the page look a specific way, and still follow the web standards.
Example
Note: Setting the display property of an element only changes how the element is displayed, NOT what kind of element it is. So, an inline element with display: block; is not allowed to have other block elements inside it.
The following example displays elements as block elements:
Example
The following example displays elements as block elements:
CSS display
The CSS display module defines how the CSS formatting box tree is generated from the document element tree and defines properties controlling it.
Reference
Properties
Data types
Guides
Flow layout (display: block, display: inline)
Flexible box layout
- Basic concepts of flexbox
- Aligning items in a flex container
- Controlling ratios of flex items along the main axis
- Mastering wrapping of flex items
- Ordering flex items
- [Relationship of flexbox to other layout methods](/en-US/docs/Web/CSS/CSS_flexible_box_layout/slug: Web/CSS/CSS_flexible_box_layout/Relationship_of_flexbox_to_other_layout_methods)
- Backwards compatibility of flexbox
- Typical use cases of flexbox
Grid layout
- Basic concepts of grid layout
- Relationship of grid layout to other layout methods
- Line-based placement
- Grid template areas
- Layout using named grid lines
- Auto-placement in grid layout
- Box alignment in grid layout
- Grids, logical values and writing modes
- CSS Grid Layout and accessibility
- CSS Grid Layout and progressive enhancement
- Realizing common layouts using grids
Specifications
Browser compatibility
BCD tables only load in the browser
Found a content problem with this page?
This page was last modified on Jul 17, 2023 by MDN contributors.
Your blueprint for a better internet.
MDN
Support
Our communities
Developers
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998– 2023 by individual mozilla.org contributors. Content available under a Creative Commons license.