【问题标题】:Viewport height / width returning decimal value?视口高度/宽度返回十进制值?
【发布时间】:2015-10-23 21:29:54
【问题描述】:

视口高度通常返回一个整数值;但是我现在注意到它返回了一个带 2 个小数点的值。

为什么/如何将视口单位四舍五入?

(另外,我没有调整浏览器窗口的大小——但 100vh 有时返回 616px,有时返回 616.36px)

【问题讨论】:

  • 我相信这是依赖于浏览器的,你可以google一下。
  • 什么浏览器/设备以及如何获得视口大小? :)
  • Chrome、MacBook Pro。

标签: css viewport-units


【解决方案1】:

规范仅规定vw的1个单位是:

视口宽度的 1%

应该相当精确,因为这些单位中的 100 个应该填满整个宽度,所以四舍五入会在这里造成问题。

数字的 CSS 定义包括整数和小数,请参阅 v2v3

对于返回整数的浏览器,如果视口并非巧合地能被 100 整除,并且 1vw * 100 的结果明显偏离 - 值得向浏览器供应商提出错误。

浏览器测试结果...请注意,尺寸差异取决于浏览器尺寸和工具尺寸。

Firefox 似乎可以可靠地计算到 4dp:

height: 3.06667px;
width: 6.76667px;

一个旧版本的 IE 我有同样可靠的,但 2dp:

height: 3.78px;
width: 6.76px

你是如何获得你的号码的?

【讨论】:

  • 感谢您提供这些背景信息——这个问题对我来说特别奇怪的是我的浏览器窗口大小完全相同(没有调整大小,没有变化),但 100vh 有时会返回不同的值(616px与 616.36 像素相比)。任何想法为什么?再次感谢。
  • 在 100vh 时这是一个很小的差异(每单位 0.00 四舍五入到 2dp)......虽然这很奇怪。我添加了一些我刚刚运行的浏览器测试的结果。最终,我们可能需要知道浏览器和您获取数字的方法。
  • 我在 MacBook Pro、OS X Yosemite 上运行 Chrome 46。 100vh 只是简单地应用在 CSS 中。确实是很小的差异,但不一致会影响页面上的其他逻辑(尽管我对此有修复);更多的是出于我自己的知识,我想了解为什么会发生这种情况。再次感谢您!
  • 您真的看到了小于全高的结果吗?我猜虽然您看到报告的细微差异,但从来没有明显的差异 - 所以它只是一个亚像素奇怪。
猜你喜欢
  • 1970-01-01
  • 2017-10-21
  • 2020-12-24
  • 1970-01-01
  • 2011-09-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-06
相关资源
最近更新 更多