底部带有锯齿形边框的容器仅适用于边框

时间:2018-12-06 11:20:24

标签: html css css3 frontend stylesheet

我试图制作一个在底部具有锯齿形边框的容器,如下所示:

enter image description here

我尝试过这种方法,但是我不知道该如何突袭底部的灰色背景,我只希望边框像图像一样是灰色的,有人可以为此提供帮助吗? :

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。

2 个答案:

答案 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} }路径会缩放),例如

  

Codepen demo

enter image description here

此外,如果您希望,也可以通过在某些给定的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>