html - Chrome 奇怪的 CSS 问题,在 Firefox 上运行良好
问题描述
我想知道为什么 Chrome 和 Firefox 在渲染 CSS 方面存在显着差异。在 Chrome 的情况下,子元素没有占用完整的宽度和高度(可以在子元素的顶部和左侧看到父元素的黑色)。在 Firefox 的情况下,边缘是平滑的,并且子级的尺寸与父级相同。我不知道为什么会这样。
这些是用于演示的 Chrome 和 Firefox 上的屏幕截图:
铬合金:
火狐:
下面是我的代码:
* {
margin: 0;
padding: 0;
}
.parent {
position: relative;
width: 200px;
height: 200px;
border: 10px solid white;
background-color: black;
}
.child {
position: absolute;
top: 0;
left: 0;
height: 100%;
width: 100%;
background-color: lightcoral;
}
<div class="parent">
<div class="child">Content</div>
</div>
我只想知道为什么会发生这种情况以及如何修复它以使其在所有浏览器中看起来都一样。
PS:在可用时使用硬件加速是ON
解决方案
由于在父项上设置了边框,因此似乎出现了黑线。
虽然我不完全理解为什么会在某些浏览器而不是其他浏览器上发生这种情况,以及为什么会在某些缩放级别而不是其他浏览器上发生(至少在我笔记本电脑上 Windows 10 上的 Chrome/Edge 上),但我怀疑这是因为浏览器计算 CSS 边框的边界。
我们没有看到完整的 CSS 像素,而是看起来更纤细的,可能只有一个屏幕像素宽度的黑色线条。当缩放增加或减少时,这可能会消失,或者显示在右侧/底部而不是左侧/顶部边框。就好像根据屏幕像素计算边框实际位置的算法采用例如用于一个 CSS 像素的 n 个屏幕像素并采用中点。我还没有找到任何关于使用什么算法的解释。
无论如何,在这种实际情况下可能会或可能不会有帮助的一个观察结果是,如果将边框替换为边距,则没有黑线。
* {
margin: 0;
padding: 0;
}
.parent {
position: relative;
width: 200px;
height: 200px;
background-color: black;
/*border: 10px solid white;*/
margin: 10px;
}
.child {
position: absolute;
top: 0%;
left: 0%;
height: 100%;
width: 100%;
background-color: lightcoral;
}
<div class="parent">
<div class="child">Content</div>
</div>
推荐阅读
- spring - Spring Tool 无法创建java虚拟机
- python - 如何使用 Python 为文件夹创建图形
- php - 如何在重定向页面上显示 Contact Form 7 提交值输出?
- visual-studio-2010 - 是否可以从多个在线位置在 Visual Studio 中处理同一个项目?
- macos - 在 NSTableView 中控制编辑
- r - 在 r studio 中安装 tidyverse 时 xml2 的配置失败
- bash - 计算文件数并打印最后一个文件
- c# - 不推荐使用 DesiredCapabilities,我将如何在 selenium webdriver C# 中使用 SetCapability?
- jointjs - 如何使jointJs矩形文本响应以使文本保持在矩形内?
- tensorflow - 如何创建我自己的手写数据集,如 IAM 数据集