test conditionnel pour ie

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : test conditionnel pour ie

par Hywan » 22 août 2008, 14:55

Pour CSS 3 ce serait différent. Pourquoi est-ce qu'on fait des commentaires conditionnels pour IE 6 ? La plupart du temps, ce n'est pas une question de style, mais de positionnement (de layout). Quand IE saura bien positionner ses éléments avec CSS, le reste sera « superflu », ça touchera à la décoration. Si un text-shadow n'est pas bien compris, ce ne sera pas la mort … L'utilisateur saura juste que son navigateur ne le supporte pas, c'est tout. En tout cas, je ne prendrais plus les différences en compte.

Pour l'instant, j'utilise des balises CSS 3 comprises par Safari et pas par Firefox, ce n'est pas la mort (enfin, Firefox 3 les comprend maintenant). C'est juste un petit plus pour ceux qui ont un bon navigateur, c'est tout.

par Victor BRITO » 22 août 2008, 14:39

N'oublions pas que ce ne sera bientôt plus d'actualité car IE 8 promet de rattraper son retard. Il faudrait que Microsoft impose IE 8 partout et ce sera bon (<warning troll="inside" />).
En l'état actuel des choses, il y aura encore du commentaire conditionnel dans l'air.

Par exemple :

Code : Tout sélectionner

li { display: inline; padding: 0; margin: 0; } li:before { content: " - "; } /* pour annuler la règle ci-dessous pour le premier li afin que ça fasse plus joli */ li:first-child:before { content: normal; }
CSS pour IE 8 (<!--[if IE 8]><![endif]-->)

Code : Tout sélectionner

li:first-child:before { content: ""; }
Et je ne parle pas du jour où l'on commencera à produire des CSS 3 : ce sera une impression de déjà-vu avec IE 6 et CSS 2. :langue:

par Hywan » 22 août 2008, 14:07

Hmm, je n'ai pas vérifié si ça marchait mais de toute façon, ce n'est pas une syntaxe standard, alors inutile de l'utiliser.
Le but des hacks (et surtout des commentaires conditionnels) est d'avoir un code propre auquel on ajoute une modification propre comprise par un navigateur particulier. Si on tape dans les syntaxes propriétaires et/ou dégueu', ça ne sert plus à rien.

Les commentaires conditionnels restent à ce jour le meilleur moyen de faire des hacks pour IE. N'oublions pas que ce ne sera bientôt plus d'actualité car IE 8 promet de rattraper son retard. Il faudrait que Microsoft impose IE 8 partout et ce sera bon (<warning troll="inside" />).

par Invité » 22 août 2008, 13:52

ici

http://www.babylon-design.com/site/inde ... -important

dans un commentaire

sous linux sont animation de bulle crache le site

par Victor BRITO » 22 août 2008, 11:05

La syntaxe est !important (un seul ! et au début).

par Hywan » 22 août 2008, 10:47

Hmm, je n'ai jamais vu !important!, ça doit être une erreur. Ça ne correspond à aucune syntaxe, le document est donc mal construit.

par AB » 22 août 2008, 05:28

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]
Bon et bien ça doit être suivant les versions. Tu as laquelle ?

par x@v » 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]

par AB » 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.

par x@v » 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]

par Victor BRITO » 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).

par Hywan » 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.

par Victor BRITO » 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 */ }

par Hywan » 21 août 2008, 17:36

255 pas 256 ;-).

par x@v » 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 !