Кратко
СкопированоСвойство transform
определяет, как будут вести себя потомки элемента в 3D-пространстве при трансформации.
Пример
Скопировано<div class="parent"> <div class="child"></div></div>
<div class="parent"> <div class="child"></div> </div>
.parent { transform-style: preserve-3d;}.child { transform: rotateY(-30deg);}
.parent { transform-style: preserve-3d; } .child { transform: rotateY(-30deg); }
Как понять
СкопированоДопустим, есть родительский элемент, у которого есть потомки. Если задать родительскому элементу свойство transform
со значением preserve
, то это позволит применять к дочерним элементам нормальные 3D-трансформации. При нормальных 3D-трансформациях дочерний элемент сможет, допустим, при повороте пересечь родительский элемент. Если задать значение flat
, то дочерние элементы всегда будут лежать в плоскости родителя и не смогут пересечь его ни при каких поворотах, масштабировании и прочих условиях.
Получается, что при transform
каждый дочерний элемент получает независимую от родителя плоскость, к которой можно применять 3D-трансформации. При transform
существует ровно одна плоскость — плоскость родителя, и никакие трансформации не могут заставить дочерний элемент выйти из этой плоскости.
Как пишется
Скопировано.parent { transform-style: flat; /* По умолчанию */ transform-style: preserve-3d;}
.parent { transform-style: flat; /* По умолчанию */ transform-style: preserve-3d; }
Подсказки
Скопировано💡 Свойство transform
не наследуется. Нужно индивидуально задавать его для каждого следующего уровня вложенности.
На практике
Скопированосоветует Скопировано
🛠 Если нам нужно просто повернуть какой-то элемент в 3D-пространстве, то можно оставить transform
(либо вообще не задавать это свойство). Элемент всё равно будет поворачиваться, к нему будет применяться перспектива, всё будет выглядеть красиво. transform
нужно задавать, когда мы хотим применять 3D-трансформации и к родителю, и к потомкам, и при этом учитывать их визуальное взаимодействие. Классическим примером такой ситуации является куб, собранный из шести элементов-сторон.