我在div元素中使用了自定义的虚线样式边框。我必须使用背景创建自定义边框,因为必须在点之间定义空格。但是由于边界半径,角中没有显示。如何解决该问题或其他解决方案?
我希望自定义边框也遵循半径。
.element {
width: 400px;
height: 400px;
background: linear-gradient(to right, black 50%, rgba(255, 255, 255, 0) 0%), linear-gradient(black 50%, rgba(255, 255, 255, 0) 0%), linear-gradient(to right, black 50%, rgba(255, 255, 255, 0) 0%), linear-gradient(black 50%, rgba(255, 255, 255, 0) 0%);
background-position: top, right, bottom, left;
background-repeat: repeat-x, repeat-y;
background-size: 20px 1px, 1px 20px;
border-radius: 70px;
}
<div class="element">
</div>
答案 0 :(得分:6)
这可能更适合SVG,您可以使用stroke-dasharray
svg {
width: 250px;
}
path {
fill: none;
stroke-dasharray: 13, 20;
}
path.more {
fill: none;
stroke-dasharray: 10, 30;
}
path.less {
fill: none;
stroke-dasharray: 25, 15;
}
<svg viewBox="50 70 300 300">
<path d="M100,100 h200 a80,80 0 0 1 20,20 v200 a80,80 0 0 1 -20,20 h-200 a80,80 0 0 1 -20,-20 v-200 a80,80 0 0 1 20,-20 z" stroke="black" stroke-width="2" />
</svg>
<svg viewBox="50 70 300 300">
<path d="M100,100 h200 a80,80 0 0 1 20,20 v200 a80,80 0 0 1 -20,20 h-200 a80,80 0 0 1 -20,-20 v-200 a80,80 0 0 1 20,-20 z" class="more" stroke="black" stroke-width="2" />
</svg>
<svg viewBox="50 70 300 300">
<path d="M100,100 h200 a80,80 0 0 1 20,20 v200 a80,80 0 0 1 -20,20 h-200 a80,80 0 0 1 -20,-20 v-200 a80,80 0 0 1 20,-20 z" class="less" stroke="black" stroke-width="2" />
</svg>
请查看此问题,以获取有关如何使用SVG定义/控制半径的更多方法:SVG rounded corner
答案 1 :(得分:-2)
您可以使用SVG矩形和stroke-dasharray
来完成此操作,就像我在这里所做的一样:
.element {
width: 400px;
height: 400px;
border-radius: 70px;
position: relative;
}
.element svg {
stroke-width: 0.5;
stroke-dasharray: 10, 12;
fill: none;
stroke: black;
}
.element .content {
position: absolute;
top: 25px;
left: 25px;
}
<div class="element">
<svg width="400" height="400">
<rect x="1" y="1" rx="70" ry="70" width="398" height="398">
</svg>
<div class="content">
put content here...
</div>
</div>