Перспектива

Перспектива (Perspective) в CSS використовується для створення 3D-ефектів на веб-сайтах. Вона дозволяє визначити точку огляду для 3D-трансформацій, таких як обертання, нахил, зсув і т. д. Перспектива дає відчуття глибини та тривимірності, що може бути корисним для створення реалістичних анімацій і інтерактивних 3D-елементів.

Властивість perspective вказує відстань від очей глядача до площини, на якій відображається 3D-елемент. Чим більше значення perspective, тим більше враження глибини.

У перспективі всі предмети із віддаленням від глядача сходяться в одну точку.

Поворот вздовж осі X та Y

Функції rotateX(angle) та rotateY(angle) - це 3D трансформації, які дозволяють обертати елемент навколо його горизонтальної (ось X) або вертикальної (ось Y) вісі в 3D-просторі.

transform: rotateX(45deg); /* Обертання навколо осі X на 45 градусів */
transform: rotateY(-30deg); /* Обертання навколо осі Y на -30 градусів */

Але без перспективи ми побачимо цей ефект як на двовимірному кресленні - звуження, або розширення елемента.

Функція perspective()

Функція perspective() використовується для задання перспективи для 3D-трансформацій. Вона визначає, наскільки далеко розташована площина перспективи від глядача (користувача) та впливає на відображення елементів при застосуванні 3D-трансформацій.

perspective(distance);

distance: Відстань до площини перспективи. Зазвичай це значення в пікселях, але може бути вказано і в інших одиницях вимірювання.

Порефакторимо вище написаний код із врахуванням перспективи.

/* Обертання навколо осі X на 45 градусів */
transform: perspective(100px) rotateX(45deg);
/* Обертання навколо осі Y на -30 градусів */
transform: perspective(100px) rotateY(-30deg);

У разі використання трансформації відразу на декількох елементах, у кожного створюється своя сцена і перспектива, тобто глядач ніби дивиться на кожен елемент з різної точки.

Властивість perspective

Властивість perspective дозволяє створити однакову перспективу цілій групі елементів на сцені. Ця властивість задається спільному контейнеру групи елементів (сцені), у нашому випадку це div з класом container. Ну і даму трансформацію потрібно прописати безпосереднім дітям.

Last updated