2019-08-02
描述
使用一个 SVG 图形来对两个不同的块进行分割,创建一个比标准水平分割线更为有趣的视觉展现来进行分割。
HTML
<div class="shape-separator"></div>
CSS
.shape-separator {
position: relative;
height: 48px;
background: #333;
}
.shape-separator::after {
content: '';
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 12'%3E%3Cpath d='m12 0l12 12h-24z' fill='%23fff'/%3E%3C/svg%3E");
position: absolute;
width: 100%;
height: 12px;
bottom: 0;
}
Demo
说明
position: relative
为伪元素创建一个相对于该元素的笛卡尔坐标系::after
定义一个伪元素background-image: url(...)
添加一个 SVG 图形(一个 24 x 12 的三角形)作为伪元素的背景图,使用默认的重复。他必须和被分割的块有着相同的颜色。至于其他的形状,我们可以使用 the URL-encoder for SVGposition: absolute
使伪元素脱离文档流的布局,使其能够相对于他的父亲进行绝对定位width: 100%
确保元素能够占满他父亲的整个宽度height: 12px
使其和 SVG 形状保持相同的高度bottom: 0
是伪元素置于他父元素的底部
浏览器支持
支持率:99.7%
支持情况:https://caniuse.com/#feat=svg