我正在谷歌Chrome浏览器上做一个网页。它以以下样式正确显示。

table {
    display: table;
    border-collapse: separate;
    border-spacing: 2px;
    border-color: gray;
}

需要注意的是,我没有定义这些样式。在Chrome开发工具中,它说用户代理样式表代替CSS文件名。

现在,如果我提交了一个表单,出现了一些验证错误,我会得到以下样式表:

table {
    white-space: normal;
    line-height: normal;
    font-weight: normal;
    font-size: medium;
    font-variant: normal;
    font-style: normal;
    color: -webkit-text;
    text-align: -webkit-auto;
}

table {
    display: table;
    border-collapse: separate;
    border-spacing: 2px;
    border-color: gray;
}

这些新样式的字体大小影响了我的设计。有没有办法强制我的样式表,如果可能的话,完全覆盖Chrome的默认样式表?


当前回答

在CSS文件中放入以下代码:

table {
    font-size: inherit;
}

其他回答

在CSS文件中放入以下代码:

table {
    font-size: inherit;
}

我也遇到了同样的问题,这是因为我正在使用非语义html

<!--incorrect-->
<ul class="my-custom-font">
  <button>
    <a>user agent styles applied instead of my-custom-font</a>
  <button>
</ul>

<!--correct-->
<ul class="my-custom-font">
  <li>
    <a>now inherits from from my-custom-font</a>
  </li>
</ul>

一旦更新了HTML,就正确地应用了样式

一些浏览器使用自己的方式读取.css文件。 所以正确的解决方法是: 如果您直接在.html源代码中键入命令行,这将击败.css文件,以这种方式,您直接告诉浏览器要做什么,并且浏览器处于不从.css文件读取命令的位置。 请记住,写在.html文件中的命令比写在.css文件中的命令更强大。

关于“用户代理样式表”的概念,请参考CSS 2.1规范中的Cascade章节。

用户代理样式表将被您在自己的样式表中设置的任何内容所覆盖。它们只是底层:在没有页面或用户提供的任何样式表的情况下,浏览器仍然必须以某种方式呈现内容,而用户代理样式表只是描述这一点。

因此,如果您认为用户代理样式表有问题,那么实际上是标记有问题,或者样式表有问题,或者两者都有问题(对此您没有编写任何内容)。

用户代理样式表是浏览器(如Chrome、Firefox、Edge等)提供的“默认样式表”,目的是以满足“一般表现期望”的方式呈现页面。例如,默认样式表将为字体大小、边框和元素间距等提供基本样式。通常使用reset样式表来处理浏览器之间的不一致。

从说明书来看……

用户代理的默认样式表应该以满足文档语言的一般表示期望的方式来表示文档语言的元素。~瀑布。

有关用户代理的详细信息,请参见用户代理。