用1px网格填充表格(内部和外部)的最佳方法是什么?或者,可能是Chrome和Edge在某些情况下有边框问题?
这个Codeply做了显而易见的事情-它将border-right
和border-bottom
设置在table
上,并将border-top
和border-left
设置在td,th
上。然而,这并不奏效。它在Android和Firefox上看起来不错(Windows上是HD/1080, Linux上是UHD/4K)。它在Edge和Chrome(在Windows和Linux上都有Chrome)上存在缺陷。这基本上是可以的,但一些内部和外部边框看起来像2px。
请注意,我希望我不是在装傻。网络上有很多类似的问题,但我在不同的浏览器中找不到任何一致性。例如,这个SO答案有一个jsFiddle,它在Firefox(108.0.2)和Chrome(108.0.5359.125)上显示不同。Chrome版本显示了顶部和底部竖线的双宽边框,以及中线的单宽边框。火狐看起来不错。
Chrome(通过扩展,Edge)在缩放1px边框时被打破。
这不适用于Firefox(反正我没有注意到)。对于Win10和Win11,当显示缩放不是100%时,1px的边框有时会以最小宽度显示,有时会变宽。如果你有两条相邻的线,其中一条可以显示为"1像素"。在125%的显示器上(大多数笔记本电脑),但下一个可能显示为"2像素"。这意味着你不能,例如,在填写表格的网格时,将所有的边框设置为1px。
有一个简单的解决办法-只需将边框设置为0.1px即可。这个Codeply是问题中0.1px的版本,并正确显示在:
- win10, UHD/4K,显示150%,Firefox, Chrome, Edge
- win11, HD/1080,显示125%,Firefox, Chrome, Edge Android
- Ubuntu 22、Firefox和Chromium
不确定在Ubuntu中如何处理显示缩放,我也在Win10上使用VNC查看结果,这可能会使问题复杂化。