Baseline Widely available *
The max-block-size
CSS property specifies the maximum size of an element in the direction opposite that of the writing direction as specified by writing-mode
. That is, if the writing direction is horizontal, then max-block-size
is equivalent to max-height
; if the writing direction is vertical, max-block-size
is the same as max-width
.
The other dimension's maximum length is specified using the max-inline-size
property.
This is useful because the max-width
is always used for horizontal sizes and max-height
is always used for vertical sizes, and if you need to set lengths based on the size of your text content, you need to be able to do so with the writing direction in mind.
Any time you would normally use max-height
or max-width
, you should instead use max-block-size
to set the maximum "height" of the content (even though this may not be a vertical value) and max-inline-size
to set the maximum "width" of the content (although this may instead be vertical rather than horizontal). See writing-mode
examples, which show the different writing modes in action.
max-block-size: 150px;
writing-mode: horizontal-tb;
max-block-size: 150px;
writing-mode: vertical-rl;
max-block-size: 20px;
writing-mode: horizontal-tb;
max-block-size: 75%;
writing-mode: vertical-lr;
<section class="default-example" id="default-example">
<div class="transition-all" id="example-element">
This is a box where you can change the maximum block size. <br />This will
limit the size in the block dimension, potentially causing an overflow.
</div>
</section>
#example-element {
display: flex;
flex-direction: column;
background-color: #5b6dcd;
justify-content: center;
color: white;
}
Syntax
/* <length> values */
max-block-size: 300px;
max-block-size: 25em;
max-block-size: anchor-size(--my-anchor self-inline, 250px);
max-block-size: calc(anchor-size(width) / 2);
/* <percentage> values */
max-block-size: 75%;
/* Keyword values */
max-block-size: none;
max-block-size: max-content;
max-block-size: min-content;
max-block-size: fit-content;
max-block-size: fit-content(20em);
/* Global values */
max-block-size: inherit;
max-block-size: initial;
max-block-size: revert;
max-block-size: revert-layer;
max-block-size: unset;
Values
The max-block-size
property's value can be any value that's legal for the max-width
and max-height
properties:
<length>
Defines the max-block-size
as an absolute value.
<percentage>
Defines the max-block-size
as a percentage of the containing block's size in block axis.
none
No limit on the size of the box.
max-content
The intrinsic preferred max-block-size
.
min-content
The intrinsic minimum max-block-size
.
fit-content
Use the available space, but not more than max-content, i.e., min(max-content, max(min-content, stretch))
.
fit-content(<length-percentage>)
Uses the fit-content
formula with the available space replaced by the specified argument, i.e., min(max-content, max(min-content, argument))
.
The values of writing-mode
affect the mapping of max-block-size
to max-width
or max-height
as follows:
writing-mode
max-block-size
is equivalent to horizontal-tb
, lr
, lr-tb
, rl
, rb
, rb-rl
max-height
vertical-rl
, vertical-lr
, sideways-rl
, sideways-lr
, tb
, tb-rl
max-width
Note: The writing-mode
values sideways-lr
and sideways-rl
were removed from the CSS Writing Modes Level 3 specification late in its design process. They may be restored in Level 4.
Note: The writing modes lr
, lr-tb
, rl
, rb
, and rb-tl
are no longer allowed in HTML contexts; they may only be used in SVG 1.x contexts.
max-block-size =Examples Setting max-block-size with horizontal and vertical text
<'max-width'><max-width> =
none |
<length-percentage [0,â]> |
min-content |
max-content |
fit-content( <length-percentage [0,â]> ) |
<calc-size()> |
<anchor-size()><length-percentage> =
<length> |
<percentage><calc-size()> =
calc-size( <calc-size-basis> , <calc-sum> )<anchor-size()> =
anchor-size( [ <anchor-name> || <anchor-size> ]? , <length-percentage>? )<calc-size-basis> =
<size-keyword> |
<calc-size()> |
any |
<calc-sum><calc-sum> =
<calc-product> [ [ '+' | '-' ] <calc-product> ]*<anchor-name> =
<dashed-ident><anchor-size> =
width |
height |
block |
inline |
self-block |
self-inline<calc-product> =
<calc-value> [ [ '*' | / ] <calc-value> ]*<calc-value> =
<number> |
<dimension> |
<percentage> |
<calc-keyword> |
( <calc-sum> )<calc-keyword> =
e |
pi |
infinity |
-infinity |
NaN
In this example, the same text (the opening sentences from Herman Melville's novel Moby-Dick) is presented in both the horizontal-tb
and vertical-rl
writing modes.
Everything else about the two boxes is identical, including the values used for max-block-size
.
The HTML establishes the two <div>
blocks that will be presented with their writing-mode
set using the classes horizontal
or vertical
. Both boxes share the standard-box
class, which establishes coloring, padding, and their respective values of max-block-size
.
<p>Writing mode <code>horizontal-tb</code> (the default):</p>
<div class="standard-box horizontal">
Call me Ishmael. Some years agoânever mind how long preciselyâhaving little or
no money in my purse, and nothing particular to interest me on shore, I
thought I would sail about a little and see the watery part of the world. It
is a way I have of driving off the spleen and regulating the circulation.
</div>
<p>Writing mode <code>vertical-rl</code>:</p>
<div class="standard-box vertical">
Call me Ishmael. Some years agoânever mind how long preciselyâhaving little or
no money in my purse, and nothing particular to interest me on shore, I
thought I would sail about a little and see the watery part of the world. It
is a way I have of driving off the spleen and regulating the circulation.
</div>
CSS
The CSS defines three classes. The first, standard-box
, is applied to both boxes, as seen above. It provides standard styling including the minimum and maximum block sizes, font size, and so forth.
After that come the classes horizontal
and vertical
, which add the writing-mode
property to the box, with the value set to horizontal-tb
or vertical-rl
depending on which class is used.
.standard-box {
padding: 4px;
background-color: #abcdef;
color: black;
font:
16px "Open Sans",
"Helvetica",
"Arial",
sans-serif;
max-block-size: 160px;
min-block-size: 100px;
}
.horizontal {
writing-mode: horizontal-tb;
}
.vertical {
writing-mode: vertical-rl;
}
Result Specifications Browser compatibility See also
max-width
and max-height
max-inline-size
writing-mode
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4