2019-08-02 描述 使用一个 SVG 图形来对两个不同的块进行分割,创建一个比标准水平分割线更为有趣的视觉展现来进行分割。 HTML CSS .shape-separator { position: relative; height: 48px; background: #333; } .shape-sepa ..

CSS 视觉 - 带形状的分割线

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

说明

  1. position: relative 为伪元素创建一个相对于该元素的笛卡尔坐标系
  2. ::after 定义一个伪元素
  3. background-image: url(...) 添加一个 SVG 图形(一个 24 x 12 的三角形)作为伪元素的背景图,使用默认的重复。他必须和被分割的块有着相同的颜色。至于其他的形状,我们可以使用 the URL-encoder for SVG
  4. position: absolute 使伪元素脱离文档流的布局,使其能够相对于他的父亲进行绝对定位
  5. width: 100% 确保元素能够占满他父亲的整个宽度
  6. height: 12px 使其和 SVG 形状保持相同的高度
  7. bottom: 0 是伪元素置于他父元素的底部

浏览器支持

支持率:99.7%
支持情况:https://caniuse.com/#feat=svg

返回总目录

每天 30 秒系列之 CSS

回帖   
请输入回帖内容...