CSS Transitions
In this chapter you will learn about the following properties:
- transition
- transition-delay
- transition-duration
- transition-property
- transition-timing-function
How to Use CSS Transitions?
To create a transition effect, you must specify two things:
- the CSS property you want to add an effect to
- the duration of the effect
Note: If the duration part is not specified, the transition will have no effect, because the default value is 0.
The following example shows a 100px * 100px red <div> element. The <div> element has also specified a transition effect for the width property, with a duration of 2 seconds:
div {
  width: 100px;
  height: 100px;
  background: red;
  transition: width 2s;
}
div:hover {
  width: 300px;
}
Change Several Property Values
The following example adds a transition effect for both the width and height property, with a duration of 2 seconds for the width and 4 seconds for the height:
div {
  transition: width 2s, height 4s;
}
Specify the Speed Curve of the Transition
The transition-timing-function property specifies the speed curve of the transition effect.
The transition-timing-function property can have the following values:
- ease- specifies a transition effect with a slow start, then fast, then end slowly (this is default)
- linear- specifies a transition effect with the same speed from start to end
- ease-in- specifies a transition effect with a slow start
- ease-out- specifies a transition effect with a slow end
- ease-in-out- specifies a transition effect with a slow start and end
- cubic-bezier(n,n,n,n)- lets you define your own values in a cubic-bezier function
The following example shows some of the different speed curves that can be used:
Delay the Transition Effect
The transition-delay property specifies a delay (in seconds) for the transition effect.
The following example has a 1 second delay before starting:
div {
  transition-delay: 1s;
}
CSS Transition Properties
The following table lists all the CSS transition properties:
| Property | Description | 
|---|---|
| transition | A shorthand property for setting the four transition properties into a single property | 
| transition-delay | Specifies a delay (in seconds) for the transition effect | 
| transition-duration | Specifies how many seconds or milliseconds a transition effect takes to complete | 
| transition-property | Specifies the name of the CSS property the transition effect is for | 
| transition-timing-function | Specifies the speed curve of the transition effect | 
 
 
 
