對於css3的學習,更多的是在於對新特性和基礎理論的熟悉,css
這篇文章經過一個案例帶領你們瞭解css3裏一些理論知識,也將一些技巧加以總結,從而提升你們的開發效率;html
本次案例爲(水紋波動),不用js寫動畫,只要善於運用css3就能實現水紋層層擴散的效果。css3
<<!DOCTYPE html> <html> <head> <style> .wave { margin-left: auto; margin-right: auto; width: 100px; height: 100px; border-radius: 100px; border: 2px solid #fff; line-height: 100px; background: #06c no-repeat center center; background-size: 100%; animation: wave 4s linear infinite; } @keyframes wave { 0% { box-shadow: 0 0 0 0 rgba(245, 226, 226, 1), 0 0 0 0 rgba(250, 189, 189, 1); } 50% { box-shadow: 0 0 0 20px rgba(245, 226, 226, .5), 0 0 0 10px rgba(250, 189, 189, 1); } 100% { box-shadow: 0 0 0 40px rgba(245, 226, 226, 0), 0 0 0 20px rgba(245, 226, 226, 0); } } </style> <title>水紋波動特效</title> </head> <body> <div class="wave"></div> </body> </html>
1. border-radius ( 給div元素添加圓角的邊框 )學習
屬性:能夠設置四個角的「圓潤」程度,四個值的順序是:左上角,右上角,右下角,左下角。;動畫
border-top-left-radius:2em; border-top-right-radius:2em; border-bottom-right-radius:2em; border-bottom-left-radius:2em;
也能夠簡寫 以左上,右上,右下,左下 爲順序,省略的 和它的對角相同;spa
2. animation (動畫屬性)3d
有六個屬性,案例中按順序簡寫。code
案例中用到的屬性:htm
animation-name:keyframename ;(規定須要綁定到選擇器的 keyframe 的名稱)blog
animation-duration: time; (規定動畫播放時間)
animation-timing-function:linear;(動畫從頭至尾的速度是相同的)
animation-iteration-count: infinite;(規定動畫應該無限次播放)
@keyframes (以百分比來規定改變發生的時間,或者經過關鍵詞 "from" 和 "to",等價於 0% 和 100%。 0% 是動畫的開始時間,100% 動畫的結束時間)
box-shadow: h-shadow v-shadow blur spread color inset;
(中間利用 「,」 製造兩個陰影,再運用0% 50% 100%的動畫使陰影擴散變大 顏色變淺,從而模仿水波擴散的效果)