5568 sujets

Sémantique web et HTML

Bonjour à tous,

Je voudrais utiliser les commentaires conditionnels pour que mon site sois visible sous IE<9 car j'ai utilisé pas mal de CSS3... Cependant je voudrais savoir si il est possible de faire un ELSE car je voudrais utiliser style-ie.css pour "IE lt 9" et style-other.css pour les autres...


<!--[if IE lt 9]>
	style-ie.css
<![ else ]-->
        style-other.css
<![endif]-->


Est-ce possible ?

Merci
Modifié par tonymx15 (26 Jul 2011 - 20:46)
Bonjour,

Ce n'est pas possible. Les commentaires conditionnels sont interprétés uniquement par IE<10, pour les autres navigateurs ce sont des commentaires classiques.

Le principe des commentaires conditionnels est de fournir une feuille de styles standard, qui fonctionne avec les autres navigateurs, puis d'indiquer une feuille de styles corrective pour les version d'IE posant problème. Inutile donc d'avoir deux feuilles complètes.
En fait c'est possible mais pour le coup tu devrais écouter les conseils de Laurie Anne.

Cela dit si tu veux cibler les navigateurs non IE, la syntaxe est la suivante :


<!--[if !IE]><!-->
bla bla
<!--<![endif]-->

    <link rel="stylesheet" media="screen" href="style.css" />
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
    <script type="text/javascript" src="script.js"></script>


    <!--[if lt IE 9]>
            <link rel="stylesheet" media="screen" href="style-ie.css" />
        <script>
            function showPhone(){
                document.getElementById('tel').style.display= 'block';
            }
            function hidePhone(){
                document.getElementById('tel').style.display= 'none';
            }
        </script>
    <![endif]-->


Donc dans mon code si dessus, tous les navigateurs mis à part <IE9 utiliseront les ligne au dessus le commentaire conditionnel puis les version <IE9 utiliseront le style dans le commentaire conditionnel ?

Car si c'est une version de IE<9 je voudrais de même ne pas utiliser de jQuery...
Modifié par tonymx15 (27 Jul 2011 - 13:03)
tonymx15 a écrit :

Donc dans mon code si dessus, tous les navigateurs mis à part &lt;IE9 utiliseront les ligne au dessus le commentaire conditionnel


Pas du tout. Tous les navigateurs verront le code au dessus du commentaire conditionnel.
jb_gfx a écrit :
Cela dit si tu veux cibler les navigateurs non IE, la syntaxe est la suivante :
<!--[if !IE]>[#red]<!-->[/#]
bla bla
<!--<![endif]-->

J'ai une question car je m'intéresse moi aussi de très près aux commentaires conditionnels :

Pourquoi mettre un commentaire à la fin de la condition de la première ligne (en rouge) ? Ça m'intrigue. J'ai vu ce code dans beaucoup de tutos mais pourtant cela semble fonctionner sans qu'on ait besoin d'y avoir recours...
Modifié par Olivier C (28 Sep 2011 - 16:18)
Les commentaires conditionnels, ça consiste juste en des commentaires...
C'est pour ça qu'ils commencent par
<!--

et se terminent par
-->
.

Ainsi, théoriquement, tous les navigateurs comprennent le contenu comme des commentaires, et (théoriquement), personne ne l'interprète.

Exception : Internet Explorer; il interprète les commentaires s'ils sont de la forme "conditionnelle":
<!--[if IE]> ... <![endif]-->
.

Dès lors, la portion de code

<!--[if !IE]><!-->

bla bla

<!--<![endif]-->

devrait être claire...
Pour tous les navigateurs (IE compris) :
<!--[if !IE]><!-->
<=> un commentaire dont le contenu est [if !IE]><!
bla bla
<=> de l'html interprété
<!--<![endif]--> 
<=> un commentaire dont le contenu est <![endif]

Comme on l'a dit plus haut, le principe des commentaires conditionnels c'est de palier aux bugg de IE; je ne vois pas donc pas quelles seraient les bonnes raisons de faire un "else". Si vous avez besoin de quelque chose de plus sophistiqué que du "palliage de bugg css", tournez-vous vers du javascript.
Modifié par justin.dekeyser (21 Mar 2012 - 14:54)
Il n'est pas marqué comme résolu, et une question est restée en suspens.
Donc moi je dirais que ce n'était pas proscrit Smiley smile

EDIT : c'est pas des conneries. Si les choses ne se passent pas comme ça vas-y, éclaire-moi.
Modifié par justin.dekeyser (21 Mar 2012 - 14:56)