Trucsweb.com

Trucsweb.com

CSS

Introduction aux CSS

RDFFav

Feuille de styles (css) dynamique - En fonction du OS et du navigateur

Ce petit Javascript permet de tester le navigateur et le système d’exploitation pour indiquer au navigateur la feuille de styles à utiliser. Le teste se fait sur la plupart des versions de navigateurs et sur Linux, Macintosh et Windows. Vous pouvez le modifier pour ne pas tester la version du navigateur ou encore linux.css feuille de styles cascading styles styles compatibilité dynamique navigateurs plate-forme plate forme os système d’exploitationFeuille de styles (css) dynamique - En fonction du OS et du navigateur

  • · Niveau : INTERMÉDIAIRE
  • · Compatibilité : Tous les navigateurs

Ce petit Javascript permet de tester le navigateur et le système d’exploitation pour indiquer au navigateur la feuille de styles à utiliser. Le teste se fait sur la plupart des versions de navigateurs et sur Linux, Macintosh et Windows. Vous pouvez le modifier pour ne pas tester la version du navigateur ou encore linux. Mon exemple, quelque peu exclusif, est seulement pour montrer les différences majeures. Noter qu’il en existe des dizaines d’autres.

Pourquoi ?
Malgré la grande compatibilité du CSS, il y a plusieurs différences selon le navigateur, la version du navigateur et le système d’exploitation. Notamment sur la grandeur des caractères, l"offset" ou encore les centaines de petits "bogues" spécifiques à chaque navigateur. Netscape ne réagit pas comme Internet Explorer, Netscape 3 ne réagit pas comme Netscape 6 ou Netscape 4 sous Windows ne réagit pas comme Netrscape 4 sous Macintosh !

Enfin, il est possible de bien tester une feuille de styles et de n’utiliser que des fonctions compatibles, ou encore n’avoir que quelques exceptions. Une feuille de styles pour chaque système d’exploitation par exemple. Dans ce dernier cas, il suffit d’enlever les tests que vous ne désirez pas dans le code suivant.

<html>
<head>
<title>CSS dynamique</title>

<script type="text/javascript" language="javascript">
<!--
// *************************************
// Teste le navigateur et la plate-forme
// Affiche le code qui appelle la bonne
// feuille de styles (CSS)
// http://www.trucsweb.com
// *************************************
// MODIFIER ICI LE CHEMIN D’ACCÈS (PATH)
// de vos documents CSS et le nom des
// différents fichiers.
// *************************************

var nPath = "http://www.serveur.com/css/"

aFichiersCss = new fait_Array(17);

// Css par défaut, ne rien mettre si aucun
// Ce sera le style si rien n’est détecté.
aFichiersCss[0] = "style.css";

// Window Netscape
aFichiersCss[1] = "winnav6.css";
aFichiersCss[2] = "winnav4.css";
aFichiersCss[3] = "winnav3.css";

// Window Internet Explorer
aFichiersCss[4] = "winie5.css";
aFichiersCss[5] = "winie4.css";
aFichiersCss[6] = "winie3.css";

// Window Opera
aFichiersCss[7] = "winopera.css";

// Macintosh Netscape
aFichiersCss[8] = "macnav6.css";
aFichiersCss[9] = "macnav4.css";
aFichiersCss[10] = "macnav3.css";

// Macintosh Internet Explorer
aFichiersCss[11] = "macie5.css";
aFichiersCss[12] = "macie4.css";
aFichiersCss[13] = "macie3.css";

// Macintosh Opera
aFichiersCss[14] = "macopera.css";

// Linux Netscape
aFichiersCss[15] = "lixnav6.css";
aFichiersCss[16] = "lixnav4.css";
aFichiersCss[17] = "lixnav3.css";
// *************************************

function fait_Array(n) {
  this.length = n;
  return this;
}
var nCss = 0;
var user_agent=navigator.userAgent.toLowerCase();
var nav_version = navigator.appVersion.toLowerCase();
var nav_minor = parseFloat(nav_version);
var nav_major = parseInt(nav_minor);
var iePos = nav_version.indexOf(’msie’);
if (iePos !=-1) {
  nav_minor = parseFloat(nav_version.substring(iePos+5,nav_version.indexOf(’;’,iePos)))
  nav_major = parseInt(nav_minor);
}
var nav6Pos = user_agent.indexOf(’netscape6’);
if (nav6Pos !=-1) {
  nav_minor = parseFloat(user_agent.substring(nav6Pos+10))
  nav_major = parseInt(nav_minor)
}
var nav_nav = ((user_agent.indexOf(’mozilla’)!=-1) && (user_agent.indexOf(’spoofer’)==-1)
  && (user_agent.indexOf(’compatible’) == -1) && (user_agent.indexOf(’opera’)==-1)
  && (user_agent.indexOf(’webtv’)==-1));
var nav_nav3 = (nav_nav && (nav_major == 3));
var nav_nav4up = (nav_nav && (nav_major >= 4));
var nav_nav6up = (nav_nav && nav_minor >= 6);
var nav_ie = (iePos!=-1);
var nav_ie3 = (nav_ie && (nav_major < 4));
var nav_ie4up = (nav_ie && nav_minor >= 4);
var nav_ie5up = (nav_ie && nav_minor >= 5);
var nav_opera = (user_agent.indexOf("opera") != -1);
var nav_win = ( (user_agent.indexOf("win")!=-1) || (user_agent.indexOf("16bit")!=-1) );
var nav_mac = (user_agent.indexOf("mac")!=-1);
var nav_linux = (user_agent.indexOf("inux")!=-1);

if (nav_win){
  if (nav_nav6up) nCss = 1;
    else if (nav_nav4up) nCss = 2;
    else if (nav_nav3) nCss = 3;
    else if (nav_ie5up) nCss = 4;
    else if (nav_ie4up) nCss = 5;
    else if (nav_ie3) nCss = 6;
    else if (nav_opera) nCss = 7;
} else if (nav_mac) {
  if (nav_nav6up) nCss = 8;
    else if (nav_nav4up) nCss = 9;
    else if (nav_nav3) nCss = 10;
    else if (nav_ie5up) nCss = 11;
    else if (nav_ie4up) nCss = 12;
    else if (nav_ie3) nCss = 13;
    else if (nav_opera) nCss = 14;
} else if (nav_linux) {
  if (nav_nav6up) nCss = 15;
    else if (nav_nav4up) nCss = 16;
    else if (nav_nav3) nCss = 17;
}

if (aFichiersCss[nCss].length > 1) {
  document.write("<link rel=\"stylesheet\" href=\""+nPath+aFichiersCss[nCss]+"\" type=\"text/css\" />");
}
// -->
</script>

</head>

 

Exemple plus simple

<script type="text/javascript" language="javascript">
<!--
// *************************************
// Teste le navigateur et la plate-forme
// Affiche le code qui appelle la bonne
// feuille de styles (CSS)
// http://www.trucsweb.com
// *************************************
// MODIFIER ICI LE CHEMIN D’ACCÈS (PATH)
// de vos documents CSS et le nom des
// différents fichiers.
// *************************************

var nPath = "http://www.serveur.com/css/"

aFichiersCss = new fait_Array(5);

// Css par défaut, ne rien mettre si aucun
// Ce sera le style si rien n’est détecté.
aFichiersCss[0] = "style.css";

// Window Netscape
aFichiersCss[1] = "winnav.css";

// Window Internet Explorer et Opera
aFichiersCss[2] = "winie.css";

// Macintosh Netscape
aFichiersCss[3] = "macnav.css";

// Macintosh Internet Explorer et Opera
aFichiersCss[4] = "macie.css";

