我正在谷歌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的默认样式表?


当前回答

我也遇到了同样的问题,这是因为我正在使用非语义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,就正确地应用了样式

其他回答

在第一行上用正确的文档类型将文档标记为HTML5,解决了我的问题。

<!DOCTYPE html>
<html>...

我也遇到了同样的问题,这是因为我正在使用非语义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内容中定义你不想从Chrome的用户代理样式中使用的值。

如果< !DOCTYPE>在您的HTML内容中缺失,您可能会遇到浏览器优先选择“用户代理样式表”而不是自定义样式表。添加文档类型可以解决这个问题。

回答标题中的问题,什么是用户代理样式表,浏览器中的默认样式集:下面是其中的一些:

铬(Chrome): https://chromium.googlesource.com/chromium/src/third_party/+/master/blink/renderer/core/html/resources/html.css WebKit (Safari): https://trac.webkit.org/browser/trunk/Source/WebCore/css/html.css Gecko (Firefox): https://searchfox.org/mozilla-central/source/layout/style/res/html.css 宁静:https://github.com/SerenityOS/serenity/blob/master/Userland/Libraries/LibWeb/CSS/Default.css # L4 Mozilla伺服:https://github.com/servo/servo/blob/master/resources/user-agent.css#L9

个人意见:不要和他们打架。例如,在rtl/bidi情况下,它们具有良好的默认值,并且现在是一致的。重置你看到的与你无关的东西,而不是一次全部重置。