Применить трансформацию CSS3 к фоновым картинкам - «CSS3» » Новости мира Интернет
Стратегию Void War удалили из Steam за нарушение авторских прав — игра похожа на смесь FTL: Faster Than Light и Warhammer 40,000 - «Новости сети»
Стратегию Void War удалили из Steam за нарушение авторских прав — игра похожа на смесь FTL: Faster Than Light и Warhammer 40,000 - «Новости сети»
Слухи: Rockstar отложит релиз GTA VI в рознице, но не из-за проблем с производством - «Новости сети»
Слухи: Rockstar отложит релиз GTA VI в рознице, но не из-за проблем с производством - «Новости сети»
Российская компания отобрала у Intel права на Celeron - «Новости сети»
Российская компания отобрала у Intel права на Celeron - «Новости сети»
Первые обзоры Intel Panther Lake — встроенная графика Arc B390 почти догнала мобильную GeForce RTX 4050 - «Новости сети»
Первые обзоры Intel Panther Lake — встроенная графика Arc B390 почти догнала мобильную GeForce RTX 4050 - «Новости сети»
Первое испытание модернизированной ракеты SpaceX Starship V3 запланировано на середину марта - «Новости сети»
Первое испытание модернизированной ракеты SpaceX Starship V3 запланировано на середину марта - «Новости сети»
В Google постепенно добавляют возможность смены адреса электронной почты - «Новости мира Интернет»
В Google постепенно добавляют возможность смены адреса электронной почты - «Новости мира Интернет»
OpenAI запускает рекламу в ChatGPT для бесплатных пользователей и тарифа Go - «Новости мира Интернет»
OpenAI запускает рекламу в ChatGPT для бесплатных пользователей и тарифа Go - «Новости мира Интернет»
Anker представила компактную зарядку Nano Charger с умным экраном и мощностью 45 Вт - «Новости мира Интернет»
Anker представила компактную зарядку Nano Charger с умным экраном и мощностью 45 Вт - «Новости мира Интернет»
Nex Computer анонсировала NexPhone – карманный ПК на Android, Linux и Windows - «Новости мира Интернет»
Nex Computer анонсировала NexPhone – карманный ПК на Android, Linux и Windows - «Новости мира Интернет»
Sony представила фирменные наушники-клипсы LinkBuds Clip Open - «Новости мира Интернет»
Sony представила фирменные наушники-клипсы LinkBuds Clip Open - «Новости мира Интернет»
Новости мира Интернет » Самоучитель CSS » CSS3 » Применить трансформацию CSS3 к фоновым картинкам - «CSS3»

Масштабирование, наклон и поворот любого элемента возможен с помощью свойства CSS3 transform. Оно поддерживается всеми современными браузерами (с префиксами) и допускает изящную деградацию, к примеру:

#myelement {
  -webkit-transform: rotate(30deg);
  -moz-transform: rotate(30deg);
  -ms-transform: rotate(30deg);
  -o-transform: rotate(30deg);
  transform: rotate(30deg);

Хорошая штука. Однако вращается элемент целиком — его содержимое, границы и фоновая картинка. Что делать, если вы желаете повернуть только фоновое изображение? Или чтобы фон остался на месте, а элемент поворачивался?

В настоящее время у W3C нет предложений по трансформации фонового изображения. Это было бы невероятно полезно, поэтому подозреваю, нечто появится в конце концов, но не поможет разработчикам, которые хотят использовать подобные эффекты сегодня.

К счастью, есть решение. В сущности, это хак, который добавляет фоновое изображение к псевдоэлементу :before или :after, а не к родительскому контейнеру. Псевдоэлемент может трансформироваться независимо.

Просмотр демонстрационной страницы

Трансформация только фона

У контейнера может не быть никаких стилей, но необходимо задать position: relative, поскольку наш псевдоэлемент располагается внутри. Также установите overflow: hidden, в противном случае фон будет выходить за пределы контейнера.

#myelement {
  position: relative;
  overflow: hidden;

Теперь мы можем создать абсолютно позиционированный псевдоэлемент с трансформируемым фоном. Свойство z-index задаём как -1, это гарантирует что фон появится под содержимым контейнера.

#myelement:before {
  content: "";
  position: absolute;
  width: 200%;
  height: 200%;
  top: -50%;
  left: -50%;
  z-index: -1;
  background: url(background.png) 0 0 repeat;
  -webkit-transform: rotate(30deg);
  -moz-transform: rotate(30deg);
  -ms-transform: rotate(30deg);
  -o-transform: rotate(30deg);
  transform: rotate(30deg);

