1. Веб-технологии для разработчиков
  2. CSS: каскадные таблицы стилей
  3. transition-duration

This page was translated from English by the community. Learn more and join the MDN Web Docs community.

View in English Always switch to English

transition-duration

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨сентябрь 2015 г.⁩.

Свойство transition-duration определяет продолжительность выполнения анимации. Значение по умолчанию равняется 0s, т.е. отсутствие анимации.

Интерактивный пример

transition-duration: 500ms;
transition-property: margin-right;
transition-duration: 2s;
transition-property: background-color;
transition-duration: 2s;
transition-property: margin-right, color;
transition-duration: 3s, 1s;
transition-property: margin-right, color;
<section id="default-example">
 <div id="example-element">Hover to see<br />the transition.</div>
</section>
#example-element {
 background-color: #e4f0f5;
 color: #000;
 padding: 1rem;
 border-radius: 0.5rem;
 font: 1em monospace;
 width: 100%;
 transition: margin-right 2s;
}
#default-example:hover > #example-element {
 background-color: #909;
 color: #fff;
 margin-right: 40%;
}

You may specify multiple durations; each duration will be applied to the corresponding property as specified by the transition-property property, which acts as a master list. If there are fewer durations specified than in the master list, the user agent repeat the list of durations. If there are more durations, the list is simply truncated to the right size. In both case the CSS declaration stays valid.

Синтаксис

css
/* <time> values */
transition-duration: 6s;
transition-duration: 120ms;
transition-duration: 1s, 15s;
transition-duration: 10s, 30s, 230ms;
/* Глобальные значения */
transition-duration: inherit;
transition-duration: initial;
transition-duration: unset;

Values

<time>

Is a <time> denoting the amount of time the transition from the old value of a property to the new value should take. A time of 0s indicates that no transition will happen, that is the switch between the two states will be instantaneous. A negative value for the time renders the declaration invalid.

Formal syntax

transition-duration = 
<time [0s,∞]> #

Examples

transition-duration: 0.5s

<div class="parent">
 <div class="box">Lorem</div>
</div>
.parent {
 width: 250px;
 height: 125px;
}
.box {
 width: 100px;
 height: 100px;
 background-color: red;
 font-size: 20px;
 left: 0px;
 top: 0px;
 position: absolute;
 -webkit-transition-property: width height background-color font-size left top
 transform -webkit-transform color;
 -webkit-transition-duration: 0.5s;
 -webkit-transition-timing-function: ease-in-out;
 transition-property: width height background-color font-size left top
 transform -webkit-transform color;
 transition-duration: 0.5s;
 transition-timing-function: ease-in-out;
}
.box1 {
 transform: rotate(270deg);
 -webkit-transform: rotate(270deg);
 width: 50px;
 height: 50px;
 background-color: blue;
 color: yellow;
 font-size: 18px;
 left: 150px;
 top: 25px;
 position: absolute;
 -webkit-transition-property: width height background-color font-size left top
 transform -webkit-transform color;
 -webkit-transition-duration: 0.5s;
 -webkit-transition-timing-function: ease-in-out;
 transition-property: width height background-color font-size left top
 transform -webkit-transformv color;
 transition-duration: 0.5s;
 transition-timing-function: ease-in-out;
}
function updateTransition() {
 var el = document.querySelector("div.box");
 if (el) {
 el.className = "box1";
 } else {
 el = document.querySelector("div.box1");
 el.className = "box";
 }
 return el;
}
var intervalID = window.setInterval(updateTransition, 7000);

transition-duration: 1s

<div class="parent">
 <div class="box">Lorem</div>
