***编辑1:***问题似乎与CSS的border-collapse属性有关,因此可以通过使用border-spacing来解决:0 px。但是为什么是边框折叠导致的呢?它与缩放有关,因为如果你放大或缩小窗口,它会导致奇怪的粗线,但在我的情况下,我有浏览器设置为默认缩放,以及系统(windows 11)也在推荐的125%(我一直使用)缩放。我不明白什么是错的
最近,我在创建一个HTML表格时,在一些行后看到了一条奇怪的横线。我附上了截图。代码是一个简单的HTML表格和简单的CSS来添加边框,没有什么花哨的。我将在这里附上代码。
表格.html
<table>
<tr>
<th>ID</th>
<th>Name</th>
<th>Phone</th>
<th>Email</th>
</tr>
<?php while($user= mysqli_fetch_array($query)){ ?>
<tr>
<td><?php echo $user['id']; ?></td>
<td><?php echo $user['name']; ?></td>
<td><?php echo $user['phone']; ?></td>
<td><?php echo $user['email']; ?></td>
</tr>
<?php } ?>
</table>
样式.css
table, th, td {
border: 1px solid black;
border-collapse: collapse;
}
2条答案
按热度按时间laik7k3q1#
这是由于浏览器的缩放处理不当造成的。
如果你有一个1 px的边框,并且
DPI Scaling
设置为150%,那么从技术上讲,边框应该是1.5px。因为浏览器不使用亚像素渲染,所以它在1 px和2 px之间交替。有多种方法来处理它。
1.将
border-width
设置为0.01px
一个快速而粗略的解决方法,因为浏览器将回退到至少
1px
2.使用
resolution
介质查询根据缩放级别将边框宽度更改为适当的小数。
以下是不同DPI缩放级别及其值的概述
DPI缩放级别
3.脚本语言
使用
window.devicePixelRatio
变量,通过JavaScript将border-width更改为每个缩放级别的相应小数。2ul0zpep2#
使用DvdRom的答案,我修复了这个问题与Javascript和CSS变量,以获得一个1px的边界间距。看起来像它的工作在Firefox,Chrome,边缘,Opera和勇敢。