无法覆盖用户代理样式表中的边框间距

Posted

技术标签:

【中文标题】无法覆盖用户代理样式表中的边框间距【英文标题】:Can't override border-spacing in User Agent style sheet 【发布时间】:2014-09-28 21:58:35 【问题描述】:

由于某种原因,我无法覆盖 Chrome 中用户代理样式表中的边框间距。目前它设置为 2px,但我希望它是 0px。边框折叠被覆盖就好了,但边框间距没有。

我也尝试过添加 -webkit-border-horizo​​ntal-spacing 和 -webkit-border-vertical-spacing

但是这些覆盖也不起作用。

我的 html 文档

<!DOCTYPE html>
<html>
  <head><link href="inventorystyle.css" rel="stylesheet" type="text/css"></head>
  <table border="0" cellspacing="0" cellpadding="0">
      <tbody>
         <tr>
             <td><img src="iron-helmet.png"></td>
             <td><img src="gold-helmet.png"></td>
             <td><img src="diamond-helmet.png"></td>
         </tr>
      </tbody>
  </table>  
</html>

我的inventorystyle.css

table 
    border-collapse: collapse;
    border-spacing: 0px;
    -webkit-border-horizontal-spacing: 0px;
    -webkit-border-vertical-spacing: 0px;

【问题讨论】:

您使用的是 CSS 重置文件吗?更好的是你可以使用Normalize.css 这里是链接。 necolas.github.io/normalize.css 我在我的 html 中引用了 normalize.css 但仍然没有运气。我真的不明白怎么了。这绝对不是我的照片,因为在 Firefox 中这张桌子很好。 使其更具体,如table.classname apply your stlye.. 【参考方案1】:

这让我发疯了。

尝试添加 css img display:block;

这帮我摆脱了它。

【讨论】:

【参考方案2】:

这只是 Chrome 在开发者工具中显示 CSS 规则的方式中的一个错误。在 Chrome 中定义的 border-spacing 属性有效

在这种情况下,如果您检查 table 元素,border-spacing 信息将正确显示。它只是针对内部元素,例如 td,开发者工具会在其中显示误导性信息。根据定义,border-spacing 属性不适用于它们,因此它对它们的价值无论如何都无关紧要。如果你点击“Computed”,你会看到计算出来的样式根本不包含border-spacing,即使在继承的属性中也是如此。

在示例中,table 元素的 border-spacing 值也没有任何影响,因为 a) 正在使用折叠边框模型并且 b) HTML 标记包含cellspacing="0" 属性,它将 border-spacing 设置为 0,除非您在 CSS 中明确覆盖它。

【讨论】:

感谢这有助于解释很多。我找错地方了。原来我桌子的宽度让我很伤心。 报告了这个错误吗?我找不到它:code.google.com/p/chromium/issues/…

以上是关于无法覆盖用户代理样式表中的边框间距的主要内容,如果未能解决你的问题,请参考以下文章

为啥用户代理样式表会覆盖我的样式? [关闭]

如何在 Chrome 中覆盖用户代理样式表并正确显示我的设计

css 在输入元素CSS上删除用户代理蓝色边框焦点样式

CSS 表格边框

Chrome 用户代理样式表覆盖我的网站样式

SS中的三种样式来源:创作人员读者和用户代理