inline-size
- логическое свойство, определяющее ширину элемента, когда режим письма горизонтальный, или высоту элемента, когда writing-mode
он вертикальный.
.element ( inline-size: 700px; writing-mode: vertical-lr; )
Как вы могли догадаться по приведенному выше примеру, writing-mode
свойство изменяет ориентацию текста и макета на 90 градусов. Есть две основные причины, по которым вы захотите это сделать.
Во-первых, в качестве варианта дизайна вы можете отобразить вертикальный текст на элементе, например в заголовке:
Вторая - и, вероятно, самая важная - причина, по которой вы можете захотеть использовать логическое свойство, такое как встроенный размер, заключается в том, чтобы обеспечить интернационализацию на сайте. Многие восточноазиатские письменности, такие как китайский, японский и корейский, могут быть написаны горизонтально или вертикально. Используя логические свойства, мы можем обеспечить правильное направление размеров элементов в зависимости от режима письма пользователя.
У Джен Симмонс есть статья и презентация, в которых подробно рассматриваются режимы написания CSS.
Почему мы не можем просто использовать эту надежную width
собственность?
Вы можете! Однако вы можете обратиться к нему, inline-size
если вас беспокоит изменение контекста вашего контента в зависимости от языка пользователя. width
- физический размер, поэтому при изменении режима письма элемент сохраняет свою ширину по горизонтали, нарушая макет, когда он настроен как вертикальный. Логические свойства, например inline-size
, могут реагировать на эти изменения и применять ширину в правильном направлении.
Например, если элемент абзаца имеет ширину 400 пикселей при использовании ширины, при установке режима письма vertical-lr
содержимое будет вращаться, изменяя макет, но этот абзац останется шириной 400 пикселей вместо 400 пикселей в высоту.
Видеть, что? Что ж, inline-size
шустро! Он меняется от ширины к высоте в зависимости от writing-mode
значения.
Синтаксис
inline-size:
- Исходный:
auto
- Применимо к: так же, как
height
иwidth
- Унаследовано: нет
- Проценты: по соответствующему физическому объекту
- Вычисленное значение: то же, что
height
иwidth
- Тип анимации: по типу вычисляемого значения
Значения
/* Length values */ inline-size: 250px; inline-size: 5rem;
/* Percentage values */ inline-size: 75%;
/* Keyword values */ inline-size: auto; inline-size: fit-content(5rem); inline-size: max-content; inline-size: min-content;
/* Global values */ inline-size: inherit; inline-size: initial; inline-size: unset;
auto
: Встроенный размер элемента будет соответствовать размеру его родительского элемента.fit-content()
: Эта функция позволяет контейнеру увеличиваться до желаемого размера, а затем выполнять обтекание текстом, эффективно ограничивая содержимое предоставленным значением размера. Его можно использовать для контейнеров Grid, а также для определения размеров ящиков, и, хотя caniuse демонстрирует сильную поддержку функции со встроенным размером, наше тестирование было менее убедительным. Это может быть связано со статусом рабочего проекта спецификации модуля калибровки ящиков уровня 3.max-content
: Внутренняя предпочтительная ширина, означающая, что элемент растягивает текст до тех пор, пока это возможно, и заставит поле быть таким же длинным, как и текст.min-content
: Внутренняя минимальная ширина, означающая, что поле элемента уменьшается до минимального размера его содержимого. Поле будет размером с самую большую строку текста.
Демо
Поддержка браузера
IE | Край | Fire Fox | Хром | Сафари | Опера |
---|---|---|---|---|---|
Нет | 79+ | 41+ | 57 | 12.1+ | 44+ |
Android Chrome | Android Firefox | Браузер Android | iOS Safari | Opera Mobile |
---|---|---|---|---|
85+ | 79+ | 81+ | 12.2+ | 59+ |
Обратите внимание, что поддержка использования следующих функций может отличаться от поддержки свойства:
fit-content()
max-content()
min-content()
Дополнительная информация
- Спецификация логических свойств и значений CSS уровня 1 (проект редакции)
- Документация MDN
- Логические свойства CSS` (CSS-Tricks)
- Понимание логических свойств и значений (Smashing Magazine)
- Логические свойства CSS (Адриан Роселли)
- Минимальный и максимальный размер содержимого в CSS Grid (Джен Симмонс, видео)
- Двунаправленные горизонтальные правила в CSS (Хусейн Аль Хаммад)