在CSS中表示100%的1/3的最佳方式?

AKo*_*Kor 61 css

我有一个很大的内部<div>有三个小<div>内联.它们各有33%的宽度,但这会导致一些对齐问题,因为3*33%!= 100%.在这样的CSS中表现完美第三的最好方法是什么?也许只有33.33%?

Nat*_*ase 92

现在calc广泛支持的现代浏览器中,你可以使用:

#myDiv {
    width: calc(100%  /3);
}
Run Code Online (Sandbox Code Playgroud)

或者,如果您的浏览器不支持,您可以将其用作后备:

#myDivWithFallback {
    width: 33.33%;
    width: calc(100% / 3);
}
Run Code Online (Sandbox Code Playgroud)

  • 不要忘记后备:`.列 - 三分之一{宽度:33.33%; 宽度:计算(100%/ 3); }`.这样你就可以支持非calc浏览器了. (17认同)
  • 我发现通常需要 6 位小数才能正确计算出 div 的精确 1/3。`宽度:33.333333%;` (2认同)

Mar*_*cel 15

您是否正在考虑保证金?每列可以达到30%,中心列两侧的边距为5%.

快速举例


Bru*_*gia 8

.col_1_3 {
    width: 33%;
    float: left;
}

.col_1_3:nth-of-type(even) {
    width: 34%;
}
Run Code Online (Sandbox Code Playgroud)


Plu*_*tor 7

最高分辨率屏为非量产NEC液晶屏,分辨率为2800x2100。即使在那个尺寸下,一个像素也是屏幕宽度的 0.0357%。所以33.33%应该足够接近,直到 5,000 像素宽的屏幕成为常态。

不过,John Resig 对不同浏览器中的子像素舍入进行了一些研究,因此根据您的三列来精确等于屏幕宽度可能永远不会有完美的解决方案。

  • 这个答案不太适合未来 (3认同)
  • 2021 年:用我的 3840x2160 标准生产显示器写下此评论 (3认同)
  • 对于当前的非生产监视器来说,“高”听起来有点低。作为当前的技术上限,这看起来更合理一些。http://en.wikipedia.org/wiki/Ultra_High_Definition_Television (2认同)