龙空技术网

实现图片的斜线拼接,CSS是这样处理的

小郑搞码事 1513

前言:

当前姐妹们对“div设置对角斜线”大概比较关切,姐妹们都需要剖析一些“div设置对角斜线”的相关内容。那么小编也在网上搜集了一些关于“div设置对角斜线””的相关文章,希望我们能喜欢,小伙伴们一起来学习一下吧!

看标题估计也很难知道什么是斜线拼接,为了快速知道斜线拼接是什么意思,此处省去一堆废话……

这篇文章我们来研究一下用CSS3属性怎么实现下面这张图效果。

上面这图是由两张图构成的,使用的是css3属性mask和linear 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;

}

显示结果是这样的:

这很简单,很好理解,没什么难的,下面开始重点内容了

二、画个斜线

为了实现斜线拼接,你总得有个斜线吧?把下面那个美女图换成一个斜线图。

.right{

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

}

结果变成这个样子的:

没错,美女图不见了,不急,下面我们在换回来。

三、换回美女图

把背景换成真实的美女,渐变图作为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%);

}

这样子就对了,效果如下图所示:

四、层叠两张图

给下面那个美女图区加个定位:

.right{

position:absolute;

left:0;

top:0;

}

这样就得到文章一开始的那个两张图拼接的效果了。本文最关键是理清css3属性mask和linear gradient的使用原理,记住文中加粗的那句话。

短内容,说完整事,哪怕只读一篇也能学知识。点击关注小郑搞码事,说的都是那堆代码。谢谢您的鼓励!

标签: #div设置对角斜线