我正在构建依赖于css :after
和:before
伪选择器的菜单。如何检测浏览器是否支持它们?
我发现this article解释了如何检测可以在JavaScript中访问的css属性,但它似乎不适用于我的情况。
[编辑]在回答评论和第一次回复时:
答案 0 :(得分:2)
嗯,除了IE 7以外的所有浏览器都支持它们,所以应该这样做。
<!--[if lt IE 8]>
<script> window.contentSupported = false; </script>
<![endif]-->
在你的javascript中你可以做到。
if(window.contentSupported !== false) {
// :before is supported
} else {
// :before isn't supported
}
答案 1 :(得分:1)
正如你在这里看到的那样http://caniuse.com/#search=after,:after和:除了早期版本的IE8之外,每个浏览器都支持选择器。如果浏览器是IE并且版本早于版本8,则可以通过脚本或条件注释进行检查。
http://modernizr.com/download/这是一个非常好的工具,用于检测浏览器能够理解哪些功能。它是一个库,它为你的html body标签添加了一个css类。在您的情况下,您只需检查“Css生成内容:之前和之后”选项。
答案 2 :(得分:1)
document.querySelector(':after, :before');