CSS3 Как создаются зигзагообразные границы?

Я видел много новых веб-сайтов, которые имеют зигзагообразную границу между изображением и div. Когда вы открываете изображение в новой вкладке, зигзага там нет, поэтому он был создан с использованием CSS3 или HTML5. Кто-нибудь знает, как это делается?

Вот некоторые примеры:

Подождите, пока они загрузятся.

2 ответа

Решение

Границы зигзага сделаны с использованием linear-gradient

  • 50% это размытие
  • 315 градусов - вращение правой стороны
  • 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>

Первый создается с повторяющимся фоновым изображением, а второй - с псевдоэлементом: 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;
}

Вот ссылка на фоновое изображение из первого примера: http://www.cssvillain.com/hungry/images/assets/parallax-bottom-alt.png

Другие вопросы по тегам