New: two values for the CSS display property

Recently, the CSS display property started accepting two values. The first is the display-outside value which is followed by the display-inside value. This change was released with Firefox 70 in Oct 2019 according to the release notes.

The display-outside value represents the elements role in flow layout. Standard valid values are block and inline. Block means line breaks are created before and after the element. Inline means no line breaks are made. There is an experimental value, run-in, which basically chooses block or inline depending on the surrounding elements.

The display-inline value indicates how content within the element should be displayed. For example: table, flex, and grid. The values flow, flow-root, and ruby are also valid here but perhaps not as familiar. The flow value is experimental means a block generated unless the display-outside value is inline or run-in, in which case an inline box is used.

Overall, I believe the change to a display property which sets both inside and outside display behaviour will be more flexible and makes more sense.

.flex-inline {
  display: inline-flex;
}

Becomes:

.flex-inline {
  display: inline flex;
}

A similar paradigm shift occurs for inline-table and inline-grid.

To me, that is more pleasing to the eye. Now that I see it, inline-flex was actually doing two separate jobs – 1. setting the outside display value to inline and 2. settings the inside display value to flex – setting these values separately is a cleaner solution. This is a good development for the CSS display property.

The MDN Docs on the display property do a good job covering the topic in detail.

Color scheme: