2009-06-14 8 views
2

J'ai le code ci-dessous pour vérifier si l'utilisateur utilise IE7 ... et il doit sur piloter le style .web_info. Si IE7 n'utilise pas le style par défaut, si ce n'est pas du tout IE, il utilisera le fichier ff_styles.css. Cela ne semble pas fonctionner.css mise en forme conditionnelle

<link rel="stylesheet" type="text/css" href="../styles.css"> 


<![if !IE]> 
<link rel="stylesheet" type="text/css" href="../ff_styles.css"> 
<![endif]> 

<![if IE 7]> 
<style type="text/css"> 
.web_info 
{ 
left: 450px; 
top: 200px; 
width: 300px; 
height: 60px; 
} 
</style> 
<![endif]> 

Une suggestion? Merci

Répondre

3

Les commentaires conditionnels sont spécifiques à IE et par conséquent "<![if !IE]>" n'est pas une instruction valide pour firefox ou un autre navigateur. De plus, je vous suggère d'essayer la syntaxe suivante:

<!--[if IE 7]> 
<style type="text/css"> 
.web_info 
{ 
left: 450px; 
top: 200px; 
width: 300px; 
height: 60px; 
} 
</style>  
<![endif]--> 

Une dernière remarque de ma part: Depuis IE7/IE8 sont la plupart du temps conforme à la norme, ces hacks CSS doivent être évités, si possible.

Mise à jour: Grâce au slosd je suis corrigé! Selon « Supporting IE with conditional comments » vous pouvez utiliser ce qui suit pour cacher quelque chose à IE:

<!--[if !IE]>--> 
do something; IE will ignore this, other browsers parse it 
<!--<![endif]--> 

Désolé pour le désagrément j'ai fait!

exemple de travail complet:

<link rel="stylesheet" type="text/css" href="../styles.css"> 

<!--[if !IE]>--> 
    <link rel="stylesheet" type="text/css" href="../ff_styles.css"> 
<!--<![endif]--> 

<!--[if IE 7]> 
    <style type="text/css"> 
    .web_info{ 
    left: 450px; 
    top: 200px; 
    width: 300px; 
    height: 60px; 
    } 
    </style> 
<![endif]--> 
+0

Merci, alors comment puis-je vérifier que ce n'est pas IE ... plutôt que de faire si firefox si l'opéra etc – Elliott

+1

! est un opérateur valide: http://msdn.microsoft.com/en-us/library/ms537512(VS.85).aspx Vous pouvez l'utiliser pour les styles que vous souhaitez inclure dans tous les navigateurs, mais dans IE. – slosd

+0

Merci d'avoir eu :) – Elliott

4

ne devrait pas ressembler à ce

<!--[if IE 7]> 
.. 
<![endif]--> 

et

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

Notez que

<!--[if !IE]> 

ne doit jamais céder vrai que ces commentaires conditionnels obtenez seulement interprétés par IE.

+2

La raison en est que, pour les autres navigateurs, <- antything -> apparaît comme un commentaire XML/HTML ne sont pas interprétées. –

+0

Je ne pense pas, ce qu'il veut faire est si IE n'est pas si si! IE est juste –

+0

Merci, mais dans Firefox, il montre toujours le style écrasé pas les ff_styles – Elliott