CSS3做出倒影的圖文詳解

來源:互聯網
上載者:User
這次給大家帶來CSS3做出倒影的圖文詳解,CSS3做出倒影效果的注意事項有哪些,下面就是實戰案例,一起來看一下。

如下:


樣本圖片

在CSS3之前,想要實現樣本圖片這樣的一個倒影效果一般只能通過處理圖片的方式,而CSS3問世之後,想要實現這樣的效果變得非常簡單,只需一個CSS3屬性就可以輕鬆實現了。

這就是今天所要提到的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>必填。

說了那麼多乾巴巴的解釋,還是聯絡一下樣本應該更好理解些吧。

我們現在來一步步地實現文章開頭樣本圖片的投影效果:

①只給一個屬性值below。

<!--HTML代碼-->< img class="img" src="imgs/cat.jpg" />
/*CSS代碼*/.img{ -webkit-box-reflect: below; box-reflect: below;}

實現效果:

②再加個5px的間距。

/*CSS代碼*/.img{ -webkit-box-reflect: below 5px; box-reflect: below 5px;}

實現效果:

③最後加個圖片遮罩吧。

/*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.jb51.net/css/369475.html),寫得很詳細。

實現效果:

這就是文章開頭樣本圖片的最終效果。

接下來,再說說放射狀漸層建立圖片遮罩和直接使用圖片遮罩。

放射狀漸層的話其實跟線性漸層類似,只需要你掌握CSS3中基本的放射狀漸層方法,給個簡單樣本吧:

/*CSS代碼*/.img{ -webkit-box-reflect: left 0 -webkit-radial-gradient(#000 30%,transparent); box-reflect: left 0 radial-gradient(#000 30%,transparent);}

實現效果:

效果很棒!好像貓咪真的在照鏡子一樣~~

那如果直接使用圖片遮罩呢?比如說我用這樣一張圖片作為遮罩:

/*CSS代碼*/.img{ -webkit-box-reflect: right 0 url(imgs/mask.png); box-reflect: right 0 url(imgs/mask.png);}

實現效果:


mask.png

可以看出,遮罩圖片會完全展開填充倒影圖片,並且效果是完全透明部分不會顯示出來(其實CSS3漸層圖片遮罩原理也跟這個是一樣的)。

需要注意的是:以上講的所有效果不僅僅可以用在圖片上,用在其他元素上也是完全可以的,比如說文字。

相容性:box-reflect雖然看起來效果很不錯,但是遺憾的是,目前只有webkit核心瀏覽器安全色,不過移動端基本已經沒有任何問題啦~~

相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!

推薦閱讀:

CSS3做出條紋大背景

css3文字漸層動畫

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.