通俗理解
是從一個狀態 漸漸的過渡到 另一個狀態。css
好比一個盒子原先寬度爲100px,當鼠標點擊時盒子的寬度變成200px,若是直接從100px變化到200px。從視覺上看去並不友好。咱們更喜歡看到的是平滑的過渡。html
屬性語法格式
java
transition: 要過渡的屬性 花費時間 運動曲線 什麼時候開始; // 若是有多組屬性變化,仍是用逗號隔開。前兩個屬性必須寫。後兩個能夠不寫。運動曲線默認勻速。開始時間默認0秒。
屬性值
css3
注意
動畫
- 若是想要全部的屬性都變化過渡, 寫一個all 就能夠 - transition-duration 花費時間 單位是 秒 s (這個秒是必定須要的) - 運動曲線 默認是 ease - 默認是 0s 立馬開始 - 過渡寫到自己上 誰作過渡動畫,寫到誰身上(下面例子說明)
運動曲線示意圖code
效果
htm
代碼
blog
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>css3過渡</title> <style> div { width: 100px; height: 100px; background-color: pink; /*transition: width 0.5s ease 0s, height 0.3s; 多組屬性用逗號分隔*/ transition: all 1s; /* 這裏過渡是當前div,按照誰作過渡動畫,寫到誰身上,因此這裏要寫在這裏*/ } div:hover { width: 400px; height: 300px; } </style> </head> <body> <div></div> </body> </html>
效果
it
代碼
io
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>CSS過渡</title> <style> div { width: 183px; height: 130px; border: 1px solid red; overflow: hidden; /*多餘部分隱藏*/ } div img { width: 193px; height: 130px; transition: all 0.4s; /*因此變化,過渡時間0.4秒*/ } div:hover img { margin-left: -10px; /*移動*/ } </style> </head> <body> <div> <img src="1.jpg" alt=""> </div> </body> </html>
效果
代碼
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>css過渡</title> <style> * { margin: 0; padding: 0; } li { list-style: none; } .subnav { margin: 100px auto; width: 20px; } .subnav li { width: 20px; height: 20px; margin: 3px 0; background-color: pink; position: relative; } .subnav div { position: absolute; /*子絕父相*/ right: 0; top: 0; height: 20px; width: 0; background-color: purple; transition: all 0.6s; z-index: -1; /*這裏設置定位級別小於父類,因此父類浮在它上面*/ } .subnav li:hover div { width: 100px; } </style> </head> <body> <div class="subnav"> <ul> <li> <div></div> </li> <li><div></div></li> <li><div></div></li> <li><div></div></li> <li><div></div></li> </ul> </div> </body> </html>
你若是願意有所做爲,就必須善始善終。(16)