Свойство CSS `transform-box`
Базовая поддержка Недавно стало доступно
Эта функция работает на новейших устройствах и в последних версиях браузеров. Она может не работать на старых устройствах и в старых версиях браузеров. Функция доступна во всех браузерах с апреля 2024 года.
Свойство transform-box CSS определяет блок макета, относительно которого задаются свойства transform, отдельные свойства трансформации translate, scale и rotate, а также свойство transform-origin.
Синтаксис
/* Keyword values */ transform-box: content-box; transform-box: border-box; transform-box: fill-box; transform-box: stroke-box; transform-box: view-box; /* Global values */ transform-box: inherit; transform-box: initial; transform-box: revert; transform-box: revert-layer; transform-box: unset;
Значением свойства transform-box служит одно из перечисленных ниже ключевых слов.
Значения
-
content-box - В качестве опорного блока используется блок содержимого. Опорным блоком для
<table>является рамка его блока-обёртки таблицы, а не блок самой таблицы. -
border-box - В качестве опорного блока используется рамка. Опорным блоком для
<table>является рамка его блока-обёртки таблицы, а не блок самой таблицы. -
fill-box - В качестве опорного блока используется ограничивающая рамка объекта. Для элементов, связанных с блоком макета CSS, действует как
content-box. -
stroke-box - В качестве опорного блока используется ограничивающая рамка обводки. Для элементов, связанных с блоком макета CSS, действует как
border-box. -
view-box - В качестве опорного блока используется ближайшая область просмотра SVG. Если для элемента SVG, создающего область просмотра, задан атрибут
viewBox, опорный блок располагается в начале системы координат, заданной атрибутомviewBox, а его размеры задаются значениями ширины и высоты атрибутаviewBox. Для элементов, связанных с блоком макета CSS, действует какborder-box.
Формальное определение
| Начальное значение | view-box |
|---|---|
| Применяется к | трансформируемым элементам |
| Наследуется | нет |
| Вычисленное значение | как задано |
| Тип анимации | дискретный |
Формальный синтаксис
transform-box =
content-box |
border-box |
fill-box |
stroke-box |
view-box
Примеры
Область действия transform-origin в SVG
В этом примере у нас есть SVG:
<svg id="svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 50 50">
<g>
<circle id="center" fill="red" r="1" transform="translate(25 25)" />
<circle id="boxcenter" fill="blue" r=".5" transform="translate(15 15)" />
<rect
id="box"
x="10"
y="10"
width="10"
height="10"
rx="1"
ry="1"
stroke="black"
fill="none" />
</g>
</svg>
В CSS задана анимация, использующая трансформацию для бесконечного вращения прямоугольника. transform-box: fill-box используется, чтобы поместить transform-origin в центр ограничивающей рамки, благодаря чему прямоугольник вращается на месте. Без этого точкой начала трансформации был бы центр холста SVG, и эффект получился бы совершенно другим.
svg {
width: 80vh;
border: 1px solid #d9d9d9;
position: absolute;
margin: auto;
inset: 0;
}
#box {
transform-origin: 50% 50%; /* anything other than `0 0` to see the effect */
transform-box: fill-box;
animation: rotate-box 3s linear infinite;
}
@keyframes rotate-box {
to {
transform: rotate(360deg);
}
}
Спецификации
| Спецификация |
|---|
| Модуль CSS Transforms, уровень 1 # transform-box |
Совместимость с браузерами
| Компьютеры | Мобильные устройства | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome для Android | Firefox для Android | Opera для Android | Safari в iOS | Samsung Internet | WebView для Android | WebView в iOS | |
transform-box |
64 |
79 |
55 |
51 |
11 |
64 |
55 |
47 |
11 |
9.0 |
64 |
11 |
border-box |
118 |
118 |
55 |
104 |
11 |
118 |
55 |
79 |
11 |
25.0 |
118 |
11 |
content-box |
118 |
118 |
125 |
104 |
13.1 |
118 |
125 |
79 |
13.4 |
25.0 |
118 |
13.4 |
fill-box |
64 |
79 |
55 |
51 |
11 |
64 |
55 |
47 |
11 |
9.0 |
64 |
11 |
stroke-box |
118 |
118 |
125 |
104 |
13.1 |
118 |
125 |
79 |
13.4 |
25.0 |
118 |
13.4 |
view-box |
64 |
79 |
55 |
51 |
11 |
64 |
55 |
47 |
11 |
9.0 |
64 |
11 |
См. также
- Использование трансформаций CSS
-
transform,transform-origin - Отдельные свойства трансформации:
© 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/transform-box