为什么在CSS百分比宽度中使用长小数点值?

为什么在CSS百分比宽度中使用长小数点值?,css,width,decimal,responsive-design,fluid,Css,Width,Decimal,Responsive Design,Fluid,我在自己的工作中注意到,当宽度设置为33.333%时,3个流体柱填充其父元素的效果要好得多,而不是仅填充33%。我还注意到,在研究各种CSS框架(即bootstrap.CSS)时,它们的列宽上指定了14位小数!这看起来要么太过分要么太聪明了。。。但我不知道是哪个 那么,有这么多小数位的价值/好处是什么?从我收集的资料来看,关于你是应该避免小数点位还是利用小数点位,存在着一场公开辩论,我想知道这是我感兴趣的,还是不必担心。因为33≠ 33.33333 如果您将三个div设置为33%,则还有1%需要

我在自己的工作中注意到,当宽度设置为33.333%时,3个流体柱填充其父元素的效果要好得多,而不是仅填充33%。我还注意到,在研究各种CSS框架(即bootstrap.CSS)时,它们的列宽上指定了14位小数!这看起来要么太过分要么太聪明了。。。但我不知道是哪个


那么,有这么多小数位的价值/好处是什么?从我收集的资料来看,关于你是应该避免小数点位还是利用小数点位,存在着一场公开辩论,我想知道这是我感兴趣的,还是不必担心。

因为
33≠ 33.33333


如果您将三个
div设置为33%,则还有1%需要填充。这是合乎逻辑的。

在某些情况下是必需的。我在一个使用推特引导的网站上工作,它有6个div延伸整个网站。如果我只把每一个的宽度设为16.66%,那么在末尾会留下一个明显的间隙,如果我把宽度设为16.67%,那么一个div就会被推到下面的线上。这意味着要让div填满整个空间,我必须将宽度设置为16.6667%,这在Chrome和Firefox中非常有效,但Safari和IE似乎将小数点舍入到了2位,所以我在使用它们时留下了一个空白。因此,有时它可能看起来有些过分,但有时它实际上是需要的


Dave

尽管浏览器的取整方式可能不同,但实际上不需要有14位小数,因为最终转换为像素的值可能是相同的,无论使用14位还是3位小数

小数点后14位的原因很可能是因为开发人员使用了css预处理器(比如less),其中div的宽度是按照
width:100%/@列计算的


他们的预处理器可能只是使用它计算出来的全浮点作为实际css值,包括所有的小数位,而不是截断它们。

你可以说4位小数位对于当前的技术来说是合理的

对3列使用
width:33.33%
就可以了-即使是4k屏幕也不会显示间隙(4096px=4095.5px的99.99%,这将四舍五入到4096px,因此没有间隙)

但其他比率可能会有所下降

4k屏幕上的1个像素是1/4096=
宽度:0.00024%
,因此4个d.p.将保证没有间隙。你也会很安全…事实上,如果你的尺寸精确到4d.p.的话,一个20000px宽的屏幕就有可能出现间隙


……当然,浏览器支持允许!一些人已经注意到,一些浏览器会截短到2d.p.,破坏体育运动。

写这篇文章是因为其他答案实际上没有使用任何具体的事实或数据

制造Sass的人必须实际实现这个特性,这可能是一个很好的例子

节点sass中的默认精度级别为5位小数,这显然是他们做出的决定,因为JS浮点可以有5位以上

dart sass项目还提到:

Dart Sass默认为所有现有浏览器都具有足够高的精度,而使其可定制将大大降低代码的效率


5位小数似乎足够了,因为浏览器视口的最大值通常为数千位(Bootstrap 4.3使用6位小数。这与float32标准一致。(32位标准)

我猜这取决于浏览器的实现。一些浏览器可能将值解析为int,而另一些浏览器则解析为float或double?浏览器对百分比进行取整的方式各不相同。我知道33与33.333不同,我也知道浏览器对百分比进行取整的方式不同。当我看到12月14日时,我的好奇心被打动了imal places正在使用中。到目前为止,我找不到任何理由让您需要使用它。对于我来说,这似乎太过分了,作为一名彻底的开发人员,我想知道这是怎么回事。基本上,我需要知道我是应该注意它的价值还是完全忽略它。这些都是由LESS/SASS以编程方式生成的。我会使用
width:calc(100vw/6);
但我也喜欢看IE用户受苦,所以在我的情况下效果很好。或者,
calc(100%/6)