CSS overflow-inline and overflow-block Explained
The CSS overflow-inline and overflow-block
properties are logical properties that manage how an element handles
content that exceeds its boundaries along the inline and block
dimensions. Unlike physical properties such as overflow-x
and overflow-y, which are anchored to fixed screen
directions, these logical properties adapt dynamically based on the
document's writing-mode and direction. This
article explains how they function, their acceptable values, and why
they are essential for modern web design and internationalization.
Physical vs. Logical Dimensions
Traditional CSS uses physical dimensions:
overflow-xcontrols horizontal overflow (left to right).overflow-ycontrols vertical overflow (top to bottom).
Logical properties shift the focus to the flow of content:
- Inline dimension: The direction in which text runs within a line. In standard horizontal English (left-to-right), the inline axis is horizontal. In vertical writing modes (such as vertical Japanese), the inline axis runs vertically.
- Block dimension: The direction in which blocks or lines of text are stacked. In standard horizontal English, the block axis is vertical. In vertical writing modes, the block axis runs horizontally.
What is
overflow-inline?
The overflow-inline property defines how clipped,
scrollable, or visible content should be handled along the inline
axis.
- In
writing-mode: horizontal-tb(default Latin, Arabic, Hebrew, etc.),overflow-inlinemaps directly tooverflow-x. - In
writing-mode: vertical-rlorvertical-lr(such as traditional East Asian scripts),overflow-inlinemaps tooverflow-y.
.card {
overflow-inline: auto; /* Adds horizontal scrolling in horizontal-tb, vertical scrolling in vertical modes */
}What is
overflow-block?
The overflow-block property determines overflow behavior
along the block axis.
- In
writing-mode: horizontal-tb,overflow-blockmaps directly tooverflow-y. - In vertical writing modes,
overflow-blockmaps directly tooverflow-x.
.card {
overflow-block: hidden; /* Clips content vertically in horizontal-tb, horizontally in vertical modes */
}Supported Values
Both properties accept the standard overflow keyword
values:
visible: Content is not clipped and renders outside the element's box padding edge.hidden: Overflowing content is clipped and cannot be scrolled programmatically via user interaction.clip: Content is clipped at the element's overflow clip edge, preventing all scrolling, including programmatic scrolling.scroll: Content is clipped, and scrollbars are always displayed along the specified axis, regardless of whether content overflows.auto: Scrollbars appear only when the content exceeds the element’s boundaries along the specified axis.
Why Use Logical Overflow Properties?
- Internationalization (i18n): When adapting
interfaces for multilingual audiences, changing the
writing-modefrom horizontal to vertical or altering text direction does not require rewriting overflow rules. - Component Reusability: Design system components can be placed in different writing contexts without hardcoding horizontal or vertical scroll behaviors.
- Consistency with Modern CSS: These properties align
with the CSS Logical Properties and Values specification, complementing
properties like
margin-inline,padding-block, andinset-inline.