Deux feuilles de style pour 2 version d'IE
10 messages
• Page 1 sur 1
-

Djoule_logo - WRInaute impliqué

- Messages: 718
- Inscription: 30 Mai 2007
Deux feuilles de style pour 2 version d'IE
Bonjour a tous
Je viens de m'appercevoir que site site a quelques bugs sous IE 7. Je vais donc devoir refaire un CSS pour lui. Jusque là pas trop compliquer je devrai m'en sortir.
La ou je bloque c'est au niveau de l'appel de fichier dans mon HTML. J'ai déjà un correctif pour Ie 6 et inferieur. Donc est il possible de faire 2 lignes comme ceci:
<!--[if lt IE 7.]><link rel="stylesheet" media="screen" type="text/css" href="/fichier_pour_ie6.css" /><![endif]-->
<!--[if IE]><link rel="stylesheet" media="screen" type="text/css" href="/fichier_pour_ie7.css" /><![endif]-->
Je viens de m'appercevoir que site site a quelques bugs sous IE 7. Je vais donc devoir refaire un CSS pour lui. Jusque là pas trop compliquer je devrai m'en sortir.
La ou je bloque c'est au niveau de l'appel de fichier dans mon HTML. J'ai déjà un correctif pour Ie 6 et inferieur. Donc est il possible de faire 2 lignes comme ceci:
<!--[if lt IE 7.]><link rel="stylesheet" media="screen" type="text/css" href="/fichier_pour_ie6.css" /><![endif]-->
<!--[if IE]><link rel="stylesheet" media="screen" type="text/css" href="/fichier_pour_ie7.css" /><![endif]-->
-

keroin - WRInaute passionné

- Messages: 2308
- Inscription: 29 Avr 2006
En fait c'est le plus souvent IE6 qui pose des problèmes de css, IE7 et FF les gère à peu près de la même façon.
Aussi il serait peut être plus judicieux de faire un condition PHP comme celle là :
If IE 6
=> feuille css IE6
else
=> feuille css générique

Aussi il serait peut être plus judicieux de faire un condition PHP comme celle là :
If IE 6
=> feuille css IE6
else
=> feuille css générique
-

Djoule_logo - WRInaute impliqué

- Messages: 718
- Inscription: 30 Mai 2007
J'y ai pensé, mais je ne connais pas la commande PHP qui me retourne la version du navigateur.
-

bproductiv - WRInaute accro

- Messages: 4173
- Inscription: 27 Déc 2004
<!--[if lt IE 7.]><link rel="stylesheet" media="screen" type="text/css" href="/fichier_pour_ie6.css" /><![endif]-->
<!--[if IE 7]><link rel="stylesheet" media="screen" type="text/css" href="/fichier_pour_ie7.css" /><![endif]-->
<!--[if IE 7]><link rel="stylesheet" media="screen" type="text/css" href="/fichier_pour_ie7.css" /><![endif]-->
- Florent V.
- WRInaute discret

- Messages: 183
- Inscription: 16 Mai 2007
keroin a écrit:Aussi il serait peut être plus judicieux de faire un condition PHP comme celle là :
If IE 6
=> feuille css IE6
else
=> feuille css générique
Bof bof.
Passer par une condition PHP, c'est prendre le risque de récupérer une information erronée, le User Agent string n'étant pas normalisé et certains navigateurs mentant allègrement sur leur nature (pour se faire passer pour IE et éviter de se faire débouter par certains sites mal conçus). Il y a quelques années, c'était d'une fiabilité assez médiocre. Ça c'est peut-être amélioré depuis...
Ceci dit, on a un moyen tout à fait fiable d'adresser du code à certaines versions d'Internet Explorer Windows uniquement, et ce sont les commentaires conditionnels. Donc autant les utiliser.
Niveau bonne pratique, il s'agirait plutôt de faire ceci:
- feuille de style générique pour tous navigateurs (devrait assurer une compatibilité Firefox 1+, Opera 8+, Safari 2+ et IE 7+);
- une feuille de correctifs CSS appelée en plus pour IE 6 et inférieurs.
Suivant la complexité du design, il se peut qu'on soit également obligé d'adresser quelques correctifs à IE7.
Au final, ça peut donner ceci:
- Code: Tout sélectionner
<link rel="stylesheet" media="screen" type="text/css" href="generique.css" />
<!--[if lte IE 6]><link rel="stylesheet" media="screen" type="text/css" href="correctifsie6.css" /><![endif]-->
<!-- Et si besoin... -->
<!--[if IE 7]><link rel="stylesheet" media="screen" type="text/css" href="correctifsie7.css" /><![endif]-->
Note 1: seul generique.css est une feuille de style complète. Les autres peuvent ne contenir que quelques rares lignes de code, voire aucune.
Note 2: à priori, pas de point après le 7 dans la condition [if lt IE 7].
-

Djoule_logo - WRInaute impliqué

- Messages: 718
- Inscription: 30 Mai 2007
Mon correctif Ie 6 ne comprends que 2 classes en fait, et je pense que celui pour le 7 sera dans le même genre.
-

Djoule_logo - WRInaute impliqué

- Messages: 718
- Inscription: 30 Mai 2007
Merci a tous, c'est en ligne et ça marche 
-

Djoule_logo - WRInaute impliqué

- Messages: 718
- Inscription: 30 Mai 2007
Du coup j'ai un autre soucis avec IE7. Mon menu est en flash (oui, je sais pas bien etc.... mais la pas le temps de le refaire pour l'instant) et avec IE7, il faut cliquer une première fois sur le flash pour "l'activer" avant de pouvoir clicuer sur les boutons.
Ca passe nickel avec les autre navigateurs (même ie6). Ca vient de mon flash (une option a activer que j'ai loupé) ou alors il faut rajouter une ligne quelquepart dans le code source?
Ca passe nickel avec les autre navigateurs (même ie6). Ca vient de mon flash (une option a activer que j'ai loupé) ou alors il faut rajouter une ligne quelquepart dans le code source?
-

bproductiv - WRInaute accro

- Messages: 4173
- Inscription: 27 Déc 2004
il faut le charger via flash, chercher swfobject sur google
-

Djoule_logo - WRInaute impliqué

- Messages: 718
- Inscription: 30 Mai 2007
Merci Bproductiv, je regarde ça.
10 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
- IE 8 et feuilles de style
- php et feuilles de style
- Dossier inexistant et feuilles de style
- adsense et les feuilles de style
- passage aux feuilles de style help
- Feuilles de style css et balise H1
- Externalisation feuilles de style : impact sur référencement
- Les feuilles de style.css peuvent-elles nuire au référecnement?
- les attributs des feuilles de style sont ils pris en compte?
- Deux feuilles de Styles
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité
