我已经运行了我的sharepoint网站nder IE F12开发人员工具,并且控制台在我的HTML开头提到了以下错误: -
SEC7115: :visited and :link styles can only differ by color. Some styles were not applied to :visited.
那么这个错误是什么?以及我如何解决它? 感谢
答案 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;
}