使用 rem 字体大小时,Safari 在 details 元素后呈现错误
Safari renders wrong after details element when use rem font size
当字体大小设置为 rem 时,Safari 10.0.1 呈现细节元素后面的元素错误。以font-size 1px渲染的细节之后的元素。
HTML
<details>
<summary>Some details</summary>
<p>More info about the details.</p>
</details>
<ul>
<li>Lorem Ipsum</li>
<li>Lorem Ipsum</li>
<li>Lorem Ipsum</li>
<li>Lorem Ipsum</li>
<li>Lorem Ipsum</li>
<li>Lorem Ipsum</li>
</ul>
CSS
html{
font-size: 1em;
}
ul {
font-size: 1rem;
}
如果元素重新渲染(例如悬停),则元素重新绘制正确。
有什么解决方法吗?
解决方法是将细节元素设置为默认显示 none 并通过 JavaScript 显示。不干净但有效。
更好的解决方法是完全不使用标签,而是使用标准。这个错误让我疯狂了几个星期,直到我发现如何轻松修复它。
似乎是 Safari 中的一个大缺陷,其他浏览器可以正常呈现。
你试过用ems代替rems吗?
当字体大小设置为 rem 时,Safari 10.0.1 呈现细节元素后面的元素错误。以font-size 1px渲染的细节之后的元素。
HTML
<details>
<summary>Some details</summary>
<p>More info about the details.</p>
</details>
<ul>
<li>Lorem Ipsum</li>
<li>Lorem Ipsum</li>
<li>Lorem Ipsum</li>
<li>Lorem Ipsum</li>
<li>Lorem Ipsum</li>
<li>Lorem Ipsum</li>
</ul>
CSS
html{
font-size: 1em;
}
ul {
font-size: 1rem;
}
如果元素重新渲染(例如悬停),则元素重新绘制正确。
有什么解决方法吗?
解决方法是将细节元素设置为默认显示 none 并通过 JavaScript 显示。不干净但有效。
更好的解决方法是完全不使用标签,而是使用标准。这个错误让我疯狂了几个星期,直到我发现如何轻松修复它。
似乎是 Safari 中的一个大缺陷,其他浏览器可以正常呈现。
你试过用ems代替rems吗?