You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Chrome浏览器SVG渲染异常是否为浏览器Bug?

Chrome最新版本下SVG缩放异常及闪烁问题

Chrome更新至最新版本后,网站SVG元素出现以下问题:

  • 特定屏幕尺寸下缩放异常
  • 调整窗口时SVG会闪烁

经测试,该问题与屏幕宽度相关,使用auto尺寸(含隐式自动尺寸)或vw单位时会触发。

基础复现代码

CSS

.container {
    display: block;
    width: 100%;
    border: 1px solid red;
}

.svg-element {
    display: block;
    box-sizing: border-box;
    width: 100%;
    height: auto; /* 用`10vw`也会触发问题,`10px`则不会 */
    fill: darkgrey;
}

HTML

<div class="container">
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 10" preserveAspectRatio="none" class="svg-element">
        <rect x="0" y="0" width="100" height="10"/>
    </svg>
</div>

尽管代码已极简,仍尝试过调整SVG的viewBox、preserveAspectRatio属性,以及object-fit、aspect-ratio等各类CSS属性,但问题仍未解决。此前版本的Chrome中功能正常,目前Edge、Vivaldi及Firefox浏览器均无此问题。

请问这是Chrome的Bug,还是我的实现存在问题?是否有可行的解决方案?目前发现使用px等绝对单位可解决问题,但希望SVG元素高度能自动适配。


补充测试结果

进一步测试发现,当SVG元素设置绝对宽度且高度为auto时,在特定宽度区间也会触发该问题,以下是复现代码:

CSS

.container {
    display: block;
    width: min-content;
    border: 1px solid red;
}

.svg-element {
    display: block;
    box-sizing: border-box;
    width: 304px; /* 301px至304px区间内会触发问题 */
    height: auto;
    fill: darkgrey;
}

HTML

<div class="container">
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 10" preserveAspectRatio="none" class="svg-element">
        <rect x="0" y="0" width="100" height="10"/>
    </svg>
</div>

Chrome开发者工具显示SVG元素尺寸计算正确,但渲染出的SVG未按预期填充元素尺寸。


内容的提问来源于stack exchange,提问作者Unknown Coder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 21:53:21