是否可以从下图中的类似中切出三角形<div>
?
背景实际上不仅仅是颜色,而且在我的情况下是一张模糊的图片,所以我不能简单地<div>
用棕色三角形图像覆盖绿色。有没有其他的CSS方式来实现这个效果?谢谢。
是否可以从下图中的类似中切出三角形<div>
?
背景实际上不仅仅是颜色,而且在我的情况下是一张模糊的图片,所以我不能简单地<div>
用棕色三角形图像覆盖绿色。有没有其他的CSS方式来实现这个效果?谢谢。
它的错觉是可能的:http: //jsfiddle.net/2hCrw/4/
测试:IE 9、10、Firefox、Chrome、Safari 在 PC 和 iPad 上。
::before
和::after
伪元素被倾斜以提供三角形的每个边。带边框和阴影的演示:http: //jsfiddle.net/2hCrw/8/
该演示还为配备 Retina 的 iPad 添加了一项调整,以防止元素和伪元素之间出现间隙(由投影出血或亚像素渲染行为引起)。
<div id="wrapper">
<div id="test">test</div>
</div>
#wrapper {
overflow: hidden;
height: 116px;
}
#test {
height: 100px;
background-color: #ccc;
position: relative;
}
#test::before {
content:"";
position: absolute;
left: -8px;
width: 50%;
height: 16px;
top: 100px;
background-color: #ccc;
-webkit-transform: skew(-40deg);
-moz-transform: skew(-40deg);
-o-transform: skew(-40deg);
-ms-transform: skew(-40deg);
transform: skew(-40deg);
}
#test::after {
content:"";
position: absolute;
right: -8px;
width: 50%;
height: 16px;
top: 100px;
background-color: #ccc;
-webkit-transform: skew(40deg);
-moz-transform: skew(40deg);
-o-transform: skew(40deg);
-ms-transform: skew(40deg);
transform: skew(40deg);
}
作为替代方案,您可以使用透明图像并使用伪元素“扩展”其上方的元素。我已经回答了一个类似的问题,关于从元素切割的圆,并显示支持选项到 IE7(以及未来在 CSS 中真正剪切/屏蔽的选项)。
我使用clip-path: polygon(…)
了属性,但似乎只有我的 Chrome 支持它;您可以改为创建多边形图像并引用它们以mask-image
获得更广泛的支持。
无法从 css 中的 div 中剪切,但可以使用覆盖 div 的图像使其看起来像已剪切。
.triangle{
background-image: url('cut.png');
width: 24px; height: 24px;
z-index: 1;
position: absolute; top: 32px; left: 15px;
}
看起来你的身上也有一点阴影<div>
,我猜三角形应该尊重这一点。
CSS 目前没有提供直接实现这一点的方法。一种方法是创建一个绿色底部区域的图像,并在<div>
其中切出三角形(使用例如 Photoshop),将其设置为<div>
原始内部的背景,并将其放置在原始<div>
外部<div>
。
这是一个 JS Fiddle 示例,希望能解释这个想法: