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


当前回答

我只是想根据我从Ire Aderinokun那里读到的内容来扩展@BenM的回应。因为用户代理样式表提供了有用的默认样式,所以在重写它之前要三思。

我有一个愚蠢的错误,按钮元素在Chrome中看起来不正确。我对它进行了部分设计,因为我不想让它看起来像一个传统的按钮。但是,我省略了像border, border-color等样式元素。所以Chrome开始介入,提供它认为我缺少的部分。

当我添加了border: none等样式后,问题就消失了。

因此,如果其他人也有这个问题,请确保在注意到某个元素看起来不稳定时显式覆盖了所有适用的默认用户代理样式,特别是在您不想完全重置用户代理样式的情况下。这对我很管用。

其他回答

在你自己的CSS内容中定义你不想从Chrome的用户代理样式中使用的值。

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

铬(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情况下,它们具有良好的默认值,并且现在是一致的。重置你看到的与你无关的东西,而不是一次全部重置。

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

从说明书来看……

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

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

我有同样的问题,因为我的一个<div>'s有由浏览器设置的边距。这很烦人,但后来我发现,就像大多数人说的那样,这是一个标记错误。

我回去检查了<head>部分,我的CSS链接如下所示:

<link rel="stylesheet" href="ex.css">

我在里面加入了type,并把它做成如下的样子:

<link rel=“stylesheet” type=“text/css” href=“ex.css”>

我的问题解决了。

目标浏览器是什么?不同的浏览器会设置不同的默认CSS规则。尝试包括CSS重置,如meyerweb CSS重置或normalize.css,以删除这些默认值。谷歌“CSS重置vs正常化”来查看差异。