У меня есть контейнер с текстом. Контейнер должен иметь цвет фона (rgba (242,156,51,0.15) и зигзагообразную границу с другим цветом, например, оранжевым. Возможно ли это?
Смотрите изображение ниже, как я хочу
Это то, что у меня есть
.container {
height: 500px;
position: relative;
padding: 30px 8px 32px 8px;
background: #dddccf;
}
.container:after {
background: linear-gradient(-45deg, #ffffff 16px, transparent 0), linear-gradient(45deg, #ffffff 16px, transparent 0);
background-position: left-bottom;
background-repeat: repeat-x;
background-size: 32px 32px;
content: " ";
display: block;
position: absolute;
top: -7px;
left: 0px;
width: 100%;
height: 32px;
transform: rotate(180deg)
}<div class = "container">
Lorem Ipsum
</div>нужно, чтобы эта граница была со всех 4 сторон?






Простое решение - объединить SVG и несколько фонов. Идея состоит в том, чтобы создать верхнюю форму с помощью SVG и повторить ее:
.container {
width:400px;
margin:50px;
height:200px;
background:
url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='22 -5 20 15' height='20' width='20'><path stroke='red' fill='orange' stroke-width='2' d='M16 16 L48 16 L32 0 Z' /></svg>")0 0/20px 20px repeat-x,
linear-gradient(orange,orange)0 20px/100% 100% no-repeat;
}
body {
background:linear-gradient(to right, pink,yellow);
}<div class = "container">
</div>И если вы хотите, чтобы это было со всех сторон, вы можете попробовать это:
.container {
width:400px;
margin:50px;
height:200px;
background:
url("data:image/svg+xml;utf8,<svg style='transform:rotate(180deg)' xmlns='http://www.w3.org/2000/svg' viewBox='22 -5 20 15' height='20' width='20'><path stroke='red' fill='orange' stroke-width='2' d='M16 16 L48 16 L32 0 Z' /></svg>")0 100%/20px 20px repeat-x,
url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='22 -5 20 15' height='20' width='20'><path stroke='red' fill='orange' stroke-width='2' d='M16 16 L48 16 L32 0 Z' /></svg>")20px 0/20px 20px repeat-x,
linear-gradient(orange,orange)0 20px/100% calc(100% - 40px) no-repeat;
position:relative;
}
.container:after {
content:'';
position:absolute;
top:20px;
bottom:20px;
width:20px;
right:-20px;
background:
url("data:image/svg+xml;utf8,<svg style='transform:rotate(90deg)' xmlns='http://www.w3.org/2000/svg' viewBox='22 -5 20 15' height='20' width='20'><path stroke='red' fill='orange' stroke-width='2' d='M16 16 L48 16 L32 0 Z' /></svg>")0 0/20px 20px repeat-y;
}
.container:before {
content:'';
position:absolute;
top:20px;
bottom:20px;
width:20px;
left:-20px;
background:
url("data:image/svg+xml;utf8,<svg style='transform:rotate(270deg)' xmlns='http://www.w3.org/2000/svg' viewBox='22 -5 20 15' height='20' width='20'><path stroke='red' fill='orange' stroke-width='2' d='M16 16 L48 16 L32 0 Z' /></svg>")0 0/20px 20px repeat-y;
}
body {
background:linear-gradient(to right, pink,yellow);
}<div class = "container">
</div>это происходит немного поздно, но как сделать зигзаги более плоскими (по высоте), как на добавленном мной изображении?
Вы можете отредактировать форму, настроив атрибут SVG Path d в соответствии с вашими потребностями, следуя документации здесь: developer.mozilla.org/en-US/docs/Web/SVG/Attribute/d
Зависит - в основном от тех частей, в которых вы в значительной степени не были конкретизированы, например, должно ли это работать «прозрачно» или только с твердым фоном. Кроме того, вопросы «возможно ли» здесь не приветствуются - прочтите, пожалуйста, об этом Как спросить.