Dans le passé, je n'ai pas vu presque aucune différence entre CSS dans les mêmes navigateurs sur différentes plateformes - les pages de Safari sur Mac sont généralement identiques à Safari sous Windows (et même avec FF-Win VS FF-Mac). Cependant, maintenant, je dispose d'un problème dans lequel les deux navigateurs MAC poussent des éléments éteints par un pixel par rapport à leurs homologues de PC. p>
Y a-t-il un moyen de sélectionner un navigateur sur un système d'exploitation spécifique pour appliquer CSS à? Peut-être quelque chose comme des feuilles de style conditionnel, uniquement pour les systèmes d'exploitation au lieu de navigateurs? P>
4 Réponses :
Je ne connais pas d'astuces spécifiques à CSS, mais vous pouvez sélectionner des feuilles de style à charger avec JavaScript. Vous pouvez utiliser Navigator.appversion pour obtenir le type de système d'exploitation, avec plus d'informations. P>
Par exemple, je reçois: p>
(de: http://www.javascripter.com/faq/operatin.htm < / a>) p> 5.0 (Macintosh; u; Intel Mac OS X 10_6_2; EN-US) ApplewebKit / 532.5 + (khtml, comme gecko) Version / 4.0.4 Safari / 531.21.10 Code> P> P> P>
C'est tout à fait possible. L'approche la plus courante (que de nombreux cadres JS) est de la première fois de la détection de la plate-forme / du navigateur basée sur la chaîne UA et / ou l'existence d'objets / méthodes JS connus. Ensuite, ils appliquent généralement une classe de plate-forme / navigateur CSS dans le
.gecko2.mac .specialRule {
// whatever
}
Sélecteur de navigateur CSS devrait aider. P>
C'est exactement ce que je cherchais, je l'ai mis en œuvre et pour une raison quelconque, il n'a pas ajouté le sélecteur sur les navigateurs MAC, mais il a ajouté des cours aux PC très bien. Merci!
modifier CSS pour un système d'exploitation spécifique: strong> J'ai écrit cette fonction reconnaissant si votre système d'exploitation est XP ou différent et met spécifiquement CSS comme conséquence. P> function changeStyle() {
var css = document.createElement('link');
css.rel="stylesheet";
css.type = 'text/css';
if (navigator.appVersion.indexOf("Windows NT 5.1")!=-1){ /* IF is windowsXP */
css.href = 'styleXP.css';
} else {
css.href = 'style7.css';
}
document.getElementsByTagName("head")[0].appendChild(css);
return false;
}
Les navigateurs se comportent différemment sur la même plate-forme de navigateur? Je suppose que les versions sont différentes?
Non, c'est tout à fait possilbe. Comme exemple, FF2 sur Mac en particulier comportait des bugs de présentation importants qui n'étaient pas présents dans FF2 Windows (comme manquer des barres de défilement dans certaines situations).