我试图制作一个在底部具有锯齿形边框的容器,如下所示:
我尝试过这种方法,但是我不知道该如何突袭底部的灰色背景,我只希望边框像图像一样是灰色的,有人可以为此提供帮助吗? :
https://jsfiddle.net/umw8yh21/1/
HTML:
<div class="myform">
<div class="myformMain">Content</div>
<div class="myformFooter"></div>
</div>
CSS:
.myform{
border: 4px solid lightgrey;
border-bottom: none;
}
.myformMain {
height: 200px;
padding: 36px 0;
box-sizing: border-box;
background-color: white;
}
.myformFooter:after{
content: " ";
display: block;
position: relative;
top: 0px;
left: 0px;
width: 100%;
height: 36px;
background: linear-gradient(white 0%, transparent 0%), linear-gradient(135deg, #272220 33.33%, transparent 33.33%) 0 0%, #272220 linear-gradient(45deg, #272220 33.33%, white 33.33%) 0 0%;
background: -webkit-linear-gradient(white 0%, transparent 0%), -webkit-linear-gradient(135deg, #d9d9d9 33.33%, transparent 33.33%) 0 0%, #d9d9d9 -webkit-linear-gradient(45deg, #d9d9d9 33.33%, white 33.33%) 0 0%;
background: -o-linear-gradient(white 0%, transparent 0%), -o-linear-gradient(135deg, #272220 33.33%, transparent 33.33%) 0 0%, #272220 -o-linear-gradient(45deg, #272220 33.33%, white 33.33%) 0 0%;
background: -moz-linear-gradient(white 0%, transparent 0%), -moz-linear-gradient(135deg, #272220 33.33%, transparent 33.33%) 0 0%, #272220 -moz-linear-gradient(45deg, #272220 33.33%, white 33.33%) 0 0%;
background: -ms-linear-gradient(white 0%, transparent 0%), -ms-linear-gradient(135deg, #272220 33.33%, transparent 33.33%) 0 0%, #272220 -ms-linear-gradient(45deg, #272220 33.33%, white 33.33%) 0 0%;
background-repeat: repeat-x;
background-size: 0px 47%, 14px 41px, 14px 42px
}
编辑:其他类似的答案也不是我要找的,我已经检查了它们,我需要一种方法来使具有相同大小的边框为锯齿形,而不是使用任何svg / png或纹理css。
答案 0 :(得分:2)
您可以将SVG
属性设置为non-scaling-stroke
作为底部重复的背景
div {
width: 50%;
height: 180px;
border: 4px #ededed solid;
border-bottom: 0;
background-image: url('data:image/svg+xml;utf8, <svg viewBox="0 0 200 110" xmlns="http://www.w3.org/2000/svg"><path d="M -15 110 L100 10 L215 110" fill="none" stroke="%23ededed" stroke-width="4" vector-effect="non-scaling-stroke"/></svg>');
background-position: bottom left;
background-size: 10% auto;
background-repeat: repeat-x;
}
<div></div>
只需为边框宽度和stroke-width
的{{1}}属性选择相同的值。
如果您需要用文本填充此元素,请记住在底部添加一些空间(例如使用path
),以使内容不与行重叠。
另外值得注意的是,属性padding-bottom
将阻止缩放路径,因此您甚至可以将背景无缝地应用于响应元素(否则,正常边框将保持固定宽度,而{{1} }路径会缩放),例如
此外,如果您希望,也可以通过在某些给定的mediaquery中更改vector-effect="non-scaling-stroke"
来更改zizag的数量,例如
SVG
答案 1 :(得分:0)
您可以尝试如下操作:
.container {
height:150px;
width:320px;
border:3px solid grey;
border-bottom:none;
background:
linear-gradient(135deg,transparent 50%,grey 50%,grey calc(50% + 3px),transparent 0) -13px 100%,
linear-gradient(45deg,transparent 50%, grey 50%,grey calc(50% + 3px),transparent 0) 6px 100%;
background-size:40px 20px;
background-repeat:repeat-x;
}
body {
background:pink;
}
<div class="container">
</div>