【发布时间】:2014-02-01 09:50:19
【问题描述】:
真的很简单:如何最准确地测试浏览器是否支持某个 CSS 选择器?
我目前有一些 CSS 代码,通过在 CSS 中使用 :checked 选择器使页面更具交互性,但我想创建一个使用 JavaScript 执行相同操作的后备脚本,但前提是用户的浏览器具有不支持 :checked 选择器。
我的问题是,如何最准确地测试用户的浏览器是否支持某个 CSS 选择器?
这是我想使用的代码:
HTML:
<label class="coolbox">
<input type="checkbox"/>
<span>I want to eat some caek.</span>
</label>
CSS:
.coolbox input {display:none;}
.coolbox span::before {
content: "";
display:inline-block;
width:10px;
height:10px;
margin-right:5px;
border:1px solid black;
}
.coolbox:hover span::before {border:1px solid #555;}
.coolbox:active span::before {border:1px solid #999;}
.coolbox span::before {background-color:#F77;}
.coolbox input:checked + span::before {background-color:#4A4;}
PS:我不想只使用条件 cmets,因为我想遵循检测功能而不是浏览器的标准。
【问题讨论】:
-
这不是modernizr.com 所做的吗?
-
如果可以只用一个简单的脚本而不是下载一个我只会使用一次的库,我会更喜欢它。
-
@Andreas
:checked测试在modernizr 中可用吗? -
@Danko 查看 OP 的“PS”。
-
checked 似乎在modernizr 中可用:github.com/Modernizr/Modernizr/blob/master/feature-detects/css/…
testStyles方法基本上是injectElementWithStyles:github.com/Modernizr/Modernizr/blob/master/src/…
标签: javascript css internet-explorer-8 cross-browser css-selectors