</div>
.parent {
 width: 250px;
 height: 125px;
}
.box {
 width: 100px;
 height: 100px;
 background-color: red;
 font-size: 20px;
 left: 0px;
 top: 0px;
 position: absolute;
 -webkit-transition-property: width height background-color font-size left
 top -webkit-transform color;
 -webkit-transition-duration: 1s;
 -webkit-transition-timing-function: ease-in-out;
 transition-property: width height background-color font-size left top
 transform color;
 transition-duration: 1s;
 transition-timing-function: ease-in-out;
}
.box1 {
 transform: rotate(270deg);
 -webkit-transform: rotate(270deg);
 width: 50px;
 height: 50px;
 background-color: blue;
 color: yellow;
 font-size: 18px;
 left: 150px;
 top: 25px;
 position: absolute;
 -webkit-transition-property: width height background-color font-size left
 top -webkit-transform transform color;
 -webkit-transition-duration: 1s;
 -webkit-transition-timing-function: ease-in-out;
 transition-property: width height background-color font-size left top
 transform -webkit-transform color;
 transition-duration: 1s;
 transition-timing-function: ease-in-out;
}
function updateTransition() {
 var el = document.querySelector("div.box");
 if (el) {
 el.className = "box1";
 } else {
 el = document.querySelector("div.box1");
 el.className = "box";
 }
 return el;
}
var intervalID = window.setInterval(updateTransition, 7000);

transition-duration: 2s

<div class="parent">
 <div class="box">Lorem</div>
</div>
.parent {
 width: 250px;
 height: 125px;
}
.box {
 width: 100px;
 height: 100px;
 background-color: red;
 font-size: 20px;
 left: 0px;
 top: 0px;
 position: absolute;
 -webkit-transition-property: width height background-color font-size left top
 transform -webkit-transform color;
 -webkit-transition-duration: 2s;
 -webkit-transition-timing-function: ease-in-out;
 transition-property: width height background-color font-size left top
 transform -webkit-transform color;
 transition-duration: 2s;
 transition-timing-function: ease-in-out;
}
.box1 {
 transform: rotate(270deg);
 -webkit-transform: rotate(270deg);
 width: 50px;
 height: 50px;
 background-color: blue;
 color: yellow;
 font-size: 18px;
 left: 150px;
 top: 25px;
 position: absolute;
 -webkit-transition-property: width height background-color font-size left top
 transform -webkit-transform color;
 -webkit-transition-duration: 2s;
 -webkit-transition-timing-function: ease-in-out;
 transition-property: width height background-color font-size left top
 transform -webkit-transform color;
 transition-duration: 2s;
 transition-timing-function: ease-in-out;
}
function updateTransition() {
 var el = document.querySelector("div.box");
 if (el) {
 el.className = "box1";
 } else {
 el = document.querySelector("div.box1");
 el.className = "box";
 }
 return el;
}
var intervalID = window.setInterval(updateTransition, 7000);

transition-duration: 4s

<div class="parent">
 <div class="box">Lorem</div>
</div>
.parent {
 width: 250px;
 height: 125px;
}
.box {
 width: 100px;
 height: 100px;
 background-color: red;
 font-size: 20px;
 left: 0px;
 top: 0px;
 position: absolute;
 -webkit-transition-property: width height background-color font-size left top
 transform -webkit-transform color;
 -webkit-transition-duration: 4s;
 -webkit-transition-timing-function: ease-in-out;
 transition-property: width height background-color font-size left top
 transform -webkit-transform color;
 transition-duration: 4s;
 transition-timing-function: ease-in-out;
}
.box1 {
 transform: rotate(270deg);
 -webkit-transform: rotate(270deg);
 width: 50px;
 height: 50px;
 background-color: blue;
 color: yellow;
 font-size: 18px;
 left: 150px;
 top: 25px;
 position: absolute;
 -webkit-transition-property: width height background-color font-size left top
 transform -webkit-transform color;
 -webkit-transition-duration: 4s;
 -webkit-transition-timing-function: ease-in-out;
 transition-property: width height background-color font-size left top
 transform -webkit-transform color;
 transition-duration: 4s;
 transition-timing-function: ease-in-out;
}
function updateTransition() {
 var el = document.querySelector("div.box");
 if (el) {
 el.className = "box1";
 } else {
 el = document.querySelector("div.box1");
 el.className = "box";
 }
 return el;
}
var intervalID = window.setInterval(updateTransition, 7000);

Спецификации

Specification
CSS Transitions
# transition-duration-property
Начальное значение 0s
Применяется квсе элементы, ::before и ::after псевдоэлементы
Наследуется нет
Обработка значения как указано
Animation type Not animatable

Совместимость с браузерами

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

Help improve MDN

Learn how to contribute

This page was last modified on by MDN contributors.

AltStyle によって変換されたページ (->オリジナル) /