2010-09-08 4 views
3

Donc, Internet Explorer < = 8 n'accepte pas les valeurs standard table-row et table-row-group pour la propriété CSS display (entre autres). Je suis réticent à utiliser browser detection features de JQuery, car ils ont été abandonnés. Comment puis-je détecter le support table-row-group dans JQuery sans en analysant la chaîne du navigateur/user-agent? C'est-à-dire, comment puis-je détecter la présence de la fonctionnalité plutôt que la présence d'un navigateur spécifique?JQuery - Détection du support pour l'affichage CSS: table-rangée-groupe '

Répondre

1

Je ne crois pas que Javascript puisse détecter directement la prise en charge d'une propriété CSS. J'ai deux recommandations si cela est vrai:

  1. Insérer dans un div caché deux éléments, l'un avec table-row et un sans. Voyez s'il y a une différence de hauteur ou de largeur. Si c'est le cas, calculez la hauteur ou la largeur, ayant compris la différence entre un navigateur qui le supporte et celui qui ne le supporte pas.

  2. Même si la détection du navigateur de jQuery est dépréciée, vous pouvez héberger le local script suivant:

http://www.tvidesign.co.uk/blog/CSS-Browser-detection-using-jQuery-instead-of-hacks.aspx

Je l'utilise et je l'aime! Il ajoute deux classes (par exemple, ".browserIE7 et .browserIE") à l'étiquette de corps, de sorte que vous pouvez utiliser Javascript (if $('body').hasClass('browserIE7')...) ou CSS (.browserIE7.div {...)

Bonne chance!

Modifier

Peut-être il est possible avec Javascript ... option 3: http://perfectionkills.com/feature-testing-css-properties/ bien que je n'ai pas lu l'article ou utilisé sa suggestion.

0

Si la détection de la propriété CSS ne fonctionne pas, je vous recommande d'utiliser IE conditionals comme ceci:

<!--[if lte IE 7]> 
     <script type="text/javascript"> 
      var ie7 = true; 
     </script> 
<![endif]--> 

<!--[if lte IE 6]> 
     <script type="text/javascript"> 
      var ie6 = true; 
     </script> 
<![endif]--> 

Ou quelque chose dans ce sens ... c'est si vous voulez permettre à vos scripts pour déterminer quel navigateur votre utilisation et ne veulent pas analyser la chaîne de l'agent utilisateur.

Si vous souhaitez simplement diriger des feuilles de style CSS vers des navigateurs spécifiques, il suffit de mettre un lien vers une feuille de style IE dans les conditions. Je ne recommanderais jamais d'envoyer différents CSS basés sur la détection de navigateur JS car tous les utilisateurs n'auront pas JS activé.

0

Vous pourriez trouver que Modernizr est utile. Il teste une grande variété de propriétés CSS et, d'après ces tests, ajoute des classes à la balise <html>. En outre, il ajoute des classes relatives à l'agent utilisateur et ce genre de choses.

Vous pouvez en savoir plus sur Modernizr sur son site: http://www.modernizr.com/

Questions connexes