Свойство transition-duration
На предыдущей странице мы узнали о первом свойстве семейства transition из четырех — transition-property, которое позволяет выбирать, на какие свойства будет распространяться переход. Теперь настало время познакомиться со следующим — transition-duration.
Свойство transition-duration определяет, сколько времени должен длиться переход от одного состояния к другому. Именно оно обеспечивает плавность анимации. По умолчанию переход происходит мгновенно.
В качестве значения указывается время в секундах либо миллисекундах. Время записывается целым либо дробным числом, после которого следует приставка s (для секунд) или ms (для миллисекунд). Пробел между числом и приставкой не ставится.
transition-duration: 0.6s; /* эта запись эквивалентна нижней */ transition-duration: .6s; /* ноль перед точкой можно опускать */
Вернемся к нашему примеру из предыдущего урока. Нам необходимо добавить плавность для перехода между стилями ссылки. Предположим, мы хотим, чтобы переход длился одну секунду. Добавим одну строчку к уже готовому стилю:
a {
display: inline-block;
width: 200px;
padding: 10px;
text-align: center;
text-decoration: none;
background-color: #9b20ff;
color: #fafafa;
transition-property: color, background-color;
transition-duration: 1s; /* добавляем длительность перехода */
}
a:hover {
color: #9b20ff;
background-color: #c9ff20;
letter-spacing: 2px;
}
Теперь наш переход работает так, как нужно:

Вы наверняка заметили, что мы указали еще один стиль для состояния при наведенном курсоре — это letter-spacing: 2px. Как видно на анимации выше, расстояние между буквами меняется резко, без плавности. Так происходит потому, что мы не указывали это свойство в значении transition-property.
Чтобы сделать плавной смену свойства letter-spacing, можно пойти двумя путями: либо добавить его в список значений transition-property, либо изменить значение transition-property на all. Во втором случае плавный переход станет распространяться на все анимируемые свойства (конечно, в том случае, если они будут добавлены). Ключевое слово all упрощает запись, но оно не подойдет, если нужно исключить какое-то свойство из анимации.
Своя скорость для каждого свойства
Если вы перечислили свойства в transition-property, вы можете указать соответствующую длительность перехода для каждого из них. Порядок указания значений длительности должен соответствовать порядку перечисления свойств. Например:
transition-property: color, background-color, letter-spacing; transition-duration: 1s, .5s, 2s;
Такая запись будет означать, что свойство color перейдет от своего начального значения к конечному за одну секунду, background-color — за половину секунды, а letter-spacing — за две секунды.
Далее в учебнике: свойство transition-timing-function.