Рис. 4.07. В дизайне блога Panic Software используются небольшие CSS3– повороты, чтобы добавить реалистичности
Рис. 4.08. Без поворота блог по-прежнему выглядит замечательно
Повернутое Солнце
Другой хороший пример подходящего использования CSS-преобразований – сайт Outside , прекрасного приложения о погоде для iPhone (рис. 4.09).
Рис. 4.09. Outside, приложение для iPhone, использует rotate, чтобы вращать Солнце
В самом верху страницы показывается изображение Солнца (рис. 4.10), которое вращается на 360° с помощью преобразования rotate
. (В этом случае JavaScript используется для анимации поворота в браузерах, работающих на отличном от WebKit движке, но в шестой главе мы поговорим об анимациях, построенных на чистом CSS.) Это изящное улучшение дизайна просто и уместно, так как оно имитирует ту же анимацию Солнца, которая появляется в самом приложении на iPhone. Солнце не вращается в браузерах, которые не поддерживают CSS-преобразования, и это нормально. Ничто не выглядит неработающим в неанимированной версии сайта.
Преобразования в сочетании с переходами в CSS могут помочь поддержать общее сообщение, которое несет дизайн, создаваемый для веба, и это прекрасный инструмент для нас, веб-дизайнеров.
Рис. 4.10. Графика на сайте приложения Outside оживает с помощью позиционирования и вращения на CSS
Кручение (skew)
Преобразование skew берет координаты x, y и прокручивает элемент. Например, если мы хотим применить кручение в нашей фотогалерее, пишется следующий CSS-код. Параметры кручения: –5 градусов по координате x, 30 градусов по координате y (рис. 4.11):
Рис. 4.11. Преобразование skew деформирует фотографию
ul.gallery li a: hover img {
-webkit-transform: scale(1.5) skew(-5deg, 30deg);
-moz-transform: scale(1.5) skew(-5deg, 30deg);
-o-transform: scale(1.5) skew(-5deg, 30deg);
transform: scale(1.5) skew(-5deg, 30deg);
}
Как и rotate
, преобразование skew
принимает положительные и отрицательные значения углов. Также можно использовать одно значение и для x, и для y (рис. 4.12):
Рис. 4.12. Закручивание фотографии на 30 градусов по обеим осям, x и y
ul.gallery li a: hover img {
-webkit-transform: scale(1.5) skew(30deg);
-moz-transform: scale(1.5) skew(30deg);
-o-transform: scale(1.5) skew(30deg);
transform: scale(1.5) skew(30deg);
}
Разумеется, я осознаю, что полученный результат выглядит не слишком привлекательно, и, признаться, я и сам не использую skew
слишком часто; однако я убежден, что существуют интересные способы применения этого преобразования.
Например, skew
может использоваться на текстовых блоках, чтобы создавать трехмерные визуализации на основе семантической разметки и CSS3 (рис. 4.13 и 4.14).
Рис. 4.13. Демо Пола Хэйза использует skew и переходы для создания трехмерных кубов из простых кусков гипертекста (http://www.paulrhayes.com/experiments/cube/multiCubes.html)
Рис. 4.14. The Web Trend Map использует skew, чтобы разместить аватары на изометрической сетке, таким образом создавая уникальные визуализации данных на основе плоских элементов (http://www.webtrendmap.com/)
Сдвиг (translate)
Наконец, преобразование translate
позволяет сдвигать элемент относительно его обычного положения на экране, используя координаты x, y.
Например, если в состоянии hover хочется сдвинуть изображение с его начального положения, можно применить преобразование translate
. Применив переход, такое движение можно плавно анимировать.
Представленный ниже код сдвинет изображение на 20px вправо и на 40px вниз относительно изначального положения (рис. 4.15):
Рис. 4.15. Использование преобразования translate для сдвига изображения в состоянии: hover