【发布时间】:2022-02-16 18:08:20
【问题描述】:
Chrome 似乎奇怪地渲染了 SVG 边框图像......
示例代码: html
.border-img{
margin:100px;
width:100px;
height:30px;
border-image: url('data:image/svg+xml,<svg viewBox="0 0 30 30" xmlns="http://www.w3.org/2000/svg"><rect width="30" height="30" rx="10" fill="red"/></svg>');
border-image-slice: 40 40 40 40 fill;
border-image-width: 10px;
border-image-outset: 25px 10px;
background-size: contain;
}
.border-img.ok {
height: 31px
}
<div class="border-img">test content</div>
<div class="border-img ok">test content</div>
如您所见,上面的项目的边框被破坏了,只是因为它的高度是30px 而将高度设置为31px 可以解决所有问题。
JSFiddle:https://jsfiddle.net/6mydfczo/17/
无论容器大小如何,有什么技巧可以修复 svg 边框以正确呈现?
【问题讨论】:
-
url 内的svg 元素需要一个宽度和一个高度。因为你有border-image-slice: 40 40 40 40 fill;我至少会使用 width="81" height="81"。请阅读border-image
标签: css google-chrome svg