2010-09-11 51 views
3

如何使用JavaScript检测浏览器是否支持CSS :first-child选择器?检测:首次子女支持

+0

你需要* *检测呢? :)目前支持几乎所有的东西:http://www.quirksmode.org/css/contents.html#t17 – 2010-09-11 20:04:21

+1

...检查jQuery版本是否[≥1.1.4](http:// api。 jquery.com/first-child-selector/)? :p – kennytm 2010-09-11 20:07:18

+0

@Kenny使这个答案 - 这就是所有OP需要检查的 – 2010-09-11 20:09:32

回答

4

您可以使用该规则设置一些具体的值,然后在Javascript中获取计算的样式以查看是否应用了:first-child规则,例如,

<style> 
#foo { width: 200px; } 
#foo:first-child { width: 400px; } 
</style> 

<span><span id="foo"></span></span> 

<script> 
if ($('#foo').width() < 400) 
    alert('first-child not supported.'); 
</script> 

(这不是测试。我没有IE 6)

+1

这很不错,对问题的确切答案是+1。虽然我有这样的感觉,但首先必须首先了解这一点的基本前提是错误设计决定的结果。 – 2010-09-11 20:27:37

+0

其不好使用额外的块 – James 2010-09-11 20:29:53

+0

@WorkingHard:什么额外的块? – BoltClock 2010-09-11 20:31:38

2

我不认为有一个jQuery函数来找出对此的支持。我想如果它确实存在,它会变得非常复杂。你确定你需要这个吗?小心分享为什么?

如果你仍然可以使用jQuery,为什么不添加一个jQuery语句来为所需的元素指定class/property/whatever,而不是依赖于CSS?

作为一个“手册”的回答,看看quirksmode.org compatibility table,除IE家族外,所有现代浏览器都完全支持该选择器,即使在IE8中,该家族似乎也有问题。

+0

我发现这个页面http://api.jquery.com/jQuery.support/但不知道如何使用它 – James 2010-09-11 20:25:45

+2

@WorkingHard:jQuery.support无法测试':first-child'支持。 – BoltClock 2010-09-11 20:26:20

+2

@WorkingHard我会首先问自己*为什么*我首先需要这个。 – 2010-09-11 20:28:31