CSS3 transition 屬性基本語法
transition: property duration timing-function delay;
其實 CSS3 transition 是一個整合式的語法,包含了 property duration timing-function delay 等四個屬性值的效果,此種語法概念與 CSS 的 border 邊框設計語法有所雷同,CSS3 的 transition 屬性值也可以分別獨立出來設計,這幾個屬性值的代表意義如下:語法 | 說明 |
transition-property | 用來定義可以產生 transition 屬性效果的屬性名稱,例如寬度、背景顏色 ...。 |
transition-duration | 用來定義 transition 屬性發生的時間,單位為秒。 |
transition-timing-function | 用來定義 transition 效果的發生速度,可說是設定轉場時所依據的貝茲曲線。 |
transition-delay | 用來定義多久之後開始發生 transition 效果。 |
各瀏覽器對 CSS3 transition 屬性的支援
由於 transition 屬性是個蠻新的 CSS3 功能,並不是所有的瀏覽器版本都支援,舊版的瀏覽器全部都不支援,各大主流的瀏覽器現在的最新版本都支援 transition 屬性的效果,以下為支援程度的整理,請多多參考。
- Chrome 26.0 及以上版本開始支援,語法請使用 -webkit- 開頭
- FireFox 16.0 及以上版本開始支援,語法請使用 -moz- 開頭
- Safari 6.1 及以上版本開始支援,語法請使用 -webkit- 開頭
- Opera 12.1 及以上版本開始支援,語法請使用 -o- 開頭
- IE 10.0 及以上版本開始支援
CSS3 transition 屬性範例一、變更 DIV 區塊的大小
<style type="text/css">
#Change1{
width:60px;
height:60px;
background:blue;
transition:width 5s;
-webkit-transition:width 5s;
-moz-transition:width 5s;
-o-transition:width 5s;
}
#Change2{
width:60px;
height:60px;
background:yellow;
transition:width 3s;
-moz-transition:width 3s;
-webkit-transition:width 3s;
-o-transition:width 3s;
}
#Change3{
width:60px;
height:60px;
background:red;
transition:width 1s;
-moz-transition:width 1s;
-webkit-transition:width 1s;
-o-transition:width 1s;
}
#Change1:hover,#Change2:hover,#Change3:hover{
width:500px;
}
</style>
<div id="Change1"></div>
<div id="Change2"></div>
<div id="Change3"></div>
呈現效果(請將滑鼠放到區塊上)#Change1{
width:60px;
height:60px;
background:blue;
transition:width 5s;
-webkit-transition:width 5s;
-moz-transition:width 5s;
-o-transition:width 5s;
}
#Change2{
width:60px;
height:60px;
background:yellow;
transition:width 3s;
-moz-transition:width 3s;
-webkit-transition:width 3s;
-o-transition:width 3s;
}
#Change3{
width:60px;
height:60px;
background:red;
transition:width 1s;
-moz-transition:width 1s;
-webkit-transition:width 1s;
-o-transition:width 1s;
}
#Change1:hover,#Change2:hover,#Change3:hover{
width:500px;
}
</style>
<div id="Change1"></div>
<div id="Change2"></div>
<div id="Change3"></div>
範例一最重要的關鍵地方在「transition:width 秒數;」的這段語法,宣告 DIV 區塊的 transition 屬性會影響的僅有寬度(width),根據所設定的秒數而變化。如果要把 CSS3 transition 的效果用在網頁文字上又該怎麼寫呢?範例二將提供參考。
CSS3 transition 屬性範例二、文字顏色的變換
<style type="text/css">
#TestString{
font-size:25px;
font-weight:bold;
color:#003399;
}
#TestString:hover{
color:#00DB00;
transition:color 3s;
-moz-transition:color 3s;
-webkit-transition:color 3s;
-o-transition:color 3s;
}
</style>
<span id="TestString">測試文字顏色的漸漸變色效果</span>
呈現效果(請將滑鼠放到範例文字上)#TestString{
font-size:25px;
font-weight:bold;
color:#003399;
}
#TestString:hover{
color:#00DB00;
transition:color 3s;
-moz-transition:color 3s;
-webkit-transition:color 3s;
-o-transition:color 3s;
}
</style>
<span id="TestString">測試文字顏色的漸漸變色效果</span>
測試文字顏色的漸漸變色效果
我們先準備一段文字並且用 span 標籤包起來,透過 id 把 CSS 的效果套用到文字中,這裡先將文字預設為顏色藍色(color:#003399),這裡使用到的是 color(文字顏色)、font-size(文字大小)與 font-weight(文字粗細)等效果,接著設定當滑鼠移到文字上的特效,也就是 CSS 的 hover 屬性內,先把顏色設為墨綠色(color:#00DB00;),再套用「transition:color 3s;」,修改文字顏色的轉場效果,總執行時間總共 3 秒,我們可以從範例呈現的效果看到,當滑鼠移到文字上 3 秒鐘的時間,文字就從藍色漸漸變成墨綠色囉!➤部分傳統網意設計需要用到 JavaScript 的效果,若在網友的瀏覽器有支援 CSS3 animation 動畫屬性的情況下,可以直接使用 CSS3 的 transition 屬性來處理,省去設計師額外寫 JavaScript 特效的時間成本。
延伸閱讀