2010-09-11 6 views
3

Comment détecter, en utilisant JavaScript, si le navigateur prend en charge le sélecteur CSS :first-child?Détecter: le support du premier enfant

+0

-vous * besoin * de le détecter? :) Il est pris en charge sur à peu près tout ce qui est en cours: http://www.quirksmode.org/css/contents.html#t17 –

+1

... vérifiez si la version de jQuery est [≥1.1.4] (http: // api. jquery.com/first-child-selector/)? : p – kennytm

+0

@Kenny faire une réponse - c'est tout le PO doit vérifier –

Répondre

4

Vous pouvez simplement utiliser cette règle :first-child pour définir une valeur spécifique, puis obtenir le style calculé en Javascript pour voir si la règle :first-child est appliquée, par ex.

<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> 

(Ce n'est pas testé. Je n'ai pas IE 6.)

+1

Ceci est agréable et une réponse exacte à la question, +1. Bien que j'ai le sentiment que la prémisse de base de * devoir trouver ceci en premier lieu * est le résultat d'une décision de conception défectueuse. –

+0

ce n'est pas bon d'utiliser un bloc supplémentaire – James

+0

@WorkingHard: quel bloc supplémentaire? – BoltClock

2

Je ne pense pas qu'il existe une fonction jQuery pour trouver un support pour cela. J'imagine que si ça existe, ça va être assez compliqué. Êtes-vous vraiment sûr que vous en avez besoin? Souciez-vous de partager pourquoi?

Si vous pouvez utiliser jQuery de toute façon, pourquoi ne pas ajouter une instruction jQuery pour affecter la classe/propriété/quelquechose à l'élément désiré, au lieu de s'appuyer sur CSS? Comme une réponse "manuelle", en regardant le quirksmode.org compatibility table, le sélecteur est entièrement pris en charge dans tous les navigateurs modernes, sauf la famille IE qui semble avoir des problèmes, même dans IE8.

+0

J'ai trouvé cette page http://api.jquery.com/jQuery.support/ mais je ne sais pas comment l'utiliser – James

+2

@WorkingHard: jQuery.support ne peut pas tester le support ': first-child'. – BoltClock

+2

@WorkingHard Je me demanderais d'abord * pourquoi * J'ai besoin de cela en premier lieu. –

Questions connexes