The block-size CSS property defines the size of an element's block along the block axis. If the writing-mode is horizontal, it corresponds to the height; if the writing mode is vertical, it corresponds to the width. A related property is inline-size, which defines the other dimension of the element.
block-size
Baseline Widely available *
This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020.
* Some parts of this feature may have varying levels of support.
Try it
block-size: 150px; writing-mode: horizontal-tb;
block-size: 150px; writing-mode: vertical-rl;
block-size: auto; writing-mode: horizontal-tb;
block-size: auto; 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 block-size.
</div>
</section>
#example-element {
display: flex;
flex-direction: column;
background-color: #5b6dcd;
justify-content: center;
color: #ffffff;
}
Syntax
/* <length> values */ block-size: 300px; block-size: 25em; block-size: anchor-size(height); block-size: calc(anchor-size(--myAnchor block) * 0.75); /* <percentage> values */ block-size: 75%; /* Keyword values */ block-size: max-content; block-size: min-content; block-size: fit-content; block-size: fit-content(20em); block-size: auto; /* Global values */ block-size: inherit; block-size: initial; block-size: revert; block-size: revert-layer; block-size: unset;
Values
Formal definition
| Initial value | auto |
|---|---|
| Applies to | same as width and height
|
| Inherited | no |
| Percentages | block-size of containing block |
| Computed value | same as width and height
|
| Animation type | a length, percentage or calc(); |
Formal syntax
block-size =
<'width'>
<width> =
auto |
<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
Examples
Block size with vertical text
HTML
<p class="exampleText">Example text</p>
CSS
.exampleText {
writing-mode: vertical-rl;
background-color: yellow;
block-size: 200px;
}
Result
Specifications
| Specification |
|---|
| CSS Logical Properties and Values Level 1 # dimension-properties |
| CSS Box Sizing Module Level 4 # sizing-values |
Browser compatibility
| Desktop | Mobile | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | WebView Android | |
block-size |
578 | 7979 | 41 | 4415 | 12.15.1 | 5718 | 41 | 4314 | 12.25 | 5.0 | 574.4 |
anchor-size |
125 | 125 | No | 111 | No | 125 | No | 83 | No | 27.0 | 125 |
fit-content |
57 | 79 | 9441 | 44 | 12.1 | 57 | 9441 | 43 | 12.2 | 7.0 | 57 |
fit-content_function |
No | No | 91 | No | No | No | No | No | No | No | No |
max-content |
57 | 79 | 6641 | 44 | 12.1 | 57 | 6641 | 43 | 12.2 | 5.0 | 57 |
min-content |
57 | 79 | 6641 | 44 | 12.1 | 57 | 6641 | 43 | 12.2 | 5.0 | 57 |
See also
- The mapped physical properties:
widthandheight writing-mode
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/block-size