ss3實現鋸齒狀背景邊框,適合用在網頁中的優惠券展示欄和官網的欄目展示
效果:
如何實現
html代碼:
css樣式:
寫CSS的常用套路(下篇)...
點擊觀看——我寫CSS的常用套路(上篇)...
為盒子添加陰影,增加盒子的立體感,可以多層疊加,并且會使陰影更加絲滑
本demo地址:Pagination
注意到box-shadow還有個inset,用于盒子內部發光
利用這個特性我們可以在盒子內部的某個范圍內設定顏色,做出一個新月形
再加點動畫和濾鏡效果,“猩紅之月”閃亮登場!
注意到它散發著淡淡的紅光,其實就是2個偽元素應用了模糊濾鏡所產生的效果
本demo地址:Crimson Crescent Loading
文本陰影,本質上和box-shadow相同,只不過是相對于文本而言,常用于文本發光,也可通過多層疊加來制作霓虹文本和偽3D文本等效果
本demo地址:Staggered GlowIn Text
本demo地址:Neon Text
本demo地址:Staggered Bouncing 3D Loading
能將背景裁剪成文字的前景色,常用來和color: transparent配合生成漸變文本
本demo地址:Menu Hover Fill Text
漸變可以作為背景圖片的一種,具有很強的色彩效果,甚至可以用來模擬光
線性漸變是筆者最常用的漸變
這個作品用到了HTML的dialog標簽,線性漸變背景,動畫以及overflow障眼法,細心的你看出來了嗎:)
本demo地址:Confirm Modal
徑向漸變常用于生成圓形背景,上面例子中Snow的背景就是一個橢圓形的徑向漸變
此外,由于背景可以疊加,我們可以疊加多個不同位置大小的徑向漸變來生成圓點群,再加上動畫就產生了一種微粒效果,無需多余的div元素
本demo地址:Particle Button
圓錐漸變可以用于制作餅圖
用一個偽元素疊在餅圖上面,并將content設為某個值(這個值通過CSS變量計算出來),就能制作出度量計的效果,障眼法又一次完成了它的使命
本demo地址:Gauge (No SVG)
PS里的濾鏡,blur最常用
當blur濾鏡和contrast濾鏡一起使用時,會產生一種融合(gooey)的奇特效果
本demo地址:Snow Scratch
對背景應用濾鏡,產生毛玻璃的效果
本demo地址:Frosted Glass
PS里的混合模式,常用于文本在背景下的特殊效果
以下利用濾色模式(screen)實現文本視頻蒙版效果
本demo地址:Video Mask Text
PS里的裁切,可以制作各種不規則形狀。如果和動畫結合也會相當有意思
本demo地址:Name Card Hover Expand
由于clip-path有裁切功能,因此可以將多個文字疊在一起,并按比例裁切成多分,再應用交錯動畫,就能制作出酷炫的故障效果(glitch)。
本demo地址:Cross Bar Glitch Text
PS里的遮罩。所謂遮罩,就是原始圖片只顯示遮罩圖片非透明的部分
雖然clip-path能裁切出形狀,但它無法鏤空,因為形狀的里面它管不著
可能有人(包括我)會用偽元素來“模擬”鏤空(通過設置同樣的背景色),但這樣并非真的鏤空,換了個背景或浮在圖片上就會暴露出來,這時我們就要求助于遮罩了
假設,你想制作一個空心的圓環,那么你只需將一個徑向漸變作為元素的遮罩,并且第一個color-stop設置為透明,其他的color-stop設置為其他顏色即可,因為遮罩的定義就是只顯示遮罩圖片非透明的部分
注意:為了消除鋸齒,這個徑向漸變的中間需要有一個額外的color-stop用于緩沖,長度設置為原長度加0.5px即可
本demo地址:Circle Arrow Nav
投影效果,不怎么常用,適合立體感強的作品
本demo地址:Card Flip Reflection
雖然這并不是一個CSS特性,但是它經常用于完成那些CSS所做不到的事情
那么何時用它呢?當CSS動畫中有屬性無法從CSS中獲取時,自然就會使用到它了
目前CSS還尚未有獲取鼠標位置的API,因此考慮用JS來進行
通過查閱相關的DOM API,發現在監聽鼠標事件的API中,可通過e.clientX和e.clientY來獲得鼠標當前的位置
既然能夠獲取鼠標的位置,那么跟蹤鼠標的位置也就不是什么難事了:通過監聽mouseenter和mouseleave事件,來獲取鼠標出入一個元素時的位置,并用此坐標來當作鼠標的位移距離,監聽mousemove事件,來獲取鼠標在元素上移動時的位置,同樣地用此坐標來當作鼠標的位移距離,這樣一個跟蹤鼠標的效果就實現了
本demo地址:Menu Hover Image
CSS Houdini是CSS的底層API,它使我們能夠通過這套接口來擴展CSS的功能
目前來說,我們無法直接給漸變添加動畫,因為瀏覽器不理解要改變的值是什么類型
這時,我們就可以利用CSS.registerProperty()來注冊我們的自定義變量,并聲明其語法類型(syntax)為顏色類型<color>,這樣瀏覽器就能理解并對顏色應用插值方法來進行動畫
還記得上文提到的圓錐漸變conic-gradient()嗎?既然它可以用來制作餅圖,那么我們能不能讓餅圖動起來呢?答案是肯定的,定義三個變量:--color1、--color2和--pos,其中--pos的語法類型為長度百分比<length-percentage>,將其從0變為100%,餅圖就會順時針旋轉出現
利用絕對定位和層疊上下文,我們可以疊加多個從小到大的餅圖,再給它們設置不同的顏色,應用交錯動畫,就有了下面這個炫麗的效果
本demo地址:Mawaru
將交錯動畫和偽類偽元素結合起來寫出來的慎重勇者風格的菜單
本demo地址:Shinchou Menu
端需要考慮性能的同時還原設計(字體),如果 100% 還原那就只能用圖片了。如果考慮頁面兼容性和性能,需要做一定的妥協。(設計師體諒體諒前端吧)
1. 兼容性
windows/OSX
IE 8 及以上/Chrome/Safari/360/獵豹/QQ/Firefox/Opera 等...
Retina Display
2. 鋸齒是個大問題
html 僅表達 12-16px 的字體,windows 渲染 12-16px 鋸齒最小,看起來很整齊的樣子。16px 以上鋸齒大到沒朋友,所以 16px 以上的字都用圖片表達。
web 上反對使用「微軟雅黑」,字與字之間的間距過小使閱讀起來極其困難,這尼瑪不能忍啊。之前合作過的設計師酷愛微軟雅黑,但 web 上渲染出來跟 Photoshop 上的完全沒法比。
windows 下「宋體」其實沒那么丑。
3. 選擇一個合適的英文字體
英文字體數不過來的多,有瘦的、胖的、圓的、銳利的等... 在合適的場合用合適的字體就好。
如果你希望英文不要搶風頭,比較瘦的 hevetica 系列比較合適。如果你希望圓滑清晰一點 lucida 系列比較合適。如果是演示代碼,menlo 等字體也很清晰。
選擇的英文字體合適還是不合適,現場是檢驗設計的唯一標準。把字體寫進頁面里,看看效果好不好,是不是對齊、漂亮、兼容性好,喜歡就好。
4. 前后順序
font-family: "Lucida Grande", Lucida Sans Unicode, Hiragino Sans GB, WenQuanYi Micro Hei, Verdana, Aril, sans-serif;
font-family 先寫英文后寫中文,這樣先渲染英文的英文,后渲染中文的中文。如果先寫中文,則會渲染中文的英文和中文的中文。
我把 Hiragino Sans GB 寫在 verdana 之前,是為了如果 lucida 系列渲染不出來,希望在 OSX 先渲染冬青黑的英文,而不是先渲染 verdana 和 aril。
5. 細節還是要注意的啦
-webkit-font-smoothing: antialiased;
參考1:-webkit-font-smoothing
參考2:mac下網頁中文字體優化前端觀察
6. 有點規范也是好的
#000 #333 #666 #999 #ccc #eee
黑白色系多用一些安全色,讓前端開發的時候省了很多事情,而且渲染結果也不錯的啊。要說安全色不夠還原設計,那只能說設計師水平不行啊。
*請認真填寫需求信息,我們會在24小時內與您取得聯系。