Обратите внимание, что вам, возможно, потребуется настроить ширину псевдоэлемента, его высоту и положение. К примеру, если вы используете повторяющееся изображение, область поворота должна быть больше самого контейнера, чтобы полностью вместить фон.

Фиксация фона у трансформируемых элементов

Любые трансформации родительского контейнера применяются и к псевдоэлементам. Так что нам надо отменить трансформацию, например, если контейнер поворачивается на 30 градусов, фон должен повернуться на -30 градусов, чтобы он оказался в фиксированном положении:

#myelement {
  position: relative;
  overflow: hidden;
  -webkit-transform: rotate(30deg);
  -moz-transform: rotate(30deg);
  -ms-transform: rotate(30deg);
  -o-transform: rotate(30deg);
  transform: rotate(30deg);

#myelement:before {
  content: "";
  position: absolute;
  width: 200%;
  height: 200%;
  top: -50%;
  left: -50%;
  z-index: -1;
  background: url(background.png) 0 0 repeat;
  -webkit-transform: rotate(-30deg);
  -moz-transform: rotate(-30deg);
  -ms-transform: rotate(-30deg);
  -o-transform: rotate(-30deg);
  transform: rotate(-30deg);

Опять же, необходимо настроить размер и положение чтобы фон адекватно вписывался в родительский контейнер.

Пожалуйста, посмотрите демонстрационную страницу для примера. Полный код хранится внутри HTML.

Эффект работает в IE9, Firefox, Chrome, Safari и Opera. IE8 не покажет никаких трансформаций, но фон появится.

IE6 и 7 не поддерживает псевдоэлементы, поэтому фон исчезнет. Однако, если вы хотите поддерживать эти браузеры, можно добавить фоновое изображение к контейнеру, а затем установить его как none с помощью современных селекторов или через условные комментарии.


Масштабирование, наклон и поворот любого элемента возможен с помощью свойства CSS3 transform. Оно поддерживается всеми современными браузерами (с префиксами) и допускает изящную деградацию, к примеру: Хорошая штука. Однако вращается элемент целиком — его содержимое, границы и фоновая картинка. Что делать, если вы желаете повернуть только фоновое изображение? Или чтобы фон остался на месте, а элемент поворачивался? В настоящее время у W3C нет предложений по трансформации фонового изображения. Это было бы невероятно полезно, поэтому подозреваю, нечто появится в конце концов, но не поможет разработчикам, которые хотят использовать подобные эффекты сегодня. К счастью, есть решение. В сущности, это хак, который добавляет фоновое изображение к псевдоэлементу :before или :after, а не к родительскому контейнеру. Псевдоэлемент может трансформироваться независимо. Просмотр демонстрационной страницы Трансформация только фона У контейнера может не быть никаких стилей, но необходимо задать position: relative, поскольку наш псевдоэлемент располагается внутри. Также установите overflow: hidden, в противном случае фон будет выходить за пределы контейнера. Теперь мы можем создать абсолютно позиционированный псевдоэлемент с трансформируемым фоном. Свойство z-index задаём как -1, это гарантирует что фон появится под содержимым контейнера. Обратите внимание, что вам, возможно, потребуется настроить ширину псевдоэлемента, его высоту и положение. К примеру, если вы используете повторяющееся изображение, область поворота должна быть больше самого контейнера, чтобы полностью вместить фон. Фиксация фона у трансформируемых элементов Любые трансформации родительского контейнера применяются и к псевдоэлементам. Так что нам надо отменить трансформацию, например, если контейнер поворачивается на 30 градусов, фон должен повернуться на -30 градусов, чтобы он оказался в фиксированном положении: Опять же, необходимо настроить размер и положение чтобы фон адекватно вписывался в родительский контейнер. Пожалуйста, посмотрите демонстрационную страницу для примера. Полный код хранится внутри HTML. Эффект работает в IE9, Firefox, Chrome, Safari и Opera. IE8 не покажет никаких трансформаций, но фон появится. IE6 и 7 не поддерживает псевдоэлементы, поэтому фон исчезнет. Однако, если вы хотите поддерживать эти браузеры, можно добавить фоновое изображение к контейнеру, а затем установить его как none с помощью современных селекторов или через условные комментарии.

Цитирование статьи, картинки - фото скриншот - Rambler News Service.
Иллюстрация к статье - Яндекс. Картинки.
Есть вопросы. Напишите нам.
Общие правила  поведения на сайте.

Смотрите также

А что там на главной? )))



Комментарии )))