實現圖片的斜線拼接,CSS是這樣處理的

CSS WebKit 文章 美女 小鄭搞碼事 2017-06-08

看標題估計也很難知道什麼是斜線拼接,為了快速知道斜線拼接是什麼意思,此處省去一堆廢話……

實現圖片的斜線拼接,CSS是這樣處理的

這篇文章我們來研究一下用CSS3屬性怎麼實現下面這張圖效果。

實現圖片的斜線拼接,CSS是這樣處理的

上面這圖是由兩張圖構成的,使用的是css3屬性masklinear gradient。沒什麼難的。通過這個實例我們就能理解這兩個屬性是怎麼用的了。

一、先來顯示兩張圖

DOM結構:

<div class="wrapper">

<div class="left"></div>

<div class="right"></div>

</div>

樣式內容:

.wrapper{

position: relative;

width: 360px;

border: 5px solid #fff;

}

.left{

background: url(1.png);

background-size: cover;

width: 100%;

height: 200px;

}

.right{

background: url(2.png);

background-size: cover;

width: 100%;

height: 200px;

}

顯示結果是這樣的:

實現圖片的斜線拼接,CSS是這樣處理的

這很簡單,很好理解,沒什麼難的,下面開始重點內容了

二、畫個斜線

為了實現斜線拼接,你總得有個斜線吧?把下面那個美女圖換成一個斜線圖。

.right{

background: -webkit-linear-gradient(left top, blue 50%, #ddd 50%);

}

結果變成這個樣子的:

實現圖片的斜線拼接,CSS是這樣處理的

沒錯,美女圖不見了,不急,下面我們在換回來。

三、換回美女圖

把背景換成真實的美女,漸變圖作為mask。

.right{

background: url(2.png);

-webkit-mask-image: -webkit-linear-gradient(left top, blue 50%, #ddd 50%);

}

這個時候又回到了顯示兩張圖的效果。是的,沒錯,那是因為:

Mask的原理是:它只會把遮罩圖裡透明像素所對應的原圖部分進行隱藏,而我們的漸變是完全不透明的。所以就沒有遮罩效果。

現在來改一下mask:

.right{

-webkit-mask-image: -webkit-linear-gradient(left top, transparent 50%, #ddd 50%);

}

這樣子就對了,效果如下圖所示:

實現圖片的斜線拼接,CSS是這樣處理的

四、層疊兩張圖

給下面那個美女圖區加個定位:

.right{

position:absolute;

left:0;

top:0;

}

這樣就得到文章一開始的那個兩張圖拼接的效果了。本文最關鍵是理清css3屬性masklinear gradient的使用原理,記住文中加粗的那句話。

短內容,說完整事,哪怕只讀一篇也能學知識。點擊關注小鄭搞碼事,說的都是那堆代碼。謝謝您的鼓勵!

相關推薦

推薦中...