通過一張圖教會你CSS3倒影的實現(xiàn)

前言
本文主要給大家介紹了關于CSS3倒影實現(xiàn)的相關內(nèi)容,分享出來供大家參考學習,下面話不多說了,來一起看看詳細的介紹吧。
效果圖如下:
示例圖片
在CSS3之前,想要實現(xiàn)示例圖片這樣的一個倒影效果一般只能通過處理圖片的方式,而CSS3問世之后,想要實現(xiàn)這樣的效果變得非常簡單,只需一個CSS3屬性就可以輕松實現(xiàn)了。
這就是今天所要提到的box-reflect屬性。
咱們先看看W3C給出的box-reflect語法:
- box-reflect:none | <direction> <offset>? <mask-box-image>? (?代表可缺省,也就是后倆屬性可有可無)
- <direction>= above | below | left | right (分別代表:上 | 下 | 左 | 右)
- <offset>= <length> | <percentage>(分別代表:固定值 | 百分比)
- <mask-box-image>= none | <url> | <linear-gradient> | <radial-gradient>| <repeating-linear-gradient> | <repeating-radial-gradient>(分別代表:沒有遮罩圖片 | 遮罩圖片路徑 | 線性漸變 | 徑向漸變 | 重復線性漸變 | 重復徑向漸變)
- 默認值:none
box-reflect可給兩種屬性值,一種是none,為默認值,也就是沒有任何倒影效果,另一種才是我們今天所要講的,它可以同時賦予三個屬性值,它們依次代表倒影方向、元素與倒影之間的距離以及加在倒影上的遮罩圖像,其中后兩個屬性值可以缺省,但如果<mask-box-image>存在,則<offset>必填。
說了那么多干巴巴的解釋,還是聯(lián)系一下示例應該更好理解些吧。
我們現(xiàn)在來一步步地實現(xiàn)文章開頭示例圖片的投影效果:
①只給一個屬性值below。
<!--HTML代碼--> < img class="img" src="imgs/cat.jpg" />
/*CSS代碼*/ .img{ -webkit-box-reflect: below; box-reflect: below;}
實現(xiàn)效果:
②再加個5px的間距。
/*CSS代碼*/ .img{ -webkit-box-reflect: below 5px; box-reflect: below 5px;}
實現(xiàn)效果:
③最后加個圖片遮罩吧。
/*CSS代碼*/ .img{ -webkit-box-reflect: below 5px -webkit-linear-gradient(transparent 60%,rgba(0,0,0,.3)); box-reflect: below 5px linear-gradient(transparent 60%,rgba(0,0,0,.3));}
這里的圖片遮罩沒有用圖片,而是用了CSS3中的linear-gradient屬性值,它就是用于線性漸變,具體用法這里就不提了,可以直接看這里(http://www.dbjr.com.cn/css/369475.html),寫得很詳細。
實現(xiàn)效果:
這就是文章開頭示例圖片的最終效果。
接下來,再說說徑向漸變創(chuàng)建圖片遮罩和直接使用圖片遮罩。
徑向漸變的話其實跟線性漸變類似,只需要你掌握CSS3中基本的徑向漸變方法,給個簡單示例吧:
/*CSS代碼*/ .img{ -webkit-box-reflect: left 0 -webkit-radial-gradient(#000 30%,transparent); box-reflect: left 0 radial-gradient(#000 30%,transparent);}
實現(xiàn)效果:
效果很棒!好像貓咪真的在照鏡子一樣~~
那如果直接使用圖片遮罩呢?比如說我用這樣一張圖片作為遮罩:
/*CSS代碼*/ .img{ -webkit-box-reflect: right 0 url(imgs/mask.png); box-reflect: right 0 url(imgs/mask.png);}
實現(xiàn)效果:
mask.png
可以看出,遮罩圖片會完全拉伸填充倒影圖片,并且效果是完全透明部分不會顯示出來(其實CSS3漸變圖片遮罩原理也跟這個是一樣的)。
需要注意的是:以上講的所有效果不僅僅可以用在圖片上,用在其他元素上也是完全可以的,比如說文字。
兼容性:box-reflect雖然看起來效果很不錯,但是遺憾的是,目前只有webkit內(nèi)核瀏覽器兼容,不過移動端基本已經(jīng)沒有任何問題啦~~
總結
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關文章
- 以前要實現(xiàn)這種效果,我們只能乖乖的找設計去制作,然后在頁面上插入一張圖片,但是隨著CSS3的出現(xiàn),我們可以純代碼實現(xiàn),如何實現(xiàn)呢?就是通過CSS3的box-reflect屬性。下2016-11-15
- 下面小編就為大家?guī)硪黄?分鐘讓你掌握css3陰影、倒影、漸變小技巧(小編推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-08-15
用CSS3的box-reflect設置文字倒影效果的方法講解
這篇文章主要介紹了用CSS3的box-reflect設置文字倒影效果的方法講解,文中舉了包括遮罩效果在內(nèi)的一些基礎的例子,需要的朋友可以參考下2016-03-07- CSS3制作文字半透明倒影效果,可以使用box-reflect以及transform屬性的scaleY方式,下面是具體的實現(xiàn)代碼,需要的朋友可以參考下2014-08-08
- 個小demo是HTML5&CSS3實現(xiàn)的帶倒影的3D圖片走廊,主要用到了CSS3里的漸變和轉(zhuǎn)換2012-08-22