Я нашел, как разделить страницу вертикальной линией - см. jsfiddle:

Код ниже -
body {
background-color: white;
}
#background {
position: fixed;
top: 0px;
left: 0px;
width: 50%;
height: 100%;
background-color: black;
z-index: 1;
}
#content {
position: relative;
z-index: 2;
padding: 30px;
text-align: center;
font-weight: bold;
color: red;
font-family: Arial, sans-serif;
}
Теперь я хотел бы заменить вертикальную линию на ломаную, чтобы получилось что-то вроде этого:

Как я могу это сделать с помощью CSS?
P.S. Я не могу использовать фоновое изображение, так как ломаные линии могут быть разными (точки будут иметь разные координаты).






Вы можете рассмотреть несколько вариантов фона для достижения этой цели, но может быть сложно найти разные значения в зависимости от формы. Это в основном комбинация формы треугольника и формы прямоугольника друг над другом, чтобы создать последний слой (изменение цвета поможет вам идентифицировать каждого из них).
body {
margin:0;
}
.box {
height:100vh;
background:
linear-gradient(to bottom right,#000 49.8%,transparent 50%) 0 0/70% 120%,
linear-gradient(to top right,#000 49.8%,transparent 50%) 0 0/60% 70%,
linear-gradient(#000,#000) 0 100%/50% 31%,
linear-gradient(to bottom right,#000 49.8%,transparent 50%) 55.3% 100%/10% 30.2%;
background-repeat:no-repeat;
}<div class = "box">
</div>Вы также можете рассмотреть clip-path в псевдоэлементе, и это будет проще (https://bennettfeely.com/clippy/)
body {
margin:0;
}
.box {
height:100vh;
position:relative;
}
.box:before {
content:"";
position:absolute;
top:0;
left:0;
bottom:0;
right:20%;
background:#000;
-webkit-clip-path: polygon(0 0, 72% 0, 59% 33%, 68% 62%, 47% 100%, 0 100%);
clip-path: polygon(0 0, 72% 0, 59% 33%, 68% 62%, 47% 100%, 0 100%);
}<div class = "box">
</div>