2009-12-21 8 views

Répondre

5

Si vous ne voulez pas utiliser un conditional comment (en dehors du CSS, par exemple en définissant une section <style> séparée), la seule chose que vous pouvez utiliser est CSS Hacks. Voir here pour un hack "IE7 uniquement".

+0

mais finalement vous devrez pirater le hack si jamais ils le réparer –

+0

Eh oui. Les commentaires conditionnels sont bien plus agréables. –

3

IE prend en charge conditional comments, une syntaxe de commentaire HTML spécifique à IE. Vous pouvez les utiliser pour inclure des CSS spécifiques à IE7, par ex.

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

Il n'y a malheureusement pas d'équivalent en CSS. Mais, comme mentionné dans d'autres réponses, il existe quelques hacks CSS valides que vous pouvez utiliser pour cibler les règles CSS comme IE 7.

Personnellement, je préfère la syntaxe du commentaire conditionnel car c'est un peu plus explicite, mais vous pouvez faire les hacks explicite avec des commentaires.

2

Si vous ne voulez pas une feuille de style séparée pour hacks IE, voici une autre façon de le faire avec l'aide des commentaires conditionnels:

<!--[if lt IE 7]><body class="ie6"><![endif]--> 
<!--[if (gte IE 7)&(lt IE 8)]><body class="ie7"><![endif]--> 
<!--[if gte IE 8]><!--><body><!--<![endif]--> 
    ...page content... 
</body> 

Cela donne IE6, IE7 et [tous les autres navigateurs] une classe d'élément de corps différent . Vous pouvez maintenant écrire des règles comme:

body.ie7 div.scroll { padding-bottom: 16px; } 
+0

idée intéressante. cela pourrait être utile ... –

0

sont des expressions valides? le cas échéant:

cssAttr: expression(/msie 7/i.test(navigator.userAgent) ? '#ie7val' : '#0th3r1'); 

Je doute fortement qu'ils sont bien, et techniquement c'est CSS, mais il est vraiment JavaScript déguisé!

+1

Non, malheureusement, ils ne sont pas valides CSS. –

+0

Figuré, presque tout ce que MS fait tend à être en désaccord avec le W3C –

0

IE7 seule prise css:

*:first-child+html{ }