<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Clearideaz &#187; hack</title>
	<atom:link href="http://clearideaz.com/tag/hack/feed/" rel="self" type="application/rss+xml" />
	<link>http://clearideaz.com</link>
	<description>webdesigner et intégrateur XHTML / CSS</description>
	<lastBuildDate>Mon, 20 Jun 2011 14:00:41 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1</generator>
		<item>
		<title>Les hacks c&#8217;est pas bien !</title>
		<link>http://clearideaz.com/2008/04/les-hacks-cest-pas-bien/</link>
		<comments>http://clearideaz.com/2008/04/les-hacks-cest-pas-bien/#comments</comments>
		<pubDate>Thu, 24 Apr 2008 13:35:00 +0000</pubDate>
		<dc:creator>Olivier G.</dc:creator>
				<category><![CDATA[HTML / CSS]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[htc]]></category>
		<category><![CDATA[ie]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[navigateurs]]></category>

		<guid isPermaLink="false">http://www.clearideaz.com/?p=27</guid>
		<description><![CDATA[<p>La tentation de recourir à des hacks est grande lorsque l'on commence à se lancer dans l'intégration d'un site web. Lorsque l’on s'aperçoit que la page développée s'affiche différemment d'un navigateur à l'autre, on se dit très souvent que c'est le navigateur (Internet Explorer pour ne pas le citer) qui interprète le code ou la feuille de style n'importe comment.</p> <p>Cette réaction est plus ou moins justifiée. Nous sommes tous conscients des lacunes du navigateur Microsoft et plus particulièrement des versions antérieures à la 7. Toutefois, ce n'est pas une raison pour charger sa feuille de style de propriétés invalides en prenant comme bouc émissaire le navigateur de Monsieur Redmond. </p> <p>Une feuille de style doit, au même titre que le document <abbr title="eXtensible HyperText Markup Language">XHTML</abbr>, passer l'épreuve du validateur <abbr title="World Wide Web Consortium">W3C</abbr>. Ce n'est pas en insérant des "_width:" ou encore de "%margin:" dans votre <abbr title="Cascading Style Sheet">CSS</abbr> que vous pourrez vous vantez de faire un site au codage propre. J'irais même jusqu'à dire que <strong>les hacks sont bons pour les fainéants la plupart du temps</strong>.</p> <p>Dernièrement, j'avais fais remarquer à un intégrateur remonté contre <abbr title="Internet Explorer">IE</abbr> que notre boulot perdrait de l'intérêt sans ces soucis de compatibilité. Même si j'affirmais cela ironiquement, je trouve passionnant de découvrir pourquoi telle propriété ne fonctionne pas de la même manière d'un navigateur à l'autre et surtout, comment y remédier.</p>]]></description>
			<content:encoded><![CDATA[<p>La tentation de recourir à des hacks est grande lorsque l&#8217;on commence à se lancer dans l&#8217;intégration d&#8217;un site web. Lorsque l’on s&#8217;aperçoit que la page développée s&#8217;affiche différemment d&#8217;un navigateur à l&#8217;autre, on se dit très souvent que c&#8217;est le navigateur (Internet Explorer pour ne pas le citer) qui interprète le code ou la feuille de style n&#8217;importe comment.</p>
<p>Cette réaction est plus ou moins justifiée. Nous sommes tous conscients des lacunes du navigateur Microsoft et plus particulièrement des versions antérieures à la 7. Toutefois, ce n&#8217;est pas une raison pour charger sa feuille de style de propriétés invalides en prenant comme bouc émissaire le navigateur de Monsieur Redmond. </p>
<p>Une feuille de style doit, au même titre que le document <abbr title="eXtensible HyperText Markup Language">XHTML</abbr>, passer l&#8217;épreuve du validateur <abbr title="World Wide Web Consortium">W3C</abbr>. Ce n&#8217;est pas en insérant des &laquo;&nbsp;_width:&nbsp;&raquo; ou encore de &laquo;&nbsp;%margin:&nbsp;&raquo; dans votre <abbr title="Cascading Style Sheet">CSS</abbr> que vous pourrez vous vantez de faire un site au codage propre. J&#8217;irais même jusqu&#8217;à dire que <strong>les hacks sont bons pour les fainéants la plupart du temps</strong>.</p>
<p>Dernièrement, j&#8217;avais fais remarquer à un intégrateur remonté contre <abbr title="Internet Explorer">IE</abbr> que notre boulot perdrait de l&#8217;intérêt sans ces soucis de compatibilité. Même si j&#8217;affirmais cela ironiquement, je trouve passionnant de découvrir pourquoi telle propriété ne fonctionne pas de la même manière d&#8217;un navigateur à l&#8217;autre et surtout, comment y remédier.</p>

<h3>Les hacks que l&#8217;on pourrait éviter</h3>
<h4>Les images PNG</h4>
<p>Prenons l&#8217;exemple du <abbr title="Portable Network Graphics">PNG</abbr>. Beaucoup de webmasters s&#8217;extasient devant les possibilités de ce format d&#8217;image. L&#8217;utilisation des <a href="http://blog.lablonde.fr/billets/25-la-couche-alpha-des-png-sous-internet-explorer.html" title="Voir un article traitant des possibilités et des caractéristiques du format PNG">différentes couches alpha de transparence</a> offre effectivement de nombreuses possibilités. Seulement voilà, ce format n&#8217;est pas pris en charge par les anciennes versions d’IE. Le hacker en herbe viendra me faire remarquer que l&#8217;on peut remédier à ce problème en utilisant la propriété CSS DX.Transform dans la feuille CSS ou dans un <a href="http://www.zeguigui.com/weblog/archives/2005/01/les_behaviors_m.php" title="Les behaviors, mais qu'est-ce donc ?">fichier .htc</a>. Cette utilisation pose plusieurs soucis :</p>
<ul>
<li>La feuille de style n&#8217;est pas valide W3C.</li>
<li>La feuille CSS n&#8217;est pas censée intégrer ce genre de propriétés ou faire appel à des fichiers chargeant du JavaScript.</li>
<li>Ce hack fait appel au moteur <a href="http://fr.wikipedia.org/wiki/DirectX" title="Voir l'article dédié à Direct X sur Wikipédia">Direct X</a> et selon la version, une simple image peut faire bugger le système d&#8217;exploitation, ce qui est, vous en conviendrez, un peu gênant&#8230;</li>
</ul>
<p>Si vous souhaitez vraiment utilisez le PNG sur Internet Explorer, appelez plutôt un fichier JavaScript pur pour arriver à vos fins.</p>
<p>Parfois, un simple découpage de l&#8217;illustration au format <abbr title="Graphics Interchange Format">GIF</abbr> ou même une image JPEG placée intelligemment peut offrir au visiteur le même effet. <strong>Le PNG n&#8217;est pas une fin en soit</strong>.</p>
<h4>Les pseudo-classes</h4>
<p>Concernant les pseudo-classes, évitez également de passer par un fichier .htc dans votre feuille de style pour intégrer le :hover sur une balise div ou un :target sur une tout autre balise. Encore une fois, si cette utilisation est requise, passez par de pures fonctions JavaScripts.</p>
<h4>Un problème de taille !</h4>
<p>Arrêtons de nous prendre le chou avec les débats philosophiques sur le <a href="http://www.tatane.info/index.php/le-hack-model-box-css" title="Un exemple d'article décrivant un hack de model box">model box</a> ou autre double-margin. Ces problèmes peuvent être aisément contournés. De plus, vous le verrez par vous même, quand on commence avec des hacks de placement ou d&#8217;ajustement de dimension, on en finit plus. <strong>Les hacks attirent les hacks</strong> <img src='http://clearideaz.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Comme vous pourrez le constater sur l&#8217;<a href="http://www.weblogr.fr/demo/23042008/test.html" title="Voir la démonstration sur la gestion des positionnements, padding et margin en CSS">exemple suivant</a>, les soucis de padding ou de margin peuvent parfois être causés par une simple propriété qui n’a pas lieu d&#8217;être. Pour être certain de contrôler pleinement votre mise en page, efforcez-vous de tester plusieurs méthodes de positionnement sans passer par les hacks et testez le résultat sur différents navigateurs. Il y aura toujours une méthode qui fasse plaisir à tout le monde <img src='http://clearideaz.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h3>Pour résumer</h3>
<p>Avant de se décider à utiliser un hack, il faut d&#8217;abord se questionner sur les autres alternatives valables. <strong>Dénigrer IE sans chercher plus loin n&#8217;amènera rien de bon</strong>. N&#8217;intégrez pas de fonctions JavaScripts dans votre feuille de style par le biais de fichiers .htc mais préférez un fichier JavaScript pur. N&#8217;abusez pas du format PNG et ne l&#8217;utilisez qu&#8217;en dernier recours. Privilégiez l&#8217;utilisation de &laquo;&nbsp;!important&nbsp;&raquo; aux notations bidons telles que &laquo;&nbsp;_width:&nbsp;&raquo; ou encore &laquo;&nbsp;%padding:&nbsp;&raquo;. Les hacks CSS c&#8217;est taboo, on en viendra tous à bout.</p>
<div id="encadre-article">
<h3>Quelques précisions s&#8217;imposent</h3>
<p>Au regard de cet article, on peut se demander ce qui est à ranger dans la catégorie des hacks ou non. Si je voulais résumer, j&#8217;engloberais les éléments qui ne valident pas la feuille CSS mais voici une petite liste détaillées :</p>
<ul>
<li>Dans un premier temps, j&#8217;inclus l&#8217;ensemble des propriétés mal orthographiées : &laquo;&nbsp;_width:&nbsp;&raquo;, &laquo;&nbsp;%padding:&nbsp;&raquo; par exemple.</li>
<li>Les inclusions de fichiers .htc pour faire appel à du javascript par exemple.</li>
<li>Les propriétés CSS non reconnues par le W3C tel que &laquo;&nbsp;opacity&nbsp;&raquo;.</li>
<li>Les propriétés en double pour une même classe ou ID (deux propriétés de taille pour un même bloc).</li>
<li>Les appels à Direct X dans la feuille de style.</li>
</ul>
<p>Et voici ce que je ne considère pas comme des hacks :</p>
<ul>
<li>Les sélecteurs non reconnus par tous les navigateurs mais valides W3C tel que &laquo;&nbsp;div &gt; p&nbsp;&raquo; (logique non?).</li>
<li>Les propriétés non reconnues par tous les navigateurs mais valides W3C. &laquo;&nbsp;min-height&nbsp;&raquo; en est un exemple.</li>
<li>Les feuilles de style appelées par des <a href="http://forum.alsacreations.com/faq/faq-53-Qu039est-ce-que-les-commentaires-conditionnels-.html" title="Qu'est-ce que les commentaires conditionnels?">commentaires conditionnels</a> (même si on s&#8217;en passerait bien&#8230;)</li>
</ul></div>
]]></content:encoded>
			<wfw:commentRss>http://clearideaz.com/2008/04/les-hacks-cest-pas-bien/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
	</channel>
</rss>

