什么是用户代理样式表

Kap*_*rma 466 css google-chrome

我正在使用谷歌浏览器的网页.它使用以下样式正确显示.

table {
    display: table;
    border-collapse: separate;
    border-spacing: 2px;
    border-color: gray;
}
Run Code Online (Sandbox Code Playgroud)

重要的是要注意我没有定义这些样式.在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;
}
Run Code Online (Sandbox Code Playgroud)

font-size这些新的风格被扰乱我的设计.有没有办法强制我的样式表,如果可能的话,完全覆盖Chrome的默认样式表?

Oli*_*ton 235

什么是目标浏览器?不同浏览器设置不同的默认CSS规则.尝试包括reset.cssnormalise.css(Google用于任何一个或"重置与规范化"以查看差异)以删除这些默认值.或者设置自己的style.css

  • 我总是在每个项目之前重置/规范化我的CSS,这样你就可以在浏览器中拥有一个"几乎"级别的字段.我从来没有听说过这样的负面影响,我敢肯定,如果你快速浏览一下谷歌,你会发现它是推荐的. (19认同)
  • 这不是答案...... @Sebas添加`<!DOCTYPE>`是正确的 (10认同)
  • 即使重置/规范化可能有所帮助,但它并没有真正回答用户代理样式表发生变化的原因?我有同样的问题,他们的UA样式对于我用于SEO的预渲染页面变得不同.关于它为何发生变化的想法? (7认同)
  • 查看Chrome默认设置到网页的内容:http://trac.webkit.org/browser/trunk/Source/WebCore/css/html.css (5认同)
  • 重置样式可能会导致表单字段产生奇怪的结果,特别是字段边框或类型="文件"等多部分元素. (2认同)

Jes*_*ind 121

如果<!DOCTYPE>您的html中缺少,您可能会遇到浏览器优先于自定义样式表的"用户代理样式表".添加doctype可以解决此问题.

  • 我启用了<!DOCTYPE html>但仍需要规范化. (6认同)
  • 添加 &lt;!DOCTYPE&gt; 解决了我遇到的一个非常奇怪的 tr/td 垂直对齐问题。感谢您的回答。 (4认同)
  • 这是一个很好的提示。您节省了我一些研究时间。值得一提的是,就我而言,我有该doctype声明,但之前有一个脚本。看起来DOCTYPE必须首先出现在页面中才能考虑在内。 (2认同)
  • 这很挑剔,但是&lt;!DOCTYPE html&gt;为我解决了这个问题。 (2认同)

Juk*_*ela 99

关于"用户代理样式表"的概念,请参阅CSS 2.1规范中的Cascade部分.

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

因此,如果您认为用户代理样式表存在问题,那么您的标记或样式表或两者(您没有编写任何内容)确实存在问题.


Dan*_*iel 44

通过第一行上正确的doctype将文档标记为HTML5,解决了我的问题.

<!DOCTYPE html>
<html>...
Run Code Online (Sandbox Code Playgroud)

  • 你能解释它应该如何运作吗?HTML 5如何与未定义的样式相关联?我会确认,但你有没有准备好的小提琴来确认它? (7认同)

Ken*_*ard 23

基本上,浏览器提供的默认样式表.从规格......

用户代理的默认样式表应以满足文档语言的一般表示期望的方式呈现文档语言的元素.〜喀斯喀特.

另外,有关用户代理的更多详细信息,请参阅...

https://www.w3.org/TR/UAAG20/#def-user-agent


Ben*_*enM 11

在您自己的CSS中定义您不希望从Chrome的用户代理样式使用的值.


Ebr*_*owi 5

回答标题中的问题,用户代理样式表是什么,浏览器中的默认样式集,以下是其中的一些(也是当今网络中最相关的样式):

个人观点,不要与它们抗争,它们具有良好的默认值,例如在rtl / bidi情况下,并且如今是一致的,请重置与您无关的内容,而不是一次全部重置。