如何创建三角形响应式背景图像?
How do I create a triangular responsive background image?
我想要两个图像作为背景,它们是对角分开的。我认为最好的办法是使用 SVG 形状作为剪贴蒙版,但我不确定。
下图显示了我想要实现的目标。如您所见,这两张图片完全沿对角线分割。
一直困扰我的问题是,我找不到一种方法来创建这种拆分,同时不拉伸这些图像并始终保持全屏显示(因此响应)。
我的question/goal:
如何制作一个包含两个沿对角线分开的图像的页面,这两个图像一起构成一个全屏视图,其中图像没有被拉伸并且分割在两个角上。
编辑:在 this topic 的帮助下,您可以轻松创建两条对角线。这是将图像作为这些多边形背景的问题。但是,图像应该是全屏的,因此应该缩放,而不是拉伸。
复制下面的答案
Your best bet may be to use a simple SVG
<svg viewBox="0 0 25 25" preserveAspectRatio="none">
<polyline points="0,0 25,0 0,25" fill="#FF0000" id="top"/>
<polyline points="25,0 25,25 0,25" fill="#00FF00" id="bottom"/>
</svg>
You can use CSS to style the elements on hover:
#top:hover {
fill: #880000;
}
Demo here: http://codepen.io/Godwin/pen/mIqlA
您可以使用 clip-path
结果 - https://jsfiddle.net/11kn8mjn/4/
它是如何完成的
两个具有响应式背景图像的全屏 div 彼此重叠。
剪辑蒙版用于显示每个 div 的响应三角形。
代码
两个 div 彼此重叠:
div {
position: absolute;
width: 100vw;
height: 100vh;
}
具有响应式背景图片:
.div-one { background: url('http://i.imgur.com/8LgIL7B.jpg') center / cover no-repeat; }
.div-two { background: url('http://i.imgur.com/fBL4WC1.jpg') center / cover no-repeat; }
剪辑路径显示每个 div 的三角形。使用 vh 和 vw 值使三角形响应:
.div-one { clip-path: polygon(0 0, 100vh 0, 100vw 0); }
.div-two { clip-path: polygon(100vw 0, 0% 100vh, 100vw 100vh); }
浏览器支持
对剪辑路径的支持不是很好 - http://caniuse.com/#feat=css-clip-path
我想要两个图像作为背景,它们是对角分开的。我认为最好的办法是使用 SVG 形状作为剪贴蒙版,但我不确定。
下图显示了我想要实现的目标。如您所见,这两张图片完全沿对角线分割。
一直困扰我的问题是,我找不到一种方法来创建这种拆分,同时不拉伸这些图像并始终保持全屏显示(因此响应)。
我的question/goal: 如何制作一个包含两个沿对角线分开的图像的页面,这两个图像一起构成一个全屏视图,其中图像没有被拉伸并且分割在两个角上。
编辑:在 this topic 的帮助下,您可以轻松创建两条对角线。这是将图像作为这些多边形背景的问题。但是,图像应该是全屏的,因此应该缩放,而不是拉伸。
复制下面的答案
Your best bet may be to use a simple SVG
<svg viewBox="0 0 25 25" preserveAspectRatio="none">
<polyline points="0,0 25,0 0,25" fill="#FF0000" id="top"/>
<polyline points="25,0 25,25 0,25" fill="#00FF00" id="bottom"/>
</svg>
You can use CSS to style the elements on hover:
#top:hover {
fill: #880000;
}
Demo here: http://codepen.io/Godwin/pen/mIqlA
您可以使用 clip-path
结果 - https://jsfiddle.net/11kn8mjn/4/
它是如何完成的
两个具有响应式背景图像的全屏 div 彼此重叠。
剪辑蒙版用于显示每个 div 的响应三角形。
代码
两个 div 彼此重叠:
div {
position: absolute;
width: 100vw;
height: 100vh;
}
具有响应式背景图片:
.div-one { background: url('http://i.imgur.com/8LgIL7B.jpg') center / cover no-repeat; }
.div-two { background: url('http://i.imgur.com/fBL4WC1.jpg') center / cover no-repeat; }
剪辑路径显示每个 div 的三角形。使用 vh 和 vw 值使三角形响应:
.div-one { clip-path: polygon(0 0, 100vh 0, 100vw 0); }
.div-two { clip-path: polygon(100vw 0, 0% 100vh, 100vw 100vh); }
浏览器支持
对剪辑路径的支持不是很好 - http://caniuse.com/#feat=css-clip-path