Deux feuilles de style pour 2 version d'IE


Djoule_logo
WRInaute impliqué
WRInaute impliqué
 
Messages: 718
Inscription: 30 Mai 2007

Deux feuilles de style pour 2 version d'IE

Message le Mar Oct 02, 2007 23:58

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]-->


keroin
WRInaute passionné
WRInaute passionné
 
Messages: 2308
Inscription: 29 Avr 2006

Message le Mer Oct 03, 2007 0:15

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

;)


Djoule_logo
WRInaute impliqué
WRInaute impliqué
 
Messages: 718
Inscription: 30 Mai 2007

Message le Mer Oct 03, 2007 7:47

J'y ai pensé, mais je ne connais pas la commande PHP qui me retourne la version du navigateur.


bproductiv
WRInaute accro
WRInaute accro
 
Messages: 4173
Inscription: 27 Déc 2004

Message le Mer Oct 03, 2007 8:36

<!--[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]-->

Florent V.
WRInaute discret
WRInaute discret
 
Messages: 183
Inscription: 16 Mai 2007

Message le Mer Oct 03, 2007 8:55

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é
WRInaute impliqué
 
Messages: 718
Inscription: 30 Mai 2007

Message le Mer Oct 03, 2007 17:22

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é
WRInaute impliqué
 
Messages: 718
Inscription: 30 Mai 2007

Message le Mer Oct 03, 2007 17:48

Merci a tous, c'est en ligne et ça marche :D


Djoule_logo
WRInaute impliqué
WRInaute impliqué
 
Messages: 718
Inscription: 30 Mai 2007

Message le Mer Oct 03, 2007 23:10

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?


bproductiv
WRInaute accro
WRInaute accro
 
Messages: 4173
Inscription: 27 Déc 2004

Message le Jeu Oct 04, 2007 7:28

il faut le charger via flash, chercher swfobject sur google


Djoule_logo
WRInaute impliqué
WRInaute impliqué
 
Messages: 718
Inscription: 30 Mai 2007

Message le Jeu Oct 04, 2007 7:58

Merci Bproductiv, je regarde ça.


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité