【发布时间】:2015-06-19 20:54:12
【问题描述】:
我正在尝试使用 SVG 在具有固定宽度但灵活高度的 HTML 块周围创建虚线边框。我非常接近,但无法显示底部。
这是一个fiddle(小提琴包含了 SVG 图像,因此它可以内联 URL 编码元素,具体而言,# 是 %23)
SVG 代码如下所示:
<svg width="300px" height="100%" xmlns="http://www.w3.org/2000/svg">
<rect x="5" y="5" width="290" height="100%"
style="fill: yellow; fill-opacity: 0.5; stroke: #009fe3; stroke-width: 3; stroke-linecap: round; stroke-dasharray: 1 7"/>
</svg>
这样的 CSS:
div.block {
box-sizing: border-box;
padding: 10px;
width: 300px;
background-image: url("dotted-border.svg");
}
我想我想要的是从底部偏移矩形,但它需要是一个像素值(5px)。看起来我想要的东西会随着更广泛的 SVG 2 采用 (http://www.w3.org/Graphics/SVG/WG/wiki/Proposals/Stroke_position) 变得微不足道,因为这样笔画就可以定位在形状内。
我知道我可以添加另一个图像并使用 CSS :after,但我很好奇!
【问题讨论】:
-
您可以使用
preserveAspectRatio属性,但虚线会根据内容高度看起来被拉伸或挤压:jsfiddle.net/eoLppgty/1