// Linux
aFichiersCss[5] = "linux.css";

// *************************************

function fait_Array(n) {
  this.length = n;
  return this;
}
var nCss = 0;
var user_agent=navigator.userAgent.toLowerCase();
var nav_version = navigator.appVersion.toLowerCase();
var nav_nav = ((user_agent.indexOf(’mozilla’)!=-1) && (user_agent.indexOf(’spoofer’)==-1)
  && (user_agent.indexOf(’compatible’) == -1) && (user_agent.indexOf(’opera’)==-1)
  && (user_agent.indexOf(’webtv’)==-1));
var nav_ie = (nav_version.indexOf(’msie’)!=-1);
var nav_opera = (user_agent.indexOf("opera") != -1);
var nav_win = ( (user_agent.indexOf("win")!=-1) || (user_agent.indexOf("16bit")!=-1) );
var nav_mac = (user_agent.indexOf("mac")!=-1);
var nav_linux = (user_agent.indexOf("inux")!=-1);

if (nav_win){
  if (nav_nav) nCss = 1;
    else if (nav_ie||nav_opera) nCss = 2;
} else if (nav_mac) {
  if (nav_nav) nCss = 3;
    else if (nav_ie||nav_opera) nCss = 4;
} else if (nav_linux) nCss = 5;

if (aFichiersCss[nCss].length > 1) {
  document.write("<link rel=\"stylesheet\" href=\""+nPath+aFichiersCss[nCss]+"\" type=\"text/css\" />");
}
// -->
</script>

 

Exemple Netscape ou Internet Explorer

<script type="text/javascript" language="javascript">
<!--
// *************************************
// Teste le navigateur
// Affiche le code qui appelle la bonne
// feuille de styles (CSS)
// http://www.trucsweb.com
// *************************************
// MODIFIER ICI LES CHEMIN D’ACCÈS (PATH)
// de vos documents CSS.
// *************************************

if ((navigator.appName == "Netscape") && ((parseInt(navigator.appVersion) == 4) || (parseInt(navigator.appVersion) == 5))) {
  document.write("<link rel=’stylesheet’ href=’repertoire/styleNS.css’ type=’text/css’>");
} else {
  document.write("<link rel=’stylesheet’ href=’repertoire/styleIE.css’ type=’text/css’>");
}
// -->
</script>

Django (Oznog) Blais
Dernière mise à jour :

Commentaires

Ajouter un commentaire
Votre adresse de courriel ne sera pas publiée. * L'astérisque indique les champs obligatoires.
Votre évaluation du tutoriel

       Visites : 10491 - Pages vues : 28764
X

Trucsweb.com Connexion

Connexion

X

Trucsweb.com Mot de passe perdu

Connexion

X

Trucsweb.com Conditions générales

Conditions

Responsabilité

La responsabilité des Trucsweb.com ne pourra être engagée en cas de faits indépendants de sa volonté. Les informations mises à disposition sur ce site le sont uniquement à titre purement informatif et ne sauraient constituer en aucun cas un conseil ou une recommandation de quelque nature que ce soit.

Aucun contrôle n'est exercé sur les références et ressources externes, l'utilisateur reconnaît que les Trucsweb.com n'assume aucune responsabilité relative à la mise à disposition de ces ressources, et ne peut être tenue responsable quant à leur contenu.

Droit applicable et juridiction compétente

Les règles en matière de droit, applicables aux contenus et aux transmissions de données sur et autour du site, sont déterminées par la loi canadienne. En cas de litige, n'ayant pu faire l'objet d'un accord à l'amiable, seuls les tribunaux canadien sont compétents.

X

Trucsweb.com Trucsweb

X

Trucsweb.com Glossaire

X

Trucsweb.com Trucsweb

X

Trucsweb.com Trucsweb

Conditions

Aucun message!

Merci.

X
Aucun message!
X

Trucsweb.com Créer un compte

Créer un compte

.
@