Javascript 如何检测对:after和:before的浏览器支持

Javascript 如何检测对:after和:before的浏览器支持,javascript,css,Javascript,Css,我正在构建依赖css:after和:before伪选择器的菜单。如何检测浏览器是否支持它们 我发现这解释了如何检测可以在JavaScript中访问的css属性,但它似乎不适用于我的情况 [编辑]在回答评论和首次答复时: 伪选择器添加元素,例如用于面包屑导航的箭头 我更喜欢特征检测而不是浏览器检测,因为有些浏览器会在怪癖模式下工作(通常是IE 8/IE 9) 好吧,除了IE 7和IE 7以下的浏览器之外,其他浏览器都支持它们,所以应该这样做 <!--[if lt IE 8]> &

我正在构建依赖css
:after
:before
伪选择器的菜单。如何检测浏览器是否支持它们

我发现这解释了如何检测可以在JavaScript中访问的css属性,但它似乎不适用于我的情况

[编辑]在回答评论和首次答复时:

  • 伪选择器添加元素,例如用于面包屑导航的箭头
  • 我更喜欢特征检测而不是浏览器检测,因为有些浏览器会在怪癖模式下工作(通常是IE 8/IE 9)

好吧,除了IE 7和IE 7以下的浏览器之外,其他浏览器都支持它们,所以应该这样做

<!--[if lt IE 8]>
  <script> window.contentSupported = false; </script>
<![endif]-->

除了IE 7和IE 7以下的浏览器之外,其他浏览器都支持它们,所以这应该可以

<!--[if lt IE 8]>
  <script> window.contentSupported = false; </script>
<![endif]-->
正如您在这里看到的,:after和:before选择器受除早期版本IE8之外的所有浏览器的支持。您可以通过脚本或条件注释检查浏览器是否为IE,以及版本是否早于版本8

这是一个非常好的工具,可以检测浏览器能够理解哪些功能。它是一个库,向html主体标记添加css类。在您的情况下,您只需选中“Css生成内容:before和:after”选项即可。

如您在此处所见,:after和:before选择器受除早期版本的IE8之外的所有浏览器的支持。您可以通过脚本或条件注释检查浏览器是否为IE,以及版本是否早于版本8



这是一个非常好的工具,可以检测浏览器能够理解哪些功能。它是一个库,向html主体标记添加css类。在您的情况下,您只需选中“Css生成内容:之前和之后”选项即可。

出于好奇,您为什么要这样做?在这种情况下,“依赖”是什么意思?如果不支持@isherwood
::before
::after
的可能重复项不是伪类。出于好奇,为什么要这样做?在这种情况下,“reland”是什么意思?如果它们不受支持,您的菜单中会缺少或甚至损坏什么?可能重复的@isherwood
::before
::before
不是伪类。我已经更新了我的问题,我还需要检测怪癖模式。我已经更新了我的问题,我还需要检测怪癖模式。我已经更新了我的问题,我还需要检测怪癖模式。为什么,你故意进入怪癖模式?我更新了我的问题,我还需要检测怪癖模式。为什么,你故意进入怪癖模式?我喜欢!让我做一些测试。为什么身体btw?根据其他答案,我实际上认为document.querySelector就足够了。它不必是body,只要document就行了。小评论:你实际上需要分两步来完成(document.querySelector)&&(document.querySelector(':after,:before'),我喜欢!让我做一些测试。为什么身体btw?根据其他答案,我实际上认为document.querySelector就足够了。它不必是body,只需要document就可以了。次要注释:您实际上需要分两个步骤(document.querySelector)&&(document.querySelector(':after,:before'))
document.querySelector(':after, :before');