首頁  >  文章  >  web前端  >  如何使用CSS3的box-reflect來製作倒影效果

如何使用CSS3的box-reflect來製作倒影效果

不言
不言原創
2018-06-20 17:04:502216瀏覽

以前要實現這種效果,我們只能乖乖的找設計去製作,然後在頁面上插入一張圖片,但是隨著CSS3的出現,我們可以純程式碼實現,如何實現呢?就是透過CSS3的box-reflect屬性。以下這篇文章就跟大家分享了用CSS3來製作倒影效果的方法,有需要的朋友可以參考借鏡。

相容性

既然是CSS3的屬性,我們當然要來看看相容性:點擊查看

#接下來,我們來了解box-reflect如何使用?

語法如下:

#
  -webkit-box-reflect:none | <direction> <offset>? <mask-box-image>?
  box-reflect:none | <direction> <offset>? <mask-box-image>?

##屬性說明:

none:此值為預設值,表示無倒影;


direction:產生倒影的方向


#above:指定倒影在物件的上邊below:指定倒影在物件的下邊left:指定倒影在物件的左邊right:指定倒影在物件的右邊


offset:圖片與倒影間隔


length:用長度值定義倒影與物件之間的間隔。可以為負值 percentage:用百分比來定義倒影與物件之間的間隔。可以為負值


mask-box-image:用來設定倒影的遮罩效果;


值可以是:

none:無遮罩影像url:使用絕對或相對位址指定遮罩影像。 linear-gradient:使用線性漸層建立遮罩影像。 radial-gradient:使用徑向(放射性)漸層建立遮罩影像。 repeating-linear-gradient:使用重複的線性漸層來建立背遮罩像。 repeating-radial-gradient:使用重複的徑向(放射性)漸層來建立遮罩影像。

光是紙上談兵可不行,我們還是要透過實例來看看效果。

倒影的方向

在這個範例中,我弄了三個img:

#

<p class="box1">   
  <img src="http://7s1r1c.com1.z0.glb.clouddn.com/t_sdfsdfs123.jpg" alt="" />   
</p>   
<p class="box2">   
  <img src="http://7s1r1c.com1.z0.glb.clouddn.com/t_sdfsdfs123.jpg" alt="" />   
</p>   
<p class="box3">   
  <img src="http://7s1r1c.com1.z0.glb.clouddn.com/t_sdfsdfs123.jpg" alt="" />   
</p>

css如下:

.box1,.box2,.box3{   
  width:120px;   
  float:left;   
  margin-right:180px;   
}   
img{   
  width:100%;   
}   
.box1 img{   
  -webkit-box-reflect:right;   
  box-reflect:right;   
}   
.box2 img,.box3 img{   
  -webkit-box-reflect: above;   
  box-reflect:above;   
}   
.box3{   
  padding-top:200px;   
}

效果圖如下:

在這裡有一個疑問,box2和box3中的圖片都設定了box-reflect:above,都是在頂部產生投影,為什麼box2看不到效果呢?原因就是我為box3設定了padding-top:200px,而box2沒有,初步估計是因為沒有空間讓其顯示產生的倒影。

倒影與物件之間的距離

#了解了產生倒影的方向後,我們來看第二個屬性,還是看例子:


依舊用三張圖片,不過樣式改一下:

.box1 img{   
  -webkit-box-reflect:below 30px;   
  box-reflect:below 30px;   
}   
.box2 img{   
  -webkit-box-reflect:below -30px;   
  box-reflect:below -30px;   
}   
.box3 img{   
  -webkit-box-reflect:below 5%;   
  box-reflect:below 5%;   
}

##效果圖如下:

接下來我們學習最後一個屬性。


遮罩效果(1)使用漸層為倒影加入遮罩效果




#################################1
  .box1 img{   
  -webkit-box-reflect:below 0 -webkit-linear-gradient(top,rgba(250,250,250,0),rgba(250,250,250,.0) 30%,rgba(250,250,250,.3));   
  box-reflect:below 0 linear-gradient(top,rgba(250,250,250,0),rgba(250,250,250,.0) 30%,rgba(250,250,250,.3));   
}
#########效果如下:###############使用背景圖為倒影添加遮罩效果#########首先我們需要一張五角星的png圖:##################
.box2 img{   
  -webkit-box-reflect:below 0 url(http://7s1r1c.com1.z0.glb.clouddn.com/t_star.png);   
  box-reflect:below 0 url(http://7s1r1c.com1.z0.glb.clouddn.com/t_star.png);   
}
#########效果如下:############ ###以上就是本文的全部內容,希望對大家的學習有所幫助,更多相關內容請關注PHP中文網! ######相關推薦:#########如何使用CSS3配合IE濾鏡實現漸變和投影的效果###############如何使用CSS實現滑鼠上移圖示旋轉的效果#####################

以上是如何使用CSS3的box-reflect來製作倒影效果的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn