CSS3 锯齿形边框是如何制作的?

CSS3 How are zigzagged borders made?

我看到很多新网站在图像和 div 之间有锯齿形边框。当您在新选项卡中打开图像时,之字形不存在,因此它是使用 CSS3 或 HTML5 创建的。有谁知道是怎么做到的?

这里有一些例子:

等待加载。

第一个是用可重复的背景图片构建的,第二个是用 :before 伪元素构建的:

.ss-style-top::before {
  position: absolute;
  content: '';
  left: 0;
  width: 100%;
  height: 30px;
  background-size: 25px 100%;
  top: 0;
  background-image: linear-gradient(315deg, #FFF 50%, transparent 50%), 
  linear-gradient(45deg, #FFF 50%, transparent 50%);
  margin-top: -30px;
  z-index: 100;
}

这里是第一个例子的背景图片link:http://www.cssvillain.com/hungry/images/assets/parallax-bottom-alt.png

之字形边框使用 linear-gradient

制作
  • 50% 是模糊
  • 315deg为右侧旋转
  • 45度为左侧旋转
  • 背景大小是三角形的宽度和位置

div {
  width: 100%;
  height: 50px;
  background-size: 25px 120%;
  background-image: linear-gradient(315deg, red 50%, rgba(0, 0, 0, 0) 50%), 
                    linear-gradient(45deg, red 50%, black 50%);
}
<div></div>

您还可以通过更改 deg

来更改旋转角度

div {
  width: 100%;
  height: 50px;
  background-size: 25px 150%;
  background-image: linear-gradient(297deg, red 50%, rgba(0, 0, 0, 0) 50%), 
                    linear-gradient(63deg, red 50%, black 50%);
}
<div></div>