9
votes

IE8 CSS Hack - Meilleure méthode?

Quelqu'un peut-il recommander le meilleur moyen de pirater le style IE8 via CSS, j'ai récemment effectué un rendu IE8 comme IE7 pour la facilité - mais s'il était préférable d'ajouter IE8 hacks?


6 commentaires

La meilleure méthode consiste à ne pas utiliser de hacks du tout.


Si votre site ressemble beaucoup mieux à IE7 que IE8, vous avez de graves problèmes.


Certaines choses que c'est-à-dire, c'est-à-dire que cela ne rend pas de la même manière que les autres navigateurs et les hacks conviennent à cette option. Si vous avez besoin de feuilles de style CSS entières pour chaque version, vous avez un problème avec votre code. Pour pirater directement une seule ligne dans une entité CSS pour IE8 et ci-dessous, vous pouvez utiliser {propriété: valeur \ 9;}


@My Head Hurts Votre CSS sera rapidement foiré avec ces hacks. Je ne dis pas que vous devriez avoir une feuille séparée pour chaque version IE, je viens de décrire les possibilités. J'en ai normalement un pour filtre Crap et un pour IE6 si je dois le supporter. Et ce n'est pas une feuille entière avec tout répété, comme je l'ai dit dans ma réponse.


@bazmegakapa - J'ai trouvé que si vous écrivez votre code correctement, les seuls correctifs sur IE7 / 8 (toute personne utilisant IE6 à mon avis devrait être au-delà de la portée) ont tendance à se rapporter aux pixels (hauteur, largeur, rembourrage ...) - qui Peut être corrigé avec un simple hack CSS et n'a pas tendance à devenir désordonné car il est contenu dans le même élément CSS. Je suis d'accord avec vous pour ajouter une nouvelle feuille de style CSS pour IE9, car cela accueille de nouvelles fonctionnalités - mais cette question était un problème entre IE7 et IE8. -> aussi, j'étais celui qui + 1'd votre commentaire sur des problèmes graves


@My Head Hurts Je n'ai pas dit ajouter une feuille pour IE9, j'ajouterais un pour


7 Réponses :


5
votes

0 commentaires

2
votes

Pouvez-vous expliquer un peu plus ce que vous voulez?

En règle générale, IE8 est compatible assez de normes, alors assurez-vous simplement que votre document HTML est en mode de normalisation et donne à IE8 la même feuille de style que tout autre navigateur.

Si c'est à dire, la meilleure solution consiste à utiliser Commentaires conditionnels pour donner à la fois une feuille de style distincte.


0 commentaires

11
votes

Vous devez inverser votre méthode. D'abord, votre site devrait être bon dans les navigateurs modernes (comme Firefox, Chrome, Opera, IE 9), puis vous pouvez commencer à vous inquiéter des autres.

Comme d'autres suggérées, des commentaires conditionnels peuvent être votre ami. P> Premièrement, vous devriez développer votre CSS pour avoir l'air bien dans les navigateurs modernes. Ensuite, vérifiez IE8, voyez quels problèmes vous obtenez. Si vous avez besoin de, incluez une feuille de style IE spécifique. Après cela, vous pouvez enregistrer IE7, puis l'IE6 si vous le supportez et ajoute d'autres corrections. P>

Exemple: P>

<link rel="stylesheet" href="normal.css" type="text/css" />
<!--[if lt IE 9]><link rel="stylesheet" type="text/css" href="ie8.css"><![endif]-->
<!--[if lt IE 8]><link rel="stylesheet" type="text/css" href="ie7.css"><![endif]-->


2 commentaires

+1, bon conseil. J'ai peut-être aussi mentionné que rendant IE8 rendu comme IE7 pour la facilité est une mauvaise idée.


@THIRTYDOT THX, je vais l'ajouter. Vous ne pouvez jamais l'insister assez!



5
votes

Autres réponses publiées, vous pouvez utiliser des commentaires conditionnels, mais ajouter une demande HTTP lorsque l'utilisateur utilise IE8. Vous pouvez utiliser le piratage \ 0 dans le fichier CSS xxx


2 commentaires

J'avais personnellement informé d'utiliser n'importe quel type de Hack s. Les commentaires conditionnels sont un moyen propre pour résoudre les problèmes. Et sur la plupart des sites, une demande de plus pour un CSS IE n'est pas ce que vous devriez vous inquiéter lorsque vous commencez à optimiser :).


Fonctionne bien. Je suis sur un système de gestion de contenu Oracle Quelqu'un d'autre contrôle et je ne peux pas ajouter une déclaration conditionnelle afin que ce hack devra suffire.



0
votes

Utilisez le bibliothèque JavaScript JavaScript, qui fait de la magie pour rendre plus âgé Les versions citées se comportent plus comme des navigateurs appropriés avec leur manipulation de HTML et CSS. Ensuite, comme d'autres l'ont suggéré, écrivez votre code de manière compatible des normes qui se comporte bien avec les dernières versions de Chrome, Firefox, Opera, etc.


0 commentaires

-1
votes

IE8 uniquement: le meilleur moyen est

corps {fond: # f00 \ 0 /;}

\ 0 / est le piratage IE8 CSS


2 commentaires

Vraiment? Mais je n'ai pas vu ça. Êtes-vous sûr que c'est ie9?


peut-être un autre moyen ------------- code / * IE6 IE7 * / @media tout \ 9 {corps {fond: vert; }} / * IE8 * / @media \ 0Screen {corps {couleur: bleu; }} / * Écran IE9 IE10 * / @Media (min-largeur: 0 \ 0) {corps {fond: jaune; }} / * Écran IE10 IE11 * / @MeMedia (-MS-contraste élevé: actif), (-MS-contraste-contraste: aucun) {.elector {propriété: valeur; }}



0
votes

Je cherchais une bonne option pour le style IE10 et au-dessous de CSS (mais cela fonctionnerait pour IE8 uniquement), je n'ai pas voulu une feuille de style supplémentaire pour la lisibilité et je suis venu avec cette idée:

<!--[if lt IE 10]><div class="column IE10-fix"><![endif]-->
<!--[if !lt IE 10]><!--><div class="column"><!--<![endif]-->


0 commentaires