Властивість CSS transform

елемент
Властивість CSS transform дозволяє візуально маніпулювати елементом, буквально трансформуючи його зовнішній вигляд.

Властивість transform з відповідними префіксами для кроссбраузерності:

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

transform

Повертає елемент за годинниковою стрілкою від поточної позиції (або щодо точки трансформації, задається властивістю transform-origin).

властивість

Впливає розмір елемента. Ці значення, що масштабуються, є "безрозмірними", по суті будучи множниками. Для вказаного вище синтаксису, якщо ви використовуєте одне значення, то елемент розтягнеться в обох напрямках. Отже, scale(2) означає: "зроби елемент удвічі більше". Якщо використовувати два параметри, перший параметр "розтягує" елемент по горизонталі, другий - по вертикалі. Або ви можете бути більш конкретним:

Нахиляє елемент. Як перетворити прямокутник на паралелограм.

елемент

Тут не існує укороченої функції, використовуйте дві наведені вище функції.

Зміщує елемент вгору або вниз. Чому, в такому разі, не використовувати top/left/bottom/right? Виходячи з підтримки браузерами, краще використовувати звичайне позиціонування, проте для переходів та анімації краще використовувати transform. Як бонус, translate використовує апаратне прискорення.

Обидва значення – це відстань, наприклад 10px або 2.4em. Перший параметр зрушує елемент праворуч (негативне - вліво). Друге значення зсуває елемент вниз (негативне вгору). Ви можете бути більш конкретним:

Функція матриця перетвореньможе бути використана для поєднання всіх трансформацій в одне. Можна розглядати, як укорочений синтаксис для всіх функцій, проте погано віриться, що його реально написати від руки. Існують інструменти, такі як TheMatrixResolutions, які можуть сконвертувати групу трансформацій у просту декларацію matrix. Очевидно в деяких ситуаціях це сприятиме зменшення розміру файлу, але така мікро оптимізація не варто витраченого на неї часу.

Такого виду правило:

Може бути записано так:

Стаття на цю тему написана простою мовою: htmlbook.ru/blog/matritsa-preobrazovanii

3D Трансформації

Більшість наведених вище властивостей мають 3D версії:

Третє значення translate3d або значення translateZ переміщає елемент до спостерігача, негативне - від спостерігача.

Третє значення в scale3d або значення в scaleZ впливає масштабування вздовж осі Z

rotateX і rotateY будуть обертати елемент у 3D просторі навколо соотв-х осей. rotate3d дозволяє вказати точку в тривимірному просторі щодо якої відбудеться поворот.

Спосіб програмного опису 3D трансформації у 4Х4 сітці. Або "matrix3d ​​задає тривимірне перетворення як однорідну матрицю розміром 4?4 з шістнадцятьма значеннями в порядку стовпців".