我正在尝试创建一个像这样的表:

{| class="wikitable" style="background:#F00;"
|-
! colspan="3" | Title
|-
! style="border-width:1px 0px; width:20px" | A
! style="border-width:1px 0px;" | [[A]]
! style="border-left-width:0px; width:20px" | A
|-
| colspan="3" | Text
|}

但是,红色背景在右侧“出血”。也就是说,在表格右边框的右侧,有一条垂直的红色条纹。

使用开发人员工具仔细检查后,这是由于单元格的填充设置为0.2em,并且(奇怪地)没有四舍五入为整数像素,因此填充为2.54999px。然后,浏览器将表格框显示在右边框之外。

可以通过分别为单元格提供基于px的填充来解决此问题。但这会使代码复杂化,因此我正在寻找更整洁的解决方案。

编辑:还需要注意的是,“未舍入”的行为是由“wikitable”类引起的。我尝试删除该类,并且将填充区域四舍五入。

EDIT2:进一步的实验表明,这很有可能是因为MediaWiki使用jQuery的.css()方法(或其他等效方法,不会舍入基于em的度量值)来设置Wikitables的填充。

最佳答案

如果使用table { border-spacing: 0; },则空格消失了。在Chrome上进行了测试,其中border-spacing最初设置为2px

关于jquery - Wikitable背景出血,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13397698/

10-10 01:30