2010-03-25 4 views
1

Ok, donc je veux que mon border css ne s'applique qu'à ie8 ou plus tôt (comme dans ie9 quand il sort).* css hack ne fonctionne plus dans ie8?

but: de sorte qu'en soit le dropshadow manquant sera remplacé par une frontière:

le * pirater ne marche semble fonctionner? test im dans IE8 localement ...

input, textarea{ 
display:block; 
border:none; 
*border: 1px solid #000; 
-moz-box-shadow: 0px 0px 1px 1px #999; 
-webkit-box-shadow: 0px 0px 1px 1px #999; 
box-shadow: 0px 0px 1px 1px #999; 

-moz-border-radius: 2px; 
-webkit-border-radius: 2px; 
margin: 1px 0px 10px 0px; 
font-size:12px; 
color:#494949; 
} 
+0

Je pensais que IE 7 avait déjà corrigé tous les hacks CSS connus. – Joey

+0

Ce n'est pas le cas. IE8 a corrigé le piratage de la propriété des étoiles. – Quentin

Répondre

1

il y a un hack comme i cherchait, ajoutez ceci à la fin d'une déclaration de css avant le;

\ 9

cibles ie < = 8

+0

Mais n'est-ce pas le contraire de ce que vous demandiez? –

+0

désolé avait mon plus grand que de signer le mauvais sens autour de – Haroldo

+0

pour être clair, cela ressemblerait à: «couleur: bleu \ 9;» et cibles IE6-8. – philfreo

12

Ne pas utiliser hacks CSS, utilisez conditional comments pour cibler les versions IE à la place.

+6

+1. Certainement la bonne réponse. Side note: Ne pas vérifier aveuglément pour IE car le support des normes s'améliore. Au lieu de cela, ciblez les versions IE * spécifiques * ou utilisez l'opérateur * lt * pour éviter d'intercepter les futures versions. – Joey

+0

Y at-il des instructions conditionnelles que je peux écrire à l'intérieur de mon css? je voudrais éviter que les fichiers CSS supplémentaires – Haroldo

+0

unfortunaltely pour vous, les fichiers CSS supplémentaires est la meilleure façon d'aller. – Kyle

3

Ajouter

<!--[if lt IE 9]> 
     <link href="/directroy/IE.css" rel="Stylesheet" type="text/css"/> 
<![endif]--> 

Pour votre balise de tête et utiliser cette nouvelle feuille de style pour définir ce que vous voulez faire IE.

On les appelle des commentaires conditionnels et IE les utilise pour différencier les navigateurs :)

+0

Même ici: S'il vous plaît ne pas simplement utiliser 'si IE' comme cela va cibler * toutes * les versions IE, passées et futures. Pour les versions actuelles et non encore publiées, il est probable que vous ne fassiez que des bêtises. Au lieu de cibler des versions spécifiques ou explicitement passées. – Joey

+0

Oui, j'ai raté cela, merci :) va modifier pour corriger mon erreur – Kyle

+0

+1 Pour être le premier à publier l'exemple de code pertinent. Og pour kommentar på norsk :) –

5

Ajouter à Residuum's answer, c'est le code que vous aurez besoin de faire référence à la feuille de style « avant IE 9 »:

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

l'expression dans la première ligne indique que le balisage dans le commentaire doit être évaluée sur toutes les versions d'Internet Explorer avec un numéro de version inférieure (lt) 9. sur les navigateurs non Microsoft, le code sera traité comme commentaire - à savoir il sera ignoré et la feuille de style supplémentaire ne sera pas incluse. Si vous préférez ne pas créer de feuille de style supplémentaire pour vos correctifs Internet Explorer, vous pouvez utiliser des commentaires conditionnels pour activer/désactiver un conteneur autour du contenu de votre page entière et utiliser la présence de ce conteneur pour activer les correctifs Allumé éteint. Exemple:

<!--[if lt IE 9]><div class="ie"><![endif]--> 
Page content here... 
<!--[if lt IE 9]></div><![endif]--> 

Dans votre fichier CSS principal, vous pouvez maintenant préfixer de sélection avec .ie pour le rendre cible uniquement Internet Explorer avec les numéros de version inférieure à 9:

a { color: red; } 
.ie a { color: blue; } 
+1

+1 pour les commentaires conditionnels pour inclure une classe plutôt qu'une feuille de style séparée (je le fais habituellement sur ''). Il n'y a aucun signe que IE9 supportera 'box-shadow' encore (la plate-forme d'aperçu ne le fait pas). – bobince

+0

@bobince: La prévisualisation de la plateforme ne fait pas non plus de HTML 5 '

1

Vous devriez vraiment juste ajouter une feuille de style conditionnel au lieu d'ajouter hacks. Vous allez vous remercier plus tard.