Преобразования CSS
Преобразования CSS
В главе 22, ведя разговор о канве и программном рисовании на ней, мы узнали о преобразованиях системы координат. С помощью особых расширений CSS мы можем проделать аналогичные действия над любым элементом Web-страницы: сместить его, повернуть, растянуть или сжать.
Для указания, какие именно преобразования следует выполнить над элементом Web-страницы, служат расширения CSS — moz-transform (Firefox), — o-transform (Opera) и — webkit-transform (Web-обозреватели на программном ядре Webkit):
— moz-transform|-o-transform|-webkit-transform: <преобразование>
Доступных преобразований не так уж и много. Сейчас мы их рассмотрим. Преобразование rotate позволяет повернуть элемент Web-страницы на указанный угол по часовой стрелке:
rotate(<угол>)
Значение угла может быть задано в трех единицах измерения: градусах, радианах и градах. Если требуется указать угол в радианах, после самого числового значения угла ставят обозначение deg, в радианах — rad, в градах — grad. При этом между числом и обозначением единицы измерения угла не должно быть пробелов.
Здесь мы поворачиваем контейнер cheader на 3,14 радиан (примерно 180?):
#cheader { — moz-transform: rotate(3.14rad);
— o-transform: rotate(3.14rad);
— webkit-transform: rotate(3.14rad) }
А здесь будет выполнен поворот контейнера cheader на 30?:
#cheader { — moz-transform: rotate(30deg);
— o-transform: rotate(30deg);
— webkit-transform: rotate(30deg) }
Преобразование scale позволяет изменить масштаб элемента Web-страницы по горизонтали и вертикали, растянув его или сжав:
scale(<масштаб 1>[, <масштаб 2>])
Если указано одно значение, оно задает масштаб и по горизонтали, и по вертикали. Если указаны два значения, первое задает масштаб по горизонтали, второе — по вертикали. Значения больше 1 задают увеличение масштаба (растяжение), а значения меньше 1 — уменьшение (сжатие); значение 1 оставляет масштаб без изменений.
Здесь увеличиваем масштаб контейнера cheader вдвое по горизонтали и вертикали, тем самым растягивая его:
#cheader { — moz-transform: scale(2);
— o-transform: scale(2);
— webkit-transform: scale(2) }
А здесь увеличиваем масштаб контейнера cheader вдвое по горизонтали и уменьшаем его вдвое по вертикали:
#cheader { — moz-transform: scale(2, 0.5);
— o-transform: scale(2, 0.5);
— webkit-transform: scale(2, 0.5) }
Преобразования scaleX и scaleY позволяют изменить масштаб элемента Web-страницы, соответственно, только по горизонтали и только по вертикали:
scaleX|scaleY(<масштаб>)
#cheader { — moz-transform: scaleX(2);
— o-transform: scaleX(2);
— webkit-transform: scaleX(2) }
Преобразование skew позволяет сдвинуть элемент Web-страницы по горизонтальной и вертикальной оси на заданный угол, тем самым "скособочив" его:
skew(<угол 1>[, <угол 2>])
Если указано одно значение, оно задает угол сдвига и по горизонтальной, и по вертикальной оси. Если указаны два значения, первое задает угол сдвига по горизонтальной, второе — по вертикальной оси. Углы могут быть заданы в любых единицах измерения, описанных в начале этого раздела.
Сдвигаем контейнер cheader по горизонтальной оси на 10?. По вертикальной оси он сдвинут не будет, поскольку мы задали угол сдвига 0?:
#cheader { — moz-transform: skew(10deg, 0deg);
— o-transform: skew(10deg, 0deg);
— webkit-transform: skew(10deg, 0deg) }
Преобразования skewX и skewY позволяют сдвинуть элемент Web-страницы, соответственно, только по горизонтальной и только по вертикальной оси.
Пример:
skewX|skewY(<угол>)
#cheader { — moz-transform: skewX(10deg);
— o-transform: skewX(10deg);
— webkit-transform: skewX(10deg) }
Преобразование translate позволяет сместить элемент Web-страницы по горизонтальной и вертикальной оси на заданное расстояние:
translate(<расстояние 1>[, <расстояние 2>])
Если указано одно значение, оно задает расстояние для смещения и по горизонтальной, и по вертикальной оси. Если указаны два значения, первое задает расстояние для смещения по горизонтальной, второе — по вертикальной оси. Расстояния могут быть заданы в любых единицах измерения, поддерживаемых CSS.
Смещаем контейнер cheader на 5 мм по горизонтальной оси и на 2 мм по вертикальной:
#cheader { — moz-transform: translate(5mm, 2mm);
— o-transform: translate(5mm, 2mm);
— webkit-transform: translate(5mm, 2mm) }
Преобразования translateX и translateY позволяют сместить элемент Web-страницы, соответственно, только по горизонтальной и только по вертикальной оси.
Смещаем контейнер cheader на 2 мм по вертикальной оси:
translateX|translateY(<расстояние>)
#cheader { — moz-transform: translateY(2mm);
— o-transform: translateY(2mm);
— webkit-transform: translateY(2mm) }
Мы можем подвергнуть элемент Web-страницы сразу нескольким преобразованиям. Для этого следует записать эти преобразования одно за другим, разделив их пробелами. Преобразования будут применяться к элементу в том порядке, в котором они записаны.
Пример:
#cheader { — moz-transform: skewX(10deg) translateY(2mm);
— o-transform: skewX(10deg) translateY(2mm);
— webkit-transform: skewX(10deg) translateY(2mm) }
Здесь мы подвергаем контейнер cheader сначала сдвигу по горизонтальной оси на 10?, а потом — смещению по вертикальной оси на 2 мм.
По умолчанию все преобразования выполняются относительно центра элемента Web-страницы. Так, если мы повернем элемент на какой-то угол, он повернется относительно своего центра. Но мы можем указать другую точку, относительно которой будут выполняться все последующие преобразования. Для этого служат расширения CSS — moz-transform-origin (Firefox), — o-transform-origin (Opera) и — webkit-transform-origin (Web-обозреватели на программном ядре Webkit):
— moz-transform-origin|-o-transform-origin|-webkit-transform-origin:<координата>|left|center|right [<координата>|top|center|bottom]
Если задано одно значение, оно укажет координату точки, относительно которой будут выполняться преобразования, по горизонтальной оси; координатой этой точки по вертикальной оси станет центр элемента Web-страницы. Если указаны два значения, первое задаст координату точки по горизонтальной оси, второе — по вертикальной.
Само значение координаты может быть задано в любой абсолютной или относительной единице измерения, поддерживаемой CSS. Также можно указать значения left (левый край элемента Web-страницы), center (центр), right (правый край), top (верхний край) и bottom (нижний край).
Листинг П10 иллюстрирует пример.
Листинг П10
#cheader { — moz-transform: rotate(30deg);
— o-transform: rotate(30deg);
— webkit-transform: rotate(30deg);
— moz-transform-origin: left;
— o-transform-origin: left;
— webkit-transform-origin: left }
Здесь мы поворачиваем контейнер cheader на 30? относительно точки, которая находится в середине его левого края. Мы задали в качестве координаты точки, относительно которой будут выполняться преобразования (в том числе и поворот), значение left (левый край контейнера) — это ее координата по горизонтали; в качестве вертикальной координаты, поскольку мы ее не указали, будет принята середина контейнера.
Еще один пример иллюстрирует листинг П11.
Листинг П11
#cheader { — moz-transform: rotate(30deg);
— o-transform: rotate(30deg);
— webkit-transform: rotate(30deg);
— moz-transform-origin: right bottom;
— o-transform-origin: right bottom;
— webkit-transform-origin: right bottom }
Теперь контейнер cheader будет повернут на 30? относительно своего нижнего правого угла.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКДанный текст является ознакомительным фрагментом.
Читайте также
Преобразования из XML в XML
Преобразования из XML в XML Преобразования XML-XML иногда рассматриваются как SQL для Интернета, поскольку они позволяют оперировать запросами к базе данных в XML-документах. Ниже приведен пример. Используемый нами файл planets.xml содержит достаточно много данных о каждой
Преобразования CSS
Преобразования CSS В главе 22, ведя разговор о канве и программном рисовании на ней, мы узнали о преобразованиях системы координат. С помощью особых расширений CSS мы можем проделать аналогичные действия над любым элементом Web-страницы: сместить его, повернуть, растянуть или
R.4.7 Преобразования ссылок
R.4.7 Преобразования ссылок Всюду, где ссылки (§R.8.2.2) инициализируются (включая передачу параметров (§R.5.2.2) и возврат значения функции (§R.6.6.3)) или используются иным образом, возможны следующие преобразования:Ссылка на данный класс может быть преобразована в ссылку на
R.12.3 Преобразования
R.12.3 Преобразования Преобразования объектов класса можно задать с помощью конструкторов или функций преобразования.Такие преобразования, обычно называемые пользовательскими, используются неявно в совокупности со стандартными преобразованиями (§R.4). Например, функцию
R.12.3.2 Функции преобразования
R.12.3.2 Функции преобразования Функция-член класса X, имя которой имеет вид,имя-функции-преобразования: operator имя-типа-преобразованияимя-типа-преобразования: список-спецификаций-типа opt операция-ptr optзадает преобразование из типа X в тип, определяемый конструкцией
18.5.4. Средства преобразования
18.5.4. Средства преобразования Вторая крупнейшая проблема, связанная с DocBook, состоит в необходимости преобразования старой разметки уровня представления в разметку DocBook. Человек обычно может автоматически преобразовать представление документа в логическую структуру,
18.5.4. Средства преобразования
18.5.4. Средства преобразования Вторая крупнейшая проблема, связанная с DocBook, состоит в необходимости преобразования старой разметки уровня представления в разметку DocBook. Человек обычно может автоматически преобразовать представление документа в логическую структуру,
Преобразования по умолчанию
Преобразования по умолчанию Большинство операций языка Си выполняют преобразование типов для приведения своих операндов к общему типу либо для того, чтобы расширить значения коротких по размеру типов до размера, используемого в машинных операциях. Преобразования,
Преобразования типов
Преобразования типов Преобразование типов производится либо неявно, например при преобразовании по умолчанию или в процессе присваивания, либо явно, путем выполнения операции приведения типа. Преобразование типов выполняется также, когда преобразуется значение,
Модель преобразования
Модель преобразования Во вводной главе мы говорили, что преобразования в XSLT являются наборами шаблонных правил, каждое из которых обрабатывает определенный фрагмент входящего документа с тем, чтобы сгенерировать фрагмент выходящего
Контекст преобразования
Контекст преобразования При выполнении преобразования каждая из его инструкций, каждый из элементов обрабатывается в некотором контексте. Контекст преобразования состоит из двух частей: из текущего множества узлов и из текущего узла, которые показывают, что именно
Выполнение преобразования
Выполнение преобразования Несмотря на полную свободу в порядке выполнения шаблонов, правила изменения контекста и компоновки результирующего дерева, спецификация XSLT оговаривает очень четко — это делает XSLT весьма гибким языком, программы на котором при этом
Упрощенные преобразования
Упрощенные преобразования Многие простые преобразования состоят из единственного правила, которое обрабатывает корневой узел входящего документа. Общий вид такого рода преобразований показан в следующем листинге.Листинг 4.2. Простое
8.5.6 Преобразования
8.5.6 Преобразования Конструктор, получающий один параметр, определяет преоразование из типа своего параметра в тип своего класса. Такие преобразования неявно применяются дополнительно к стандартным пробразованиям (#6.6-7). Поэтому присваивание объекту из класса X
Преобразования
Преобразования Преобразований, предусматриваемых Flash, всего два. Однако с их помощью можно задать весьма сложное движение выделенного нами фрагмента