test conditionnel pour ie

x@v
Mammouth du PHP | 570 Messages

20 août 2008, 00:23

Bonjour,

J'essaie de faire un test conditionnel

Code : Tout sélectionner

<!--[if IE]> <style type="text/css"> body {background-color:#000;} </style> <![endif]-->
Sa ne fonctionne pas ?

Merci

ViPHP
AB
ViPHP | 5818 Messages

20 août 2008, 01:24

Bonjour,

J'essaie de faire un test conditionnel

Code : Tout sélectionner

<!--[if IE]> <style type="text/css"> body {background-color:#000;} </style> <![endif]-->
Sa ne fonctionne pas ?

Merci
C'est quoi comme couleur #000 ?

ViPHP
ViPHP | 3607 Messages

20 août 2008, 09:23

#000 = #000000 = black
;)

Mammouth du PHP | 2937 Messages

20 août 2008, 09:38

Il n'y a aucune erreur. Ça devrait donc marcher.

Invité
Invité n'ayant pas de compte PHPfrance

20 août 2008, 20:47

Pourtant sur ce site
http://www.boutiknline.com/?page=proposition
sous ie 7 je n'ai pas de couleur noir en bas de page

ViPHP
AB
ViPHP | 5818 Messages

20 août 2008, 21:57

Tiens je savais même pas qu'on pouvait ne pas utiliser la valeur hexadécimale exacte :oops:

Sinon j'ai pas regardé ton code mais il y a fort à parier que tu as écrit ce commentaire en haut de page et qu'ensuite tu as écrit un background différent dans ta feuille de style (qu' IE n'a aucune raison d'ignorer). Auquel cas il suffit de mettre ce commentaire après ta feuille de style.

ViPHP
ViPHP | 4674 Messages

20 août 2008, 22:38

Hey :),

Je ne vois pas d'erreur, donc je plussoie AB.

En ce qui concerne le #000000 qui devient #000, c'est simple. Si on travaille sur des couleurs en 255 bits (+ 1 bit alpha), on remarque que l'on écrit toujours en double. Par exemple : #ff0000, ou #336699, etc. Donc on peut facilement simplifier en ne mettant qu'un caractère sur 2. Ainsi #ff0000 devient #f00, et #336699 devient #369, etc.
Ça ne marche que pour les couleurs codées sur 255 bits, attention. Si on est sur 16 million de couleur, ça ne marchera jamais ;-).
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

x@v
Mammouth du PHP | 570 Messages

21 août 2008, 17:34

donc ont doit poser le test conditionnel après le lien pour FF, safari...
comme cela ?

Code : Tout sélectionner

<link type="text/css" href="style.css" rel="stylesheet" media="screen, projection" /> <link type="text/css" href="accordeon.css" rel="stylesheet" media="screen, projection" /> <!--[if IE]> <style type="text/css"> body {background-color: #074570;} </style> <![endif]-->
Je ne savait pas que 3 chiffres équivalait à 256 couleurs, je ne sais pas d'où tu sors ça, mais c'est bon à savoir, et sa donne une explication plausible !

ViPHP
ViPHP | 4674 Messages

21 août 2008, 17:36

255 pas 256 ;-).
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

Mammouth du PHP | 2937 Messages

21 août 2008, 19:15

donc ont doit poser le test conditionnel après le lien pour FF, safari...
comme cela ?

Code : Tout sélectionner

<link type="text/css" href="style.css" rel="stylesheet" media="screen, projection" /> <link type="text/css" href="accordeon.css" rel="stylesheet" media="screen, projection" /> <!--[if IE]> <style type="text/css"> body {background-color: #074570;} </style> <![endif]-->
Oui, puisque la feuille de style ciblant IE est censée apporter des correctifs, par effet d'écrasement des valeurs précédentes des mêmes propriétés appelées pour les mêmes sélecteurs appelés. Autrement dit, c'est le principe suivant :

Code : Tout sélectionner

body { background-color: white; background-color: black; /* l'arrière-plan sera de couleur noire */ }
Autre solution : si tu laisses ton commentaire conditionnel avant l'appel des autres feuilles de style, fais comme suit :

Code : Tout sélectionner

<!--[if IE]> <style type="text/css"> body {background-color: #074570 !important;} </style> <![endif]--> <link type="text/css" href="style.css" rel="stylesheet" media="screen, projection" /> <link type="text/css" href="accordeon.css" rel="stylesheet" media="screen, projection" />
La règle !important permet, en effet, d'éviter que la valeur de la propriété ne soit écrasée par une autre valeur issue d'une autre feuille de style appelant la même propriété dans le même sélecteur (sauf si cette dernière ou une feuille de style utilisateur emploie la règle !important). Autrement dit :

Code : Tout sélectionner

body { background-color: white !important; background-color: black; /* l'arrière-plan sera de couleur blanche */ }

ViPHP
ViPHP | 4674 Messages

21 août 2008, 19:22

Attention ! La super-propriété !important n'est pas comprise par IE 6, il l'ignore totalement. C'est justement un de mes hacks favoris car propre.
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

Mammouth du PHP | 2937 Messages

21 août 2008, 20:50

Attention ! La super-propriété !important n'est pas comprise par IE 6, il l'ignore totalement. C'est justement un de mes hacks favoris car propre.
Figure-toi que, pas plus tard que cette semaine, j'ai utilisé cette règle dans le cadre d'une intégration et IE 6 la comprenait (certes, c'est une version standalone embarquée avec IETester ; mais, je m'attendais à ce que tu viens de dire).

x@v
Mammouth du PHP | 570 Messages

21 août 2008, 21:27

d'ailleurs au début je voulais utiliser !important mais ie7 la comprend comme FF, donc c'était mort c'est bien dommage, même sir ie7 reste encourageant, je trouve que l'affichage des éléments (formulaire, bordure..) est moins jolis que chez ces concurents...

excellente explication du test conditionnel sa manquait...

Merci

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]

ViPHP
AB
ViPHP | 5818 Messages

22 août 2008, 02:34

Attention ! La super-propriété !important n'est pas comprise par IE 6, il l'ignore totalement. C'est justement un de mes hacks favoris car propre.
J'ai pas le temps de faire des tests approfondis mais

Code : Tout sélectionner

<!--[if IE]> <style type="text/css"> body {background-color: #074570 !important;} </style> <![endif]-->
est bien pris en compte par IE6.

Je le confirme pour info car je teste sur la version standard 6.0.2900.5512.xpsp.080413-2111 (donc pas une version standalone) sous XP SP3.

x@v
Mammouth du PHP | 570 Messages

22 août 2008, 03:43

j'ai pourtant tester et j'affirme que ie6 ne voit pas les propriétés qui précèdent
!important
Sa fonctionnait pour ie7 comme ceci
!important!
Mais pas régulièrement...

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]