Spec-Zone.ru › CSS

Свойство CSS `max-block-size`

Базовая доступность Широко доступно

Эта функция хорошо зарекомендовала себя и работает на множестве устройств и в различных версиях браузеров. Она доступна во всех браузерах с сентября 2021 года.

Свойство max-block-size CSS задаёт максимальный размер элемента в направлении, противоположном направлению письма, заданному свойством writing-mode. Иными словами, если направление письма горизонтальное, то max-block-size эквивалентно свойству max-height; если направление письма вертикальное, max-block-size эквивалентно свойству max-width.

Максимальная длина по другому измерению задаётся с помощью свойства max-inline-size.

Это полезно, поскольку max-width всегда используется для горизонтальных размеров, а max-height — для вертикальных. Если вам нужно задавать длины на основе размера текстового содержимого, необходимо учитывать направление письма.

Вместо того чтобы использовать max-height или max-width, следует использовать max-block-size для задания максимальной «высоты» содержимого (даже если это значение не является вертикальным) и max-inline-size для задания максимальной «ширины» содержимого (хотя она может быть вертикальной, а не горизонтальной). См. примеры writing-mode, демонстрирующие различные режимы письма.

Попробуйте

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;
}

Синтаксис

/* <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;

Значения

Значением свойства max-block-size может быть любое значение, допустимое для свойств max-width и max-height:

<length>
Задаёт max-block-size в виде абсолютного значения.
<percentage>
Задаёт max-block-size в процентах от размера содержащего блока по блочной оси.
none
Размер блока не ограничен.
max-content
Внутренний предпочтительный max-block-size.
min-content
Внутренний минимальный max-block-size.
fit-content
Использует доступное пространство, но не больше, чем max-content, то есть min(max-content, max(min-content, stretch)).
fit-content(<length-percentage>)
Использует формулу fit-content, заменяя доступное пространство указанным аргументом, то есть min(max-content, max(min-content, argument)).

Как writing-mode влияет на направление

Значения writing-mode влияют на соответствие между max-block-size и max-width или max-height следующим образом:

Значения writing-mode max-block-size эквивалентно
horizontal-tb, lr, lr-tb, rl, rb, rb-rl max-height
vertical-rl, vertical-lr, sideways-rl, sideways-lr, tb, tb-rl max-width

Примечание: Значения sideways-lr и sideways-rl для writing-mode были исключены из спецификации CSS Writing Modes Level 3 на позднем этапе её разработки. Возможно, они будут восстановлены в Level 4.

Примечание: Режимы письма lr, lr-tb, rl, rb и rb-tl больше не разрешены в контекстах HTML; их можно использовать только в контекстах SVG 1.x.

Формальное определение

Исходное значение none
Применяется к так же, как width и height
Наследуется нет
Проценты block-size содержащего блока
Вычисленное значение так же, как max-width и max-height
Тип анимации $1$, <a href="/en-US/docs/Web/CSS/Reference/Values/percentage#interpolation" title="Values of the <percentage> CSS data type are interpolated as real, floating-point numbers.">percentage</a> or calc();

Формальный синтаксис

max-block-size = 
  <'max-width'>

Примеры

Задание max-block-size для горизонтального и вертикального текста

В этом примере один и тот же текст (первые предложения романа «Моби Дик» Германа Мелвилла) представлен в режимах письма horizontal-tb и vertical-rl.

Все остальные параметры двух блоков совпадают, включая значения, используемые для max-block-size.

HTML

В HTML создаются два блока <div>, для которых задаётся свойство writing-mode с помощью классов horizontal или vertical. Оба блока имеют общий класс standard-box, который задаёт цвета и отступы, а также соответствующие значения 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

В CSS определены три класса. Первый, standard-box, применяется к обоим блокам, как показано выше. Он задаёт стандартные стили, в том числе минимальные и максимальные размеры по блочной оси, размер шрифта и прочее.

Затем идут классы horizontal и vertical, которые добавляют блоку свойство writing-mode со значением horizontal-tb или vertical-rl в зависимости от используемого класса.

.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;
}

Результат

Спецификации

Спецификация
CSS Logical Properties and Values Module Level 1
# propdef-max-block-size
CSS Box Sizing Module Level 3
# sizing-values

Совместимость с браузерами

Компьютеры Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android WebView на iOS
max-block-size
57
79
41
44
12.1
57
41
43
12.2
5.0
57
12.2
anchor-size
125
125
147
111
26
125
147
83
26
27.0
125
26
fit-content
57
79
94
44
12.1
57
94
43
12.2
5.0
57
12.2
fit-content_function
Нет
Нет
91
Нет
Нет
Нет
Нет
Нет
Нет
Нет
Нет
Нет
max-content
57
79
66
41
44
12.1
57
66
41
43
12.2
5.0
57
12.2
min-content
57
79
66
41
44
12.1
57
66
41
43
12.2
5.0
57
12.2
none
57
79
41
44
12.1
57
41
43
12.2
7.0
57
12.2
stretch
138
138
Нет
122
27
138
Нет
91
27
30.0
138
27

См. также

  • Соответствующие физические свойства: max-width и max-height
  • Задание максимального размера по другому направлению: max-inline-size
  • writing-mode

© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Properties/max-block-size

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API