Свойство transition в CSS

Опубликовано 29 декабря 2021 в 22:16 (Обновлено 9 января 2024 в 14:13)

Время чтения: 2 мин

Свойство transition (переход) позволяет элементам изменять значения в течение определенного периода времени, анимируя изменения свойств.

transition в CSS
transition в CSS

transition - это краткосрочное действие для которого есть четыре связанных с переходом свойств:

.example {
    transition: [transition-property] [transition-duration] [transition-timing-function] [transition-delay];
}

Ниже простой пример, который меняет цвет фона элемента <div> при наведении (hover:):

div {
  transition: background-color 0.5s ease;
  background-color: red;
}
div:hover {
  background-color: green;
}

При наведении указателя мыши на <div> потребуется полсекунды, чтобы изменить цвет с красного на зеленый.

Вы можете указать конкретное свойство, как мы это делали выше, или использовать значение all для ссылки на свойства перехода.

div {
  transition: all 0.5s ease;
  background: red;
  padding: 10px;
}
div:hover {
  background: green;
  padding: 20px;
}

В этом примере выше, и к фону (background) и к отступу (padding) будет применен переход (transition), благодаря значению “all” использованному в свойстве transition-property.

Вы можете разделять наборы значений запятыми, чтобы выполнять разные переходы для разных свойств:

div {
  transition: background 0.2s ease,
              padding 0.8s linear;
}

По большей части порядок значений не имеет значения - если только не указана задержка. Если вы указываете задержку, то сначала необходимо указать ее продолжительность.

Первое значение, которое браузер распознает как действительное значение времени, всегда будет представлять собой продолжительность.

Любое последующее действительное значение времени будет использоваться как задержка.

Некоторые свойства не могут меняться, так как они не являются анимируемыми свойствами. Для того, чтобы понять какие свойства можно анимировать, а какие нет - лучше всего сверять с официальной Документацией.

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

Например, следующий пример показывает как происходит переход при наведении мыши, но не срабатывает, когда курсор убирается.

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

Для совместимости во всех поддерживаемых браузерах необходимы префиксы производителя со стандартным синтаксисом, объявленным последним:

.example {
    -webkit-transition: background-color 500ms ease-out 1s;
    -moz-transition: background-color 500ms ease-out 1s;
    -o-transition: background-color 500ms ease-out 1s;
    transition: background-color 500ms ease-out 1s;
}

IE10 (первая стабильная версия IE с поддержкой перехода) не требует префикса -ms-.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.