上面這個例子中倒影出現(xiàn)了圖片的下方,但實際上我們也可以將倒影安置在左側(cè)、右側(cè)或上側(cè)。
倒影偏移量
Offset屬性值用來定義圖片和倒影影像之間的間距。參考下面的代碼:
- <font color="rgb(85, 85, 85)"><font size="3"> img {
- -webkit-box-reflect: below 10px;
- }</font></font>
上面的代碼中,我們使圖片和倒影影像之間相聚10px;
2.jpg (71.12 KB, 下載次數(shù): 0)
下載附件
2016-9-1 17:41 上傳
給倒影增加消隱效果
在現(xiàn)實生活中,倒影的出現(xiàn)通常是上半部比較清晰,下面半部逐漸消隱。為了在CSS中實現(xiàn)這種效果,我們需要運(yùn)用CSS3漸變色(Gradients)功能,就像下面這樣:
- <font color="rgb(85, 85, 85)"><font size="3"> -webkit-box-reflect: below 0px -webkit-gradient(linear, left top, left bottom, from(transparent), to(rgba(250, 250, 250, 0.1)));</font></font>
這段代碼就能達(dá)到這樣的效果:
3.jpg (66.52 KB, 下載次數(shù): 0)
下載附件
2016-9-1 17:41 上傳
我們還可以使用color-stop來控制色彩過渡,讓倒影更加漂亮:
- <font color="rgb(85, 85, 85)"><font size="3"> img {
- -webkit-box-reflect: below 0px -webkit-gradient(linear, left top, left bottom, from(transparent), color-stop(70%, transparent) , to(rgba(250, 250, 250, 0.1)));
- }
- </font></font>
4.jpg (121.63 KB, 下載次數(shù): 0)
下載附件
2016-9-1 17:42 上傳
火狐瀏覽器中倒影的實現(xiàn)
目前只有Webkit瀏覽器(谷歌瀏覽器和Safari瀏覽器)實現(xiàn)box-reflect屬性。為了在火狐瀏覽器中也實現(xiàn)倒影功能,我們需要尋找另外的途徑:使用-moz-element()方法。這個方法能夠復(fù)制指定網(wǎng)頁元素的內(nèi)容。讓我們來看看下面的例子:
我們把圖片包裹著一個ID是someid的里。并且,為了存放倒影影像,我們將使用:before偽元素,就像下面:
- <font color="rgb(85, 85, 85)"><font size="3"> #someid {
- position: relative;
- /* 給倒影留下空間 */
- margin-bottom: 120px;
- }
- #someid:before {
- content:""; /* needed or nothing will be shown */
- background: -moz-linear-gradient(top, white, white 30%, rgba(255,255,255,0.9) 65%, rgba(255,255,255,0.7)) 0px 0px,
- -moz-element(#someid) 0px -127px no-repeat;
- -moz-transform: scaleY(-1); /* flip the image vertically */
- position:relative;
- height:140px;
- width: 360px; /* 需要 > image width + margin + shadow */
- top: 247px;
- left:0px;
- }
- </font></font>
這里的-moz-transform是一個負(fù)值,作用就是讓復(fù)制過來的圖形上下顛倒,達(dá)到倒影的效果。為了讓:before偽元素跟原始圖形相配合,我們需要移動它的位置。這里的背景偏移量 (-127px)是:before偽元素高(140px) – (圖片的高 (247px) + div的border (20px))。需要注意的是,火狐瀏覽器版的倒影實現(xiàn)只能用在頁面的背景是真實背景。背景色要和:before偽元素使用的漸變色的顏色一致。
因為所有的屬性都是來實現(xiàn)倒影的,而且這些屬性都有火狐瀏覽器獨(dú)有的前綴,和Webkit的倒影不沖突,所以在代碼在可以把兩個版本倒影方法都寫上,保證兩種瀏覽器里都有效果。
視頻倒影
官方文檔中說當(dāng)?shù)褂暗膶嶓w內(nèi)容變化時,倒影的內(nèi)容也會相應(yīng)更新。因此,這種技術(shù)用在視頻是有特殊的效果。
CSS倒影技術(shù)在火狐瀏覽器中的小問題
有時,火狐瀏覽器生成的漸變色圖形會比背景元素稍微小一些,導(dǎo)致有一些間隙線出現(xiàn)。為了避免這種情況出現(xiàn),在:before偽元素的頂部和底部加1px的padding,并且分別設(shè)置背景的裁剪方式和原點:
- padding: 1px 0px;
- background-origin: border-box, content-box;
- background-clip: border-box, content-box;