SEC7115 :: visit和:链接样式只能根据颜色而不同。某些样式未应用于:已访问。

时间:2013-09-13 13:39:18

标签: html html5 sharepoint

我已经运行了我的sharepoint网站nder IE F12开发人员工具,并且控制台在我的HTML开头提到了以下错误: -

SEC7115: :visited and :link styles can only differ by color. Some styles were not applied to :visited. 

那么这个错误是什么?以及我如何解决它? 感谢

4 个答案:

答案 0 :(得分:6)

仅更改包含以下内容的css规则的颜色属性:visited或:link selector

http://msdn.microsoft.com/en-us/library/ie/hh180764%28v=vs.85%29.aspx

答案 1 :(得分:3)

这是一项安全功能。 This question也处理同一问题,并包含指向this page的链接,这是一个非常翔实且有趣的阅读。

基本上,:visited可能会给用户带来严重的安全风险(例如,与getComputedStyle()结合使用时),因此浏览器会严格限制您可以使用它做什么。< / p>

要解决此问题,请从您的CSS元素选择器列表中删除一个:visited(传统上,一些样式表组合了所有的psuedo类:a:link, a:visited, a:hover, a:active { styles here })并单独设置样式,仅应用颜色。

答案 2 :(得分:1)

通常警告

SEC7115: :visited and :link styles can only differ by color. Some styles were not applied to :visited. 

是误报。 Internet Explorer“F12开发工具”并不够聪明,无法弄清楚

a:link, a:visited { border: solid red 1px; }

即使使用了getComputedStyle()

也不是信息泄露。正如https://hacks.mozilla.org/2010/03/privacy-related-changes-coming-to-css-vistited/https://dbaron.org/mozilla/visited-privacy所解释的,如果:visited:link在视觉上有所不同,并且JavaScript可以检测到这种差异,那么JS可以强制浏览器历史记录。

但是,对这种情况的IE检测很差,以至于无法确定:link(未访问链接)和:visited(访问链接)之间没有视觉差异。我猜启发式只是if (selector_contains_visited && rule_contains_property_other_than_color) { emit_warning(); }

不幸的是,你无法解决这个问题。大多数用户代理都有默认样式表,要求作者样式表与:link:visited匹配(因为普通用户代理不支持匹配未访问链接和访问链接的伪选择器,并且特殊规则要求至少使用一个伪选择器)。因此,您必须指定:link, :visited {...},如果规则块包含color以外的任何属性,IE将发出上述警告。

答案 3 :(得分:0)

一种可能性是将现有链接的颜色直接分配给 a:link 或 a:hover。这不会触发 IE 的警告。

a {
    color: blue;
}

a:link {
    text-decoration: none;
}

a:visited {
    color: blue;
}