gpt4 book ai didi

html - Chrome "cm"问题

转载 作者:行者123 更新时间:2023-11-28 00:14:01 24 4
gpt4 key购买 nike

我注意到 Chrome 浏览器中的元素大小存在问题。
我写了一个简单的代码:

<html>
<body>
<table border="1px">
<tbody>
<tr>
<td>
<span style="display: inline-block; width: 5cm">TEXT</span>
<span style="display: inline-block; width: 5cm">TEXT</span>
<span style="display: inline-block; width: 5cm">TEXT</span>
<span style="display: inline-block; width: 5cm">TEXT</span>
</td>
</tr>
</tbody>
</table>
</body>
</html>

我希望垂直重复 4 个跨度,每个跨度 5 厘米。它适用于 IE、Firefox 等:
IE - Works fine

但 Chrome 存在以下问题:
Chrome - Doesn't work

在 IE 中,每个 span 的宽度为 189px,td 的宽度为 772px。
在 Chrome 中,每个 span 的宽度为 189px,td 的宽度为 771px。

这是某种 Chrome 问题吗?为什么我的 td 元素不适合它的内容?对我来说,保留那些跨度元素(我不能用 div 替换它们)并以厘米为单位设置宽度很重要。删除表格边框后问题仍然存在。

最佳答案

CSS cm如果你想要固定数量的像素,单位是不可靠的。他们也不太可能在屏幕上实际测量到 5 厘米。 cm单位主要用于打印样式。是的,它可以在屏幕上使用,但不要指望它有任何准确性。

一个 5cm 的事实框呈现为 189 像素告诉我们 cm不是整数个像素。仅此一项就足以告诉您,您不太可能使用 cm 获得准确的像素级跨浏览器渲染。单位。

这不会发生。如果您想要像素完美的精度,请使用 px单位。

您在问题中说您不能更改单位。如果可能的话,你真的应该重新考虑一下,因为它只会继续给你带来这些问题。

如果您真的无法更改它们,那么我能想到的解决问题而不更改单位的一种方法是提供 <td>元素a white-space:nowrap风格。这应该强制所有跨度到同一行,无论浏览器是否认为它们应该在那里。它应该为你做的伎俩。但它并没有解决根本问题,如果您继续使用 cm,它可能会以其他方式卷土重来。屏幕上的单位。

至于究竟是什么导致了故障,我猜测 Chrome 处理浮点像素值的方式略有不同,并且在计算跨度的像素宽度时存在舍入误差<td> 多宽.如果是这种情况,那么这听起来像是 Chrome 中的错误,您可以向他们报告,但考虑到我上面所说的一切,我认为他们不会将其作为高优先级问题。

关于html - Chrome "cm"问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13360742/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com