2009-05-12 4 views
0

Ceci est déjà demandé how do call specific css for specific browser using jquerycomment faire appeler différents css pour correspondre les navigateurs comme l'utilisation de jquery

Je veux utiliser un fichier CSS pour le safari et d'autres pour Mozilla et d'autres pour IE

+0

Qu'en est-il de Webkit? Et pour Opera? Qu'en est-il des navigateurs moins connus? Dans 99% des cas, il est préférable d'écrire une feuille de style conforme aux normes, puis d'utiliser les commentaires conditionnels pour inclure des feuilles de style spécifiques IE6 et IE7 afin de contourner les parties sélectionnées de la feuille de style principale pour contourner les bogues de ces navigateurs particuliers. – Quentin

Répondre

0

Vous pouvez renifler le navigateur et Créez ensuite un élément link et ajoutez-le à la balise head.

if(jQuery.browser.msie) 
    $('head').append('<link href="css/ie.css" rel="stylesheet" />'); 
... // and so on. 

EDIT: Référence pour jQuery.browser.

2

Vous devriez probablement le faire côté serveur (ou même mieux, pas du tout). Mais si vous ne voulez pas faire ce côté client, vous avez besoin de quelque chose comme ça.

var writeStyleSheet = function(url){ 
    var linkTag = document.createElement('link'); 
    linkTag.type = 'text/css'; 
    linkTag.rel = 'stylesheet'; 
    linkTag.href = url; 
    linkTag.media = 'screen'; 
    document.getElementsByTagName("head")[0].appendChild(linkTag); 
} 
if(jQuery.brwoser.msie){ 
    writeStyleSheet('ie.css'); 
} 
else if(jQuery.browser.safari){ 
    writeStyleSheet('safari.css'); 
} 
else if(jQuery.browser.mozilla){ 
    writeStyleSheet('mozalla.css'); 
} 

Notez cependant que jQuery.browser est obsolète dans la version 1.3. Vous devriez créer une feuille de style qui fonctionne sur tous les navigateurs. Peut-être ajouter quelques commentaires conditionnels pour bidouillages spécifiques à IE:

<!--[if IE]> 
    <link type='text/css' href='ieHacks.css' rel='stylesheet' /> 
<![endif]-->  
0

vous pouvez détecter navigateur en utilisant l'objet de .browser $.

pour obtenir nécessaire stylesheet je me suis de ce qui suit blog entry

$(document).ready(function() { 
    $("a").click(function() { 
     $('head').append('<link rel="stylesheet" href="style2.css" 
     type="text/css" />'); 
    }); 
}); 

ici est un autre beau message par Kelvin Luck qui décrit le remplacement et l'application des styles dynamiquement à l'aide jquery.

Questions connexes