CSS свойство transition

Свойство transition позволяет делать плавные переходы между двумя значениями какого-либо CSS свойства. По существу это означает простейшую анимацию. Например, если ссылка должна менять цвет при наведении на неё курсора, то можно реализовать постепенный переход от одного цвета к другому, вместо моментального изменения. В обоих случаях будет осуществляться переход от одного цвета к другому, но с помощью transition переход можно сделать постепенным. Если браузер не предоставляет поддержку данного свойства, то изменение будет моментальным.

Свойство transition устанавливает эффект перехода между двумя состояниями элемента, они могут быть определены с помощью псевдокласса :hover или :active, а также динамически через JavaScript.

Примечание: Свойство transition является короткой записью для определения значений четырех свойств: transition-property, transition-duration, transition-timing-function и transition-delay. Следует всегда указывать значение для свойства transition-duration, так как, если не указать это значение, то продолжительность перехода будет равна нулю и никакого эффекта не будет.

CSS синтаксис

transition: transition-property transition-duration transition-timing-function transition-delay | initial | inherit;

Возможные значения

ЗначениеОписание
transition-propertyОпределяет CSS свойство, для которого будет применён эффект перехода.
transition-durationОпределяет продолжительность эффекта перехода в секундах (s) или миллисекундах (ms).
transition-timing-functionОпределяет кривую скорости для эффекта перехода.
transition-delayОпределяет задержку, когда начнётся эффект перехода.
inheritЗначение наследуется от родительского элемента.
initialУстанавливает значение по умолчанию.

Пример использования

Сделаем, чтобы при наведении мышки на элемент <div>, он плавно менял свою ширину со 100px до 300px


div {
    width: 100px;
    -webkit-transition: width 2s; /* Safari 3.1-6.0 */
    transition: width 2s;
}

 div:hover {
    width: 300px;
}