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

Posted

技术标签:

【中文标题】Chrome 用户代理样式表覆盖我的网站样式【英文标题】:Chrome user agent stylesheet overwriting my site style 【发布时间】:2011-11-19 22:51:08 【问题描述】:

我有以下 CSS 来设置我的一个页面上的链接样式:

a:link, a:visited, a:active 
    color: white;
    text-decoration: none;
    font-weight: bold;

但是,当我加载它时,它们在 Chrome 中显示为蓝色,在 Firefox 中显示为白色。 Chrome 开发工具显示我的样式可能会覆盖用户代理样式表:

为什么显示不正确?我尝试在样式表的顶部设置字符集:

@charset "UTF-8";

html, body 
    width: 100%;
    height: 100%;
    margin: 0;
    font: 11px "Lucida Grande", Arial, Sans-serif;


a:link, a:visited, a:active 
    color: white;
    text-decoration: none;
    font-weight: bold;


input[type=email], input[type=password] 
    display: block;
    -moz-border-radius: 4px;
    -webkit-border-radius: 4px;
    border: 1px solid #ACE;
    font-size: 13px;
    margin: 0 0 5px;
    padding: 5px;
    width: 203px;

但这没有帮助。我的样式表在头部链接:

<link href="/assets/global.css?body=1" media="screen" rel="stylesheet"
type="text/css">

以及链接的html代码:

<a href="/users/sign_in">Sign in</a>
<a href="/users/password/new">Forgot your password?</a>
<a href="/users/auth/facebook">Sign in with Facebook</a>

这是它们在 Chrome (13.0.782) 中的样子 - 不正确:

这就是它们在 Firefox 中的样子 - 正确:

看起来用户代理样式表正在覆盖我的样式。为什么?

【问题讨论】:

不是。更具体地描述你的问题。哪种风格不适用?什么是不正确样式元素的 html 代码。 链接应该在 Chrome 中显示为白色。它们在 Firefox 中正确显示。 在我的桌面上完美运行 - chrome 13.0.782.220 m。并且根据i.stack.imgur.com/FlIjd.jpg所选链接的颜色为白色。 正确,它应该是白色的,但显示为蓝色,如我的 Chrome 实例上的i.stack.imgur.com/qlHa0.jpg 所示。 【参考方案1】:

我不知道为什么,但我添加了这个&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;&lt;html&gt; 之前解决了

【讨论】:

目前已经过时了。请改用&lt;!doctype html&gt;【参考方案2】:

Vonkly 帮助确定了问题。我仔细研究了我所有的样式表,发现其中一个有错别字——在定义标题的链接样式时,它缺少父元素,所以不是

header a:link, header a:visited 
...

我有

header a:link, a:visited 
...

所以它覆盖了我为正文中的链接定义的样式。我第一次查看样式表时一定错过了它。

感谢大家的cmets!

【讨论】:

【参考方案3】:

只需在&lt;html&gt; 标签前添加&lt;!DOCTYPE html&gt;

【讨论】:

这行得通。我的文档缺少文档类型,我带着诊断来到这里,用户代理样式表正在覆盖我的 css。【参考方案4】:

我遇到了同样的问题,我的情况是我的一些课程被强制显示:无

30/40 分钟后,我查看了浏览器扩展,发现所有这些都是由于 AD Blocker 而发生的。

因此,如果上述任何解决方案都不适合您,那么如果您有这种浏览器扩展程序,也请尝试一次。

【讨论】:

【参考方案5】:

只有当你的 CSS 忽略为标签定义属性时,用户代理样式表才会生效。考虑一下您的 css 样式中可能存在拼写错误。

如果您将标签声明放在 css 文件的开头并且它可以工作,那么您的 css 中可能有错误。

尝试通过 CSS Lint 运行你的 css

我遇到了这个持续存在的问题,并在我的 css 中发现了一个错误。

【讨论】:

【参考方案6】:

在浏览器为您设置之前强制您的边距

 body 
 margin: 0%;
  

【讨论】:

【参考方案7】:

使用通用css锚样式a

a 
    color: white;
    text-decoration: none;
    font-weight: bold;

另外,您不需要在 css 文件中设置字符集。我会删除它。

字符集应该设置在它所属的HTTP头中。

【讨论】:

上面列出的 css 组是样式表中唯一的元素吗?您是否正在使用另一个样式表,或者在包装容器中使用!important 定义了锚颜色? 另外,请尝试移除去缓存技巧(?body=1)。我怀疑那是你的错误 - 它更有可能与你的锚标签使用 !important 规则定义有关。我无法在 Chrome 中的任何计算机上重现此问题。

以上是关于Chrome 用户代理样式表覆盖我的网站样式的主要内容,如果未能解决你的问题,请参考以下文章

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

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

chrome:如何关闭用户代理样式表设置?

Chrome 未加载样式表

Chrome中的表单样式[重复]

Chrome 将 CSS 样式表解释为图像