这太奇怪了。我正在测试同一个web应用程序(Chrome嵌入电子),我在两台计算机上都有两个精确的副本,一个是带有1080 p显示器的windows 10,另一个是4K的显示器(这应该是不相关的,我想这应该是编辑了:现在我开始认为这就是问题所在)。
但是,当我在两个站点上运行应用程序时,我看到了一个无法解释的区别,除了不使用边框参数之外,我不知道如何修复。
问题是,通过在圆或方形中使用border: 1px solid #000
,它在一台计算机上计算为1px,在另一台计算机中计算为0.667px。
为什么会发生这种事?
编辑:我可以看到,在我尝试的任何边框中都会出现这种情况。我可以看到,如果我把2px,那么它计算为2px,但任何在1px中计算为0.667px在4K-计算机。
EDIT2:与em
相同,0.2
的em
计算为2px,0.1
的计算为0.667px。从0.132
和0.133
em计算,从0.667到1.333 px,不可能得到1px (!)
左 ->线不对齐,因为带有边框的正方形不加2px,而加0.667x2 (计算机1)
由于边框计算为2px (计算机2),所以行是对齐的。
下面你可以看到Chrome开发的控制台信息
发布于 2017-03-10 12:19:38
我很难找到关于这方面的任何确切信息,但我对为什么会发生这种情况相当有信心。
4K屏幕具有如此高的像素密度,以至于Chromium正在缩放页面上的元素,使它们在4K屏幕上看起来不太小。在这种情况下,它似乎使用的缩放因子为1.5。从屏幕截图中可以清楚地看到这一点:文本和框在4K屏幕上显示的大小都是原来的1.5倍。
那么,为什么1 1px边框也不扩展到1.5px呢?因为它看上去不脆。似乎有一个假设,当您指定一个1px边框时,您真正想要的是屏幕支持的最小边框,所以您仍然可以在一个4K屏幕上得到1px,因此它看起来仍然很清晰。
铬刻度高新闻部透明,以便在网页检查器,你仍然看到原来的CSS值。因此,尽管您的10 in font-size
现在确实被呈现为15 in,但它仍然在检查器中显示为10 in。为了显示边框没有放大,1 1px除以1.5,即0.667px。
这种行为在我看来是明智的,但作为一种副作用,它会扰乱你的定位。以下是几种可能的解决办法:
box-sizing: border-box
,以便指定框的宽度和高度包括边框。默认值(content-box
)在指定的框大小之外添加边框,这就是当前出现对齐问题的原因。发布于 2017-03-10 05:54:49
你为什么不使用@媒体屏幕并适应你的需要呢?
@media screen and (min-width: 2160px) {border:
https://stackoverflow.com/questions/42710882
复制相似问题