Question

Je viens juste de commencer à travailler pour une assez grande entreprise et mon groupe gère tous leurs sites Web destinés au public. J'ai ouvert la feuille de style pour la première fois aujourd'hui et j'ai vu plus de 20 fois des concepteurs utiliser le hack de la famille de voix pour corriger un bogue dans IE. (Je ne sais pas pourquoi ils permettent aux graphistes d’écrire tout type de balisage)

Quelle est l'opinion du grand public sur le hack de la famille de voix? Vaut-il la peine de recommander d'utiliser des commentaires conditionnels d'IE pour inclure des feuilles de style personnalisées?

Était-ce utile?

La solution

Les hacks de toutes sortes sont dangereux car ils sont susceptibles d’avoir des effets inattendus sur les futurs navigateurs (beaucoup d’entre elles ont été cassées avec IE7). Les méthodes sûres de filtrer CSS sont:

  • (pour IE uniquement) Utilisation de commentaires conditionnels. Ceux-ci fonctionneront toujours sur les navigateurs Microsoft et seront toujours ignorés par tous les autres navigateurs car ils sont dans les commentaires
  • Ciblage des fonctionnalités - utilisation de sélecteurs CSS uniquement pris en charge par les navigateurs modernes pour empêcher les navigateurs plus anciens d'essayer d'interpréter les règles. Cependant, le fait qu'un navigateur reconnaisse la syntaxe ne signifie pas qu'il la gère correctement. Tout ce que vous garantissez ici, c’est que les anciens navigateurs n’essayeront pas de rendre ces règles, pas plus que les modernes les feront correctement

Dans la mesure du possible, utilisez le sous-ensemble de CSS pris en charge correctement par tous les principaux navigateurs. Cela s’améliore avec le temps, car les anciens navigateurs génèrent de moins en moins de visiteurs.

Autres conseils

La "famille de voix" " hack, mieux connu sous le nom de Tantek Celik Box Model Hack, est utilisé pour masquer des règles CSS spécifiques d'IE4 / 5 sur Windows en raison d'implémentations incorrectes de la norme CSS dans ces navigateurs. Il s'agit d'une tentative visant à fournir la feuille de style unique la plus correcte à tous les navigateurs, sans recourir à la détection de navigateur ni à plusieurs feuilles de style.

Ironiquement, ce hack est le résultat de nombreuses heures d’heures (mois?) d’expérimentation et de tests visant à développer une feuille de style conforme aux normes et compatible avec les navigateurs plus anciens, plus récents et futurs. C’est l’une des solutions de contournement qui ont été créées pour compenser l’horrible état de conformité du navigateur à la norme CSS.

Consultez Conception avec les normes Web de Jeffrey Zeldman pour une analyse détaillée des raisons pour lesquelles le respect des normes (autant que possible) est un objectif louable, et pourquoi l'utilisation de la détection de navigateur et de plusieurs feuilles de style ne provoque que des maux de tête. pour le développeur:

http://www.amazon.com/Designing-Web-Standards-Jeffrey -Zeldman / dp / 0321385551 /

Un exemple en est la course aux armements visant à suivre le rythme des combinaisons navigateur / système d’exploitation, sans oublier les téléphones mobiles et autres appareils futurs dotés d’une capacité de navigation. Le code de détection doit être modifié à chaque nouvelle combinaison et, en raison de la façon dont de nombreux navigateurs se font passer pour Netscape Navigator, la détection peut devenir un travail à plein temps.

Une autre bonne référence est le Web Standards Project, qui contient de nombreuses informations utiles et des tutoriels sur le sujet:

http://www.webstandards.org/

Si vous déplacez votre style de codage vers la conformité aux normes, vous ne devrez généralement pas être aussi préoccupé par la publication des futurs navigateurs. Oui, vous devez toujours tester sur eux, mais vous n'avez pas besoin d'écrire, puis de tester des feuilles de style personnalisées pour chacune d'entre elles.

Mon sentiment sur les piratages comme celui-ci est que vous devriez les éviter si vous le pouvez. S'il est possible d'obtenir le rendu correct sur les navigateurs sans recourir à de telles manigances, vous devriez le faire de la bonne façon. Cependant, les navigateurs ont parfois des implémentations CSS buggées, et il est nécessaire d’utiliser des hacks comme celui-ci.

N'utilisez pas d'inclusions conditionnelles. Utilisez plutôt un sélecteur CSS , il est beaucoup plus élégant. Vous pouvez cibler des classes sur des navigateurs individuels (et / ou des versions):

.myClass {...}

.ie6 .myClass {...}

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top