【发布时间】:2020-08-29 19:17:08
【问题描述】:
我在我的页面上使用 svg 图标,带有符号定义和使用标签,如代码 sn-p 所示。
这在 Chrome 浏览器中运行良好,但我检测到 Edge 和 Safari 存在一些问题。
svg:not(:root) {
overflow: hidden;
}
.icon-search {
width: .9287109375em;
font-size: 14px;
}
.icon {
display: inline-block;
width: 1em;
height: 1em;
stroke-width: 0;
stroke: currentColor;
fill: currentColor;
font-size: 14px;
}
<svg style="display:none;" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><symbol id="icon-search" viewBox="0 0 60 60" width="30px" height="30px"><path id="font-awesome-svg-search" d="M18 13c0-3.859-3.141-7-7-7s-7 3.141-7 7 3.141 7 7 7 7-3.141 7-7zM26 26c0 1.094-0.906 2-2 2-0.531 0-1.047-0.219-1.406-0.594l-5.359-5.344c-1.828 1.266-4.016 1.937-6.234 1.937-6.078 0-11-4.922-11-11s4.922-11 11-11 11 4.922 11 11c0 2.219-0.672 4.406-1.937 6.234l5.359 5.359c0.359 0.359 0.578 0.875 0.578 1.406z"></path></symbol>
</defs></svg>
<svg class="icon icon-search">
<use xlink:href="#icon-search">
</use>
</svg>
我已经意识到,我可以将大小值从 1em 更改为 2em,以在边缘浏览器中获得类似的渲染,如 jfiddle 的屏幕截图所示:
为什么看起来不一样?我该怎么做,根据浏览器(js或css函数)改变行为?
【问题讨论】:
-
而
rem而不是em给出了类似的结果? -
是的,我使用
rem而不是em得到相同的结果。
标签: css svg cross-browser