<?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>CSS &#38; Webdesign &#187; Hacks CSS</title>
	<atom:link href="http://css.4design.tl/tag/hacks-css/feed" rel="self" type="application/rss+xml" />
	<link>http://css.4design.tl</link>
	<description>Le blog de l&#039;intégrateur web</description>
	<lastBuildDate>Thu, 24 May 2012 16:31:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Une Feuille de style et des « hacks CSS » pour cibler IE6, IE7 ou IE8</title>
		<link>http://css.4design.tl/une-feuille-de-style-et-des-hacks-css-pour-cibler-ie6-ie7-ou-ie8</link>
		<comments>http://css.4design.tl/une-feuille-de-style-et-des-hacks-css-pour-cibler-ie6-ie7-ou-ie8#comments</comments>
		<pubDate>Sun, 14 Mar 2010 20:38:27 +0000</pubDate>
		<dc:creator>Bruno Bichet</dc:creator>
				<category><![CDATA[HTML & CSS]]></category>
		<category><![CDATA[Intégration web]]></category>
		<category><![CDATA[Navigateurs]]></category>
		<category><![CDATA[Commentaires conditionnels]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Edito]]></category>
		<category><![CDATA[Google Chrome]]></category>
		<category><![CDATA[Hacks CSS]]></category>
		<category><![CDATA[IE6]]></category>
		<category><![CDATA[IE7]]></category>
		<category><![CDATA[IE8]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Navigateur]]></category>
		<category><![CDATA[Opera]]></category>
		<category><![CDATA[Safari]]></category>
		<category><![CDATA[Sélecteur]]></category>
		<category><![CDATA[Tutoriels]]></category>

		<guid isPermaLink="false">http://css4design.com/?p=5631</guid>
		<description><![CDATA[Les hacks CSS sont une utilisation peu conventionnelle des sélecteurs CSS pour s&#8217;adresser à un ou plusieurs navigateurs quand on doit servir une propriété ou une valeur CSS spécifique à un ou plusieurs navigateurs. Si IE6 fait la fine bouche devant sa soupe de balises, il peut être intéressant de lui servir le même plat mais dans une assiette différente (la comparaison est bancale). Ces hacks s&#8217;utilisent souvent pour cibler des versions spécifiques d&#8217;Internet Explorer (généralement IE6 et IE7). Toutefois, il en existe pour Firefox, Opéra, Safari, iPhone, etc. Par ailleurs, je n&#8217;utilise pas ces hacks CSS dans ma feuille [...]]]></description>
			<content:encoded><![CDATA[<p>Les <em>hacks CSS</em> sont une utilisation peu conventionnelle des sélecteurs CSS pour s&#8217;adresser à un ou plusieurs navigateurs quand on doit servir une propriété ou une valeur CSS spécifique à un ou plusieurs navigateurs. Si IE6 fait la fine bouche devant sa soupe de balises, il peut être intéressant de lui servir le même plat mais dans une assiette différente (la comparaison est bancale). Ces <em>hacks</em> s&#8217;utilisent souvent pour cibler des versions spécifiques d&#8217;Internet Explorer (généralement IE6 et IE7). Toutefois, il en existe pour Firefox, Opéra, Safari, iPhone, etc. Par ailleurs, je n&#8217;utilise pas ces <em>hacks CSS</em> dans ma feuille de style principale, mais uniquement dans une CSS réservée à IE via les commentaires conditionnels.<span id="more-5631"></span></p>

<h2>Comment utiliser les hacks CSS ?</h2>

<p>Dans l&#8217;article <a href="http://css.4design.tl/un-seul-fichier-css-pour-cibler-ie6-et-ie7-avec-les-commentaires-conditionnels">Un seul fichier CSS pour cibler IE6 et IE7 avec les commentaires conditionnels</a>, j&#8217;utilisais un <a href="http://css.4design.tl/commentaires-conditionnels-d-internet-explorer-vs-hacks-css">commentaire conditionnel</a> pour cibler les versions inférieures ou égales à IE7. Toutefois, IE9 est sur les rails et il est temps de le prendre en compte, d&#8217;autant plus que<a href="http://www.zdnet.fr/actualites/internet/0,39020774,39710877,00.htm"> Microsoft veut en faire un champion</a> des standards du web en terme de rendu CSS3 et HTML5.</p>

<p>L&#8217;idée derrière la feuille de style unique pour IE est de ne pas augmenter inutilement le nombre de requêtes pour charger une CSS pour chaque version d&#8217;Internet Explorer. En attendant de voir ce que nous réserve IE9, j&#8217;ai décidé de cibler les versions inférieures ou égales à IE8 en espérant que IE9 tienne ses promesses et en attendant de voir s&#8217;il va continuer à gérer les commentaires conditionnels (auquel cas nous pourrions cibler les version inférieures à IE9).</p>

<h3>Cibler les versions &lt;= à IE8</h3>

<p><pre>&lt;!--[if lte IE 8]&gt;
    &lt;link rel="stylesheet" href="css/ie.css" type="text/css" media="screen,projection" /&gt;
&lt;![endif]--&gt;</pre>
De cette manière, les règles CSS placées dans <em>ie.css</em> s&#8217;adressent uniquement à Internet Explorer ; les autres navigateurs considèrent ces commentaires conditionnels comme de simples commentaires HTML. Ça va sans dire mais encore mieux en le disant : les déclarations situées dans <em>style.css</em> s&#8217;appliquent <strong>aussi</strong> à Internet Explorer ce qui implique que l&#8217;appel à  <em>ie.css</em> doit se situer <strong>après</strong> <em>style.css</em> pour surcharger les déclarations qui posent problème.</p>

<p class="small">Note : il existe une forme de commentaires conditionnels qui permet de cibler tous les navigateurs sauf Internet Explorer : <code>&lt;!--[if !IE]&gt; &lt;!--&gt; IE Windows ne lira pas ça &lt;!--&gt; &lt;![endif]--&gt;</code></p>

<p>Dans cette feuille de style <em>ie.css</em>, si IE6 (et seulement lui) ne se comporte pas comme prévu devant <code>#header { margin-top: 0; }</code>, il suffira d&#8217;y ajouter <code><strong>* html</strong> #header { margin-top: -5px; }</code> pour régler le problème. Si le problème concerne IE6 et IE7 et que IE8 se comporte de manière standard (c&#8217;est à dire que la règle située dans <em>style.css</em> suffit), il faudra utiliser les hacks de la manière suivante :
<pre>* html #search .submit { margin-top: -10px; } // IE6
*+html #search .submit { margin-top: -14px; } // IE7</pre>
En revanche, si vous avez également besoin d&#8217;une valeur différente pour IE8, il faudra prendre soin d&#8217;ajouter la règle CSS <code>#search .submit { margin-top: -7px; }</code> au-dessus des deux autres, soit :
<pre>&#35;search .submit { margin-top: -7px; }         //Toutes les versions d'IE
* html #search .submit { margin-top: -10px; } // Surcharge pour IE6 seulement
*+html #search .submit { margin-top: -14px; } // Surcharge pour IE7 seulement</pre></p>

<h2>Mettez vos frameworks CSS à jour</h2>

<p>Les <a href="http://css.4design.tl/choisir-un-frameworks-css">frameworks CSS</a> proposent souvent une feuille de style spécifique à Internet Explorer. Le plus souvent, le <em>hack</em> utilisé pour cibler IE7 est de la forme <code>html&gt;body</code> qui n&#8217;est pas pris en charge par IE6. Or, si l&#8217;on cible les versions &lt;= à IE8, ce <em>hack</em> est obsolète puisqu&#8217;il est compris par IE8. Pour y remédier, j&#8217;utilise <code>*+html</code> qui n&#8217;est compris que par IE7.</p>

<p>Ainsi, dans le fichier <em>ie.css</em> de <a href="http://www.blueprintcss.org/">Blueprint</a>, il sera nécessaire de modifier la ligne <code>html&gt;body p code { <em>white-space: normal; }</code> par <code></em>+html p code { *white-space: normal; }</code> pour éviter que IE8 ne s&#8217;emmêle les pinceaux ;)</p>

<h2>24 hacks CSS à consommer avec modération</h2>

<p>Cette liste de 22 contournements a été compilée par <a href="http://paulirish.com/2009/browser-specific-css-hacks/">Paul Irish</a>. Elle présente le double intérêt de la quasi-exhausitivité et de distinguer les <em>hacks</em> jouant sur les sélecteurs de ceux qui concernent les attributs.</p>

<h2>Hacks sur les sélecteurs</h2>

<ol>
    <li>
<h3>IE6 et inférieurs</h3>
<pre>* html .test  { color: red }</pre>
</li>
    <li>
<h3>IE7</h3>
<pre>*:first-child+html .test { color: red }</pre>
</li>
    <li>
<h3>IE7, Firefox, Safari, Opera</h3>
<pre>html&gt;body .test { color: red }</pre>
</li>
    <li>
<h3>IE8, Firefox, Safari, Opera (Tout sauf IE 6,7)</h3>
<pre>html&gt;/**/body .test { color: red }</pre>
</li>
    <li>
<h3>Opera 9.27 et inférieurs, Safari 2</h3>
<pre>html:first-child .test { color: red }</pre>
</li>
    <li>
<h3>Safari 2 &#8212; 3</h3>
<pre>html[xmlns*=""] body:last-child .test { color: red }</pre>
</li>
    <li>
<h3>safari 3+, Chrome 1+, Opera9+, Firefox 3.5+</h3>
<pre>body:nth-of-type(1) .test { color: red }</pre>
</li>
    <li>
<h3>Safari 3+, Chrome 1+, Opera9+, Firefox 3.5+</h3>
<pre>body:first-of-type .test { color: red }</pre>
</li>
    <li>
<h3>Safaris 3+, Chrome1+</h3>
<pre>   @media screen and (-webkit-min-device-pixel-ratio:0) {
            .test  { color: red }
    }</pre>
</li>
    <li>
<h3>iPhone / Webkit mobile</h3>
<pre>   @media screen and (max-device-width: 480px) {
            .test { color: red }
    }</pre>
</li>
    <li>
<h3>Safari 2 &#8212; 3.1</h3>
<pre>html[xmlns*=""]:root .test  { color: red }</pre>
</li>
    <li>
<h3>Safari 2 &#8212; 3.1, Opera 9.25</h3>
<pre>*|html[xmlns*=""] .test { color: red }</pre>
</li>
    <li>
<h3>Safari &#8212; Chrome</h3>
<pre>.test { [color: #000000; }</pre>
</li>
    <li>
<h3>Tout sauf IE6 &#8212; 8</h3>
<pre>:root *&gt; .test { color: red  }</pre>
</li>
    <li>
<h3>IE7</h3>
<pre>*+html .test { color: red }</pre>
</li>
    <li>
<h3>Uniquement Firefox. 1+</h3>
<pre>.test,  x:-moz-any-link  { color: red }</pre>
</li>
    <li>
<h3>Firefox 3.0+</h3>
<pre>.test,  x:-moz-any-link, x:default  { color: red }</pre>
</li>
</ol>

<h2>Hacks sur les attributs</h2>

<ol>
    <li>
<h3>IE6</h3>
<pre>.test { _color: blue }</pre>
</li>
    <li>
<h3>IE6, IE7</h3>
<pre>.test { *color: blue /* or #color: blue */ }</pre>
</li>
    <li>
<h3>Tout sauf IE6</h3>
<pre>.test { color/**/: blue }</pre>
</li>
    <li>
<h3>IE6, IE7, IE8</h3>
<pre>.test { color: blue\9 }</pre>
</li>
    <li>
<h3>IE7, IE8</h3>
<pre>.test { color/*\**/: blue\9 }</pre>
</li>
    <li>
<h3>IE6, IE7 &#8212; fonctionne comme !important</h3>
<pre>.test { color: blue !ie } /* la chaine après <code>!</code> peut être n'importe quoi */</pre>
</li>
        <li>
<h3>IE8</h3>
<pre>.test { color: #0000FF; }</pre>
</li>
</ol>

<h3 class='related_post_title'>Articles sur le même sujet</h3>

<ul class='related_post'><li><a href='http://css.4design.tl/livre-css-avancees-vers-html5-et-css3' title='Notes de lecture &#8212; Livre CSS avancées, vers HTML5 et CSS3'>Notes de lecture &#8212; Livre CSS avancées, vers HTML5 et CSS3</a></li><li><a href='http://css.4design.tl/le-petit-journal-de-l-integrateur-web-html5-et-css' title='HTML5 et CSS pour l&#039;intégrateur web'>HTML5 et CSS pour l&#039;intégrateur web</a></li><li><a href='http://css.4design.tl/un-seul-fichier-css-pour-cibler-ie6-et-ie7-avec-les-commentaires-conditionnels' title='Un seul fichier CSS pour cibler IE6 et IE7 avec les commentaires conditionnels'>Un seul fichier CSS pour cibler IE6 et IE7 avec les commentaires conditionnels</a></li><li><a href='http://css.4design.tl/nouvelle-methode-de-remplacement-de-texte-par-une-image' title='Nouvelle méthode de remplacement de texte par une image'>Nouvelle méthode de remplacement de texte par une image</a></li><li><a href='http://css.4design.tl/tester-un-site-dans-plusieurs-navigateurs-mais-surtout-dans-ie6-avec-vista' title='Tester un site dans plusieurs navigateurs (mais surtout dans IE6 avec Vista)'>Tester un site dans plusieurs navigateurs (mais surtout dans IE6 avec Vista)</a></li></ul>
 <p><a href="http://css.4design.tl/?flattrss_redirect&amp;id=5631&amp;md5=c7b71daedcbf03b36eb927c7a79a65e3" title="Flattr" target="_blank"><img src="http://css.4design.tl/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://css.4design.tl/une-feuille-de-style-et-des-hacks-css-pour-cibler-ie6-ie7-ou-ie8/feed</wfw:commentRss>
		<slash:comments>10</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=br1o&amp;popout=1&amp;url=http%3A%2F%2Fcss.4design.tl%2Fune-feuille-de-style-et-des-hacks-css-pour-cibler-ie6-ie7-ou-ie8&amp;language=fr_FR&amp;category=text&amp;title=Une+Feuille+de+style+et+des+%C2%AB+hacks+CSS+%C2%BB+pour+cibler+IE6%2C+IE7+ou+IE8&amp;description=Les+hacks+CSS+sont+une+utilisation+peu+conventionnelle+des+s%C3%A9lecteurs+CSS+pour+s%26%238217%3Badresser+%C3%A0+un+ou+plusieurs+navigateurs+quand+on+doit+servir+une+propri%C3%A9t%C3%A9+ou+une+valeur+CSS+sp%C3%A9cifique+%C3%A0...&amp;tags=Commentaires+conditionnels%2CCSS%2CEdito%2CGoogle+Chrome%2CHacks+CSS%2CIE6%2CIE7%2CIE8%2CiPhone%2CNavigateur%2COpera%2CSafari%2CS%C3%A9lecteur%2CTutoriels%2Cblog" type="text/html" />
	</item>
		<item>
		<title>Un seul fichier CSS pour cibler IE6 et IE7 avec les commentaires conditionnels</title>
		<link>http://css.4design.tl/un-seul-fichier-css-pour-cibler-ie6-et-ie7-avec-les-commentaires-conditionnels</link>
		<comments>http://css.4design.tl/un-seul-fichier-css-pour-cibler-ie6-et-ie7-avec-les-commentaires-conditionnels#comments</comments>
		<pubDate>Thu, 17 Apr 2008 15:05:10 +0000</pubDate>
		<dc:creator>Bruno Bichet</dc:creator>
				<category><![CDATA[HTML & CSS]]></category>
		<category><![CDATA[Intégration web]]></category>
		<category><![CDATA[Commentaires conditionnels]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Hacks CSS]]></category>
		<category><![CDATA[IE6]]></category>
		<category><![CDATA[IE7]]></category>
		<category><![CDATA[IE8]]></category>
		<category><![CDATA[Internet Explorer]]></category>

		<guid isPermaLink="false">http://www.css4design.com/?p=309</guid>
		<description><![CDATA[Les hacks CSS, c&#8217;est pas bien ; les commentaires conditionnels, c&#8217;est mieux. Pour autant, je ne vois pas d&#8217;inconvénient à utiliser quelques hacks à l&#8217;intérieur d&#8217;une feuille de style réservée à Internet Explorer à l&#8217;aide des commentaires conditionnels. En effet, pourquoi ajouter une requête inutile en ciblant chaque version de IE quand on peut régler le problème une fois pour toute ? L&#8217;idée, c&#8217;est de ne prévoir qu&#8217;une seule feuille de style pour IE pour placer les déclarations spécifiques aux versions 6 et à 7 : Dans ie.css Pour s&#8217;adresser à IE6 : * html div { blablabla } Et [...]]]></description>
			<content:encoded><![CDATA[<p>Les hacks CSS, c&#8217;est pas bien ; les <a href="http://www.css4design.com/commentaires-conditionnels-d-internet-explorer-vs-hacks-css">commentaires conditionnels</a>, c&#8217;est mieux. Pour autant, je ne vois pas d&#8217;inconvénient à utiliser <a href="http://www.logiste.be/wordpress/2007/12/05/quels-hacks-css-utilisez-vous/">quelques hacks</a> à l&#8217;intérieur d&#8217;une feuille de style réservée à Internet Explorer à l&#8217;aide des commentaires conditionnels. En effet, pourquoi ajouter une requête inutile en ciblant chaque version de <abbr title="Internet Explorer">IE</abbr> quand on peut régler le problème une fois pour toute ?<span id="more-223"></span></p>

<p>L&#8217;idée, c&#8217;est de ne prévoir qu&#8217;une seule feuille de style pour <abbr title="Internet Explorer">IE</abbr> pour placer les déclarations spécifiques aux versions 6 et à 7 :</p>

<h3>Dans ie.css</h3>

<p>Pour s&#8217;adresser à IE6 :
<pre>* html div {
blablabla
}</pre>
Et à IE7 :
<pre>html&gt;body div {
blablabla
}</pre>
IE6 et IE7 étant ciblés naturellement par le commentaire conditionnel suivant :
<pre>&lt;!--[if lt IE 8]&gt;
&lt;link rel="stylesheet" type="text/css" href="ie.css" media="screen" /&gt;
&lt;![endif]--&gt;</pre>
Espérons que IE8 sera bien conforme aux recommandations du W3C !</p>

<p>Idée inspiré par l&#8217;organisation des feuilles de style du framework CSS <a href="http://code.google.com/p/blueprintcss/">Blueprint</a> que j&#8217;ai eu l&#8217;occasion de présenter dans <a href="http://www.css4design.com/frameworks-css-reset-css-design-from-scratch">cette traduction</a>. Sans oublier le billet de <a href="http://www.k1der.net/country/post/2008/03/31/organiser-ses-css/">Country</a> qui a déclenché l&#8217;envie d&#8217;en faire un billet ;)</p>

<p><strong>Note :</strong> Mise à jour de cette technique pour prendre en compte IE8 dans le fichier <em>ie.css</em> et liste des hacks CSS dans l&#8217;article <a rel="bookmark" href="http://css.4design.tl/une-feuille-de-style-et-des-hacks-css-pour-cibler-ie6-ie7-ou-ie8">Une Feuille de style et des « hacks CSS » pour cibler IE6, IE7 ou IE8</a></p>

<h3 class='related_post_title'>Articles sur le même sujet</h3>

<ul class='related_post'><li><a href='http://css.4design.tl/une-feuille-de-style-et-des-hacks-css-pour-cibler-ie6-ie7-ou-ie8' title='Une Feuille de style et des « hacks CSS » pour cibler IE6, IE7 ou IE8'>Une Feuille de style et des « hacks CSS » pour cibler IE6, IE7 ou IE8</a></li><li><a href='http://css.4design.tl/nouvelle-methode-de-remplacement-de-texte-par-une-image' title='Nouvelle méthode de remplacement de texte par une image'>Nouvelle méthode de remplacement de texte par une image</a></li><li><a href='http://css.4design.tl/ajouter-une-classe-css-dans-body-ou-html-pour-internet-explorer-ie6-ie7-ie8-ou-ie9' title='Ajouter une classe CSS dans BODY ou HTML pour Internet Explorer (IE6 &#8212; IE9)'>Ajouter une classe CSS dans BODY ou HTML pour Internet Explorer (IE6 &#8212; IE9)</a></li><li><a href='http://css.4design.tl/le-petit-journal-de-l-integrateur-web-html5-et-css' title='HTML5 et CSS pour l&#039;intégrateur web'>HTML5 et CSS pour l&#039;intégrateur web</a></li><li><a href='http://css.4design.tl/editeur-de-degrades-css3-a-la-mode-de-photoshop' title='Editeur de dégradés CSS3 à la mode de Photoshop'>Editeur de dégradés CSS3 à la mode de Photoshop</a></li></ul>
 <p><a href="http://css.4design.tl/?flattrss_redirect&amp;id=223&amp;md5=ee91cecbb46e46b62b330cda15d1ca5b" title="Flattr" target="_blank"><img src="http://css.4design.tl/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://css.4design.tl/un-seul-fichier-css-pour-cibler-ie6-et-ie7-avec-les-commentaires-conditionnels/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=br1o&amp;popout=1&amp;url=http%3A%2F%2Fcss.4design.tl%2Fun-seul-fichier-css-pour-cibler-ie6-et-ie7-avec-les-commentaires-conditionnels&amp;language=fr_FR&amp;category=text&amp;title=Un+seul+fichier+CSS+pour+cibler+IE6+et+IE7+avec+les+commentaires+conditionnels&amp;description=Les+hacks+CSS%2C+c%26%238217%3Best+pas+bien+%3B+les+commentaires+conditionnels%2C+c%26%238217%3Best+mieux.+Pour+autant%2C+je+ne+vois+pas+d%26%238217%3Binconv%C3%A9nient+%C3%A0+utiliser+quelques+hacks+%C3%A0+l%26%238217%3Bint%C3%A9rieur+d%26%238217%3Bune+feuille+de+style+r%C3%A9serv%C3%A9e...&amp;tags=Commentaires+conditionnels%2CCSS%2CHacks+CSS%2CIE6%2CIE7%2CIE8%2CInternet+Explorer%2Cblog" type="text/html" />
	</item>
		<item>
		<title>L&#039;expérience utilisateur et l&#039;ergonomie des sites web</title>
		<link>http://css.4design.tl/l-experience-utilisateur-au-centre-de-l-ergonomie-des-sites-web</link>
		<comments>http://css.4design.tl/l-experience-utilisateur-au-centre-de-l-ergonomie-des-sites-web#comments</comments>
		<pubDate>Sun, 08 Apr 2007 00:29:12 +0000</pubDate>
		<dc:creator>Bruno Bichet</dc:creator>
				<category><![CDATA[Ergonomie & Accessibilité]]></category>
		<category><![CDATA[Traductions]]></category>
		<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Commentaires conditionnels]]></category>
		<category><![CDATA[Conception de site web]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Ergonomie]]></category>
		<category><![CDATA[Hacks CSS]]></category>
		<category><![CDATA[Hover]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Standards web]]></category>
		<category><![CDATA[Web 2.0]]></category>

		<guid isPermaLink="false">http://www.css4design.com/blog-reloaded/?p=74</guid>
		<description><![CDATA[Pour faire bonne impression sur les visiteurs, il suffit d&#8217;anticiper leurs besoins. Dans ce domaine, ce sont souvent les détails qui comptent le plus. Améliorer l&#8217;expérience utilisateur et adapter les fonctionnalités d&#8217;un site web en fonction des attentes de chacun permet de satisfaire : ceux qui veulent consulter un site web ergonomique offrant un contenu facilement accessible ; ceux qui veulent un design attractif ; et enfin, ceux qui veulent le grand jeu avec Ajax à tous les étages. Ce billet est ma traduction du dernier article d&#8217;Aaron Gustafson Ruining the user experience paru sur A List Apart le 27 [...]]]></description>
			<content:encoded><![CDATA[<p><img src="/images/billet/ruining/ruining-user-experience.png" class="il" alt="Ruiner l'expérience utitilisateur ? Quelle idée ^^" /> Pour faire  <em>bonne impression</em> sur les visiteurs, il suffit d&#8217;anticiper leurs besoins. Dans ce domaine, ce sont souvent les détails qui comptent le plus. Améliorer l&#8217;<em>expérience utilisateur</em> et adapter les fonctionnalités d&#8217;un site web en fonction des attentes de chacun permet de satisfaire : ceux qui veulent consulter un site web ergonomique offrant un contenu  facilement accessible ; ceux qui veulent un design attractif ; et enfin, ceux qui veulent le grand jeu avec <em>Ajax</em> à tous les étages. Ce billet est ma traduction du dernier article d&#8217;Aaron Gustafson  <a href="http://www.alistapart.com/articles/ruininguserexperience/" title="Ruining the User Experience">Ruining the user experience</a> paru sur <em>A List Apart</em> le 27 mars dernier.<span id="more-83"></span></p>

<h2>Ruiner l&#8217;expérience utilisateur</h2>

<p>Pendant un récent voyage d&#8217;affaire à <em>Seattle</em>, j&#8217;ai passé deux soirées à déguster la cuisine locale. Je me suis régalé à chaque repas, mais je garde de l&#8217;un deux un souvenir bien plus marqué. Mais pourquoi ?</p>

<p>Les deux restaurants présentaient de nombreux points communs : les plats étaient alléchants et présentés avec goût ; l&#8217;atmosphère était sympathique et chaleureuse ; les menus offraient un large choix de plats tout deux à un prix raisonnable, et le personnel était aux petits soins. Alors qu&#8217;est-ce qui fait que le second restaurant m&#8217;a laissé un bien meilleur souvenir que le premier ?</p>

<p>Comme souvent dans la vie, ce sont les détails qui comptent le plus. Prenez un verre d&#8217;eau, par exemple. Un serveur négligent peut le servir glacé, ou pire encore, vous laisser mourir de soif avant de vous resservir. Alors qu&#8217;un serveur bienveillant s&#8217;assurera que le niveau de l&#8217;eau ne descendra jamais plus bas que la moitié du verre ; les meilleurs vous feront la surprise de trouver le verre que vous venez de finir, rempli à ras bord une nouvelle fois.</p>

<p>Pour nous les ergonomes du web, Il y a beaucoup à apprendre d&#8217;une chose aussi simple qu&#8217;un verre d&#8217;eau.</p>

<h3>Qui est le client ?</h3>

<p>Quand vous êtes serveur dans un restaurant, vous savez que les gens viennent avec certains besoins et, parfois même, avec quelques attentes. Souvent, le verre d&#8217;eau est le &laquo;&nbsp;premier contact&nbsp;&raquo; avec le client. S&#8217;il est rempli rapidement, vous marquez un point, mais ce n&#8217;est que le début. En effet, certaines personnes boivent plus vite que d&#8217;autres et demandent à être resservies plus souvent. Certains clients ne boiront pas avant d&#8217;avoir les plats devant eux. D&#8217;autres encore ne toucheront pas à leur bouteille d&#8217;eau&#8230; ou demanderont peut-être un peu de thé glacé, ou encore autre chose. Au départ, vous ne pouvez vraiment pas savoir à qui vous avez à faire. Et lorsqu&#8217;il s&#8217;agit d&#8217;une table de 4, 6 ou même 10 personnes il vaut mieux s&#8217;être préparé à l&#8217;avance&#8230;</p>

<p>Sur le web, c&#8217;est la même chose. Nous faisons de beaux sites qui (nous l&#8217;espérons) font une excellente première impression, mais nous devons nous assurer que chaque point d&#8217;interactivité renforce cet avis favorable tout au long de la navigation, sinon nous risquons de dilapider le peu de crédit acquis au départ. Ce type de pensée à donné naissance au concept d&#8217;<a href="http://en.wikipedia.org/wiki/Progressive_enhancement" title="amélioration progressive.">amélioration progressive</a></p>

<p>Sur le web, nous ne savons rien à propos de la personne qui vient visiter notre site. Nous ne connaissons pas le navigateur utilisé. Nous ignorons si le serveur est interrogé depuis un téléphone portable. Nous ne savons pas si le clavier est préféré à la souris. Nous ne savons pas si Javascript (ou même CSS) est activé. Nous ne savons pas si la page doit être imprimée. Nous ne savons pas si l&#8217;utilisateur consulte le site à l&#8217;aide d&#8217;un lecteur d&#8217;écran. Nous ne savons vraiment rien&#8230;</p>

<p>Alors, que fait-on quand on ne sait rien ? On an-ti-ci-pe.</p>

<p>En tant que développeurs, nous devons pouvoir satisfaire les besoins de nos clients. Et si nous sommes assez pointus, nous pouvons régler leurs problèmes sans qu&#8217;ils ne se rendent compte de notre intervention.</p>

<h3>Une  douche froide ?</h3>

<p><a href="http://lala.com/" title="Lala.com">Lala.com</a> est un site bâti autour d&#8217;une communauté de gens qui aiment la musique. Le système facilite l&#8217;échange de <abbr title="Compact Disc">CD</abbr> dans toute la communauté par la poste.</p>

<p>Je ne dirais pas que leur <a href="http://www.alistapart.com/d/ruininguserexperience/lala-home.png" title="Figure 1-1. Lala homepage." rel="splash.image|lala">site web</a> est attractif, mais il est utilisable&#8230; sauf si Javascript est <a href="http://www.alistapart.com/d/ruininguserexperience/lala-home-no-js-old.png" title="Figure 1-2. Lala sans JavaScript, circa July 2006." rel="splash.image|lala">désactivé</a>.</p>

<p>Vous apprécierez le fait qu&#8217;il y a un message indiquant un <em>Chargement en cours</em> alors que rien ne se charge.</p>

<p>Pour régler le problème (la copie d&#8217;écran ci-dessus a été prise entre le moment où j&#8217;ai commencé à me servir du site comme exemple de ce qu&#8217;il ne fallait <strong>pas</strong> faire et la finalisation de l&#8217;article), tout ce qu&#8217;ils ont été capable de faire, c&#8217;est de ressortir ce <a href="http://www.alistapart.com/d/ruininguserexperience/no-js-message.png" title="Figure 1-3. Lala brings back fond memories." rel="splash.image|lala">vieux message</a> au parfum entêtant datant de la dernière guerre des navigateurs.</p>

<p>Le problème ici n&#8217;est pas que le site utilise Javascript, mais qu&#8217;il ne fonctionne pas sans. La raison ? Et bien, apparemment, les concepteurs se font plaisir en  <em>Ajax-isant</em> tout le contenu. Dans leur précipitation, ils ont entassés tous les trucs du <em>web 2.0</em> sous le capot et se sont aliénés une bonne partie des utilisateurs du <em>web 1.0</em>, et une part importante du marché des appareils mobiles. Et <a href="http://www.google.com/search?q=must+have+JavaScript+enabled&amp;start=0">ils ne sont pas les seuls</a>.</p>

<p>Pensez à ceci : vous êtes un utilisateur de Lala.com, vous êtes proche d&#8217;un magasin de disque et vous vous arrêtez sur l&#8217;album des <em>Fatals Picards</em> ["Arcade Fire" dans la version originale, NdT]. Vous n&#8217;avez pas réalisé qu&#8217;il était sorti et voulez l&#8217;ajouter à votre liste de souhaits avant de l&#8217;oublier. Si votre téléphone mobile ne supporte pas Javascript (ou si vous l&#8217;avez désactivé pour réduire le temps/coût de chargement), vous allez vous retrouver devant un écran qui vous donne des <a href="http://www.alistapart.com/d/ruininguserexperience/lala-mobile.png" title="Figure 1-4. Lala a-no-go." rel="splash.image|lala">informations pertinentes</a> sur Lala, suivies malheureusement du message indiquant que Javascript est nécessaire pour utiliser le site.</p>

<p>Vous ne pouvez pas accéder à votre liste de souhaits ou à quoi que ça soit d&#8217;autre, d&#8217;ailleurs. Même le champs de recherche (en bas de la page) ne fonctionne pas. Pour une application de type intranet, cela peut être acceptable, mais pour un site web grand public, c&#8217;est un désastre.</p>

<h3>Réfléchissez avant de servir</h3>

<p>Nous avons déjà établi qu&#8217;en tant que développeur web nous sommes généralement dans le brouillard quant aux desiderata de nos utilisateurs. Le mieux que nous puissions faire est d&#8217;anticiper ce que pourrait être leurs besoins et s&#8217;assurer qu&#8217;ils sont pris en compte à tout les niveaux pour apporter la meilleure expérience possible. C&#8217;est là que l&#8217;amélioration progressive entre en scène. Nous devons penser aux besoins des différents types d&#8217;utilisateurs et leur apporter une réponse.</p>

<ol>
    <li>
<h4>Niveau 1 : pas de fioriture</h4>
Certains utilisateurs veulent seulement accéder au contenu. Ils peuvent surfer depuis un appareil mobile, chercher à imprimer quelques informations, ou utiliser toutes sortes de périphériques d&#8217;assistance pour naviguer. Ils peuvent même avoir désactivé l&#8217;affichage des images. En gardant un marquage propre et bien-ordonné et en respectant la sémantique associée aux balises HTML, vous répondrez aux besoins de ces utilisateurs qui veulent consommer léger et afficher les pages rapidement, sans chichi.</li>
    <li>
<h4>Niveau 2 : faites joli</h4>
D&#8217;autres, aiment les belles vitrines (ou une tranche de citron). Pour eux, concevez un design graphique visuellement attractif. Vous pouvez même ajouter quelques fioritures visuelles (ou un peu de Flash) et ils seront contents. Aussi longtemps qu&#8217;il n&#8217;y a pas de confusion entre les éléments de décoration et le contenu de la page, que vous avez réalisé tout vos tests sur les navigateurs (ou que vous fournissez quelques styles basiques pour les médias alternatifs), ça devrait le faire.</li>
    <li>
<h4>Niveau 3 :  c&#8217;est la fête !</h4>
D&#8217;autres encore, veulent le grand jeu. Pour ceux-là, vous pouvez faire sauter le bouchon et créer une merveilleuse application web 2.0 avec fondu-enchainé, <em>widget</em> en veux-tu en-voilà, et Ajax en abondance.

Gardez toutefois à l&#8217;esprit, que ces niveaux ne sont pas toujours aussi clairement identifiables. Un palier intermédiaire entre les niveaux 1 et 2 sera peut-être nécessaire pour donner à <em>Netscape 4.x</em> et <em>IE5/Mac</em> quelques styles typographiques spécifiques. Ou vous pouvez avoir envie d&#8217;offrir des raffinements Javascript selon les navigateurs, ou encore injecter un peu de <em>crème au nougat</em> entre les niveaux 2 et 3&#8230;</li>
</ol>

<h3>Passer inaperçu</h3>

<p>Une fois que vous avez décidé des niveaux à prendre en compte, vous pouvez construire votre site.</p>

<p>Commencez par le contenu. Quelquefois, les webdesigners et les développeurs oublient que les gens viennent surtout pour ça. Travaillez-le avec amour sans noyer vos visiteurs sous les informations. N&#8217;empilez pas les blocs comme pour un buffet. La production du contenu demande toujours beaucoup de travail. Mettez-le en valeur.</p>

<p>Lorsque le  contenu est balisé, il est temps d&#8217;établir le <em>look and feel</em> du site. Concevez un design adapté à vos utilisateurs en utilisant pour chaque niveau les différentes techniques à votre disposition : cachez certains fichiers CSS aux navigateurs les plus anciens et donnez des styles spécifiques à ceux qui demandent un peu plus d&#8217;attention. Les <a href="http://msdn.microsoft.com/workshop/author/dhtml/overview/ccomment_ovw.asp" title="Les commentaires conditionnels">commentaires conditionnels</a> sont réellement <a href="http://www.brucelawson.co.uk/index.php/2005/future-proof-your-css-with-conditional-comments/" title="Donnez un futur à vos CSS avec les commentaires conditionnels">vos amis pour la vie</a> en la matière. Mais n&#8217;oubliez pas les vieilles recettes comme les <a href="http://www.ericmeyeroncss.com/bonus/trick-hide.html" title="hacks CSS pour cacher des règles à certains navigateurs">règles @import et les combinaisons pour les médias spécifiques</a> qui permettent d&#8217;offrir sélectivement un parfum différent pour les navigateurs collés au radiateur du fond de la classe.</p>

<p>Vérifiez la présentation de votre contenu à l&#8217;impression et son affichage sur les périphériques mobiles. A ce propos, envisagez-vous une mise en pages spécifique ou seulement un traitement basique en terme de couleur ou de typographie ? Quel sort réservez-vous aux images et aux formulaires ? Essayez d&#8217;anticiper les fonctionnalités qu&#8217;un utilisateur mobile voudrait, et ôtez le superflu ! Si vous utilisez la <em>pseudo-classe</em> :hover sur un lien, n&#8217;oubliez pas de considérer également la <em>pseudo-classe</em> :focus, et les utilisateurs de claviers ou d&#8217;appareils mobiles vous remercieront.</p>

<p>Lorsque le design est validé, ajoutez quelques étincelles avec une pincée de Javascript non-intrusif. Vous connaissez déjà les méthodes de détection pour savoir si un script peut fonctionner sur tel navigateur ? Considérez aussi comment <a href="http://sourcelabs.com/ajb/archives/2005/05/ajax_mistakes.html" title="Erreurs communes avec Ajax">vos scripts peuvent interférer avec les interactions communes aux navigateurs telles que &laquo;&nbsp;bookmarker&nbsp;&raquo; un lien ou utiliser le bouton retour</a>. Et n&#8217;oubliez pas l&#8217;interdépendance qui peut exister entre des scripts différents : votre site deviendrait-il inutilisable si un script fonctionnait et pas un autre ?</p>

<p>Si vous créez un <em>widget</em> ou autre interface de contrôle, générez le marquage additionnel quand avez déterminé qu&#8217;il  est prêt à être utilisé, et que tout le reste fonctionne encore. Et si vous <a href="http://www.quirksmode.org/archives/2005/07/benchmark_tests.html">séparez les CSS liées à votre widget de votre code Javascript</a> comme un <em>bon petit soldat des standards</em>, assurez-vous que les styles ne sont pas actifs tant que le script n&#8217;a pas indiqué que le <em>widget</em> peut être utilisé. Une <em>bonne pratique</em> est d&#8217;utiliser l&#8217;échange de classe (cf. Table 1) :</p>

<table style="border-bottom: 3px solid #b2b2b2;margin: 0pt 0pt 2em;text-align: left" summary="Exemples d'échange de classes CSS appliquées aux widgets">
<thead>
<th scope="col">Widget</th>
<th scope="col">Au repos</th>
<th scope="col">Activé</th>
</tr>
<tr>
<th scope="row">Navigation par onglets</th>
<td style="border-style: solid;border-color: #cccccc;border-width: 0pt 0pt 1px 1px;padding: 0.5em 1em"><code>.onglet</code></td>
<td style="border-style: solid;border-color: #cccccc;border-width: 0pt 0pt 1px 1px;padding: 0.5em 1em"><code>.onglet-on</code></td>
</tr>
<tr>
<th scope="row">Formulaire à soumission automatique</th>
<td style="border-style: solid;border-color: #cccccc;border-width: 0pt 0pt 1px 1px;padding: 0.5em 1em"><code>.auto-submit</code></td>
<td style="border-style: solid;border-color: #cccccc;border-width: 0pt 0pt 1px 1px;padding: 0.5em 1em"><code>.auto-submit.actif</code></td>
</tr>
</table>

<p>Au final, si vous envisagez d&#8217;utiliser <em>Ajax</em>, faites-le avec discernement : il n&#8217;est pas nécessaire de charger l&#8217;ensemble de la page via des appels asynchrones qui finissent par devenir une barrière entre l&#8217;utilisateur et votre contenu. Paradoxalement, cela peut entraîner une <a href="http://www.devwebsphere.com/devwebsphere/2006/04/the_hidden_cost.html" title="Augmentation de la charge serveur : les coûts cachés">augmentation de la charge serveur</a>, rendre votre <a href="http://searchenginewatch.com/showPage.html?page=sew_print&amp;id=3624222" title="Ajax et les moteurs de recherche">contenu invisible pour les moteurs de recherche</a>, et rendre votre site <a href="http://www.sitepoint.com/article/ajax-screenreaders-work" title="Ajax et les lecteurs d'écran">inutilisable pour quiconque utilise un lecteur d&#8217;écran</a> ou un mobile.</p>

<p>Ne me faites pas dire ce que je n&#8217;ai pas dit, <em>Ajax</em> a sa place, mais il est important de savoir laquelle, et plus encore, de savoir où elle n&#8217;est pas.</p>

<h3>Conclusion</h3>

<p>Anticipez les besoins de l&#8217;utilisateur avec précaution et occupez-vous d&#8217;eux en vous faisant remarquer le moins possible. C&#8217;est la clé pour laisser une première bonne impression. Comme avec un verre d&#8217;eau, vos utilisateurs ne devraient jamais avoir à réclamer pour être servi.</p>

<h4>Crédits et remerciements</h4>

<p>Traduit avec la permission de <a href="http://www.alistapart.com/" title="A List Apart Magazine">A List Apart Magazine</a> et de l&#8217;auteur.</p>

<p><em>Malgré tout le soin apporté à cette traduction, il est possible que des erreurs préjudiciables à la pensée de l&#8217;auteur se soient glissées : je vous conseille vivement de lire l&#8217;article original. Profitez-en pour me signalez les erreurs ou les contresens, ou tout simplement les améliorations que vous jugez utiles pour coller au plus près de l&#8217;article. <del>D&#8217;ailleurs, ce billet reste en version bêta quelques temps ;)</del></em></p>

<p><em>Merci à <a href="http://absolutvero.over-blog.com/">Véro</a> pour son coup de main quand j&#8217;étais &laquo;&nbsp;Lost in translation&nbsp;&raquo; ;) </em></p>

<p><em><strong>Note du 24/05/07 : </strong>Merci à <a href="http://blog.userland.fr/">Goulven</a> pour sa relecture et les améliorations qu&#8217;il a apportées à cette traduction.</em></p>

<p>PS : d&#8217;autres traductions d&#8217;articles sur les sujets du web sont disponibles dans la catégorie <a href="http://www.css4design.com/articles/traductions">Traductions</a>.</p>

<h3 class='related_post_title'>Articles sur le même sujet</h3>

<ul class='related_post'><li><a href='http://css.4design.tl/framework-jquery-pour-ecrire-du-javascript-non-intrusif' title='Framework JQuery pour écrire du Javascript non-intrusif'>Framework JQuery pour écrire du Javascript non-intrusif</a></li><li><a href='http://css.4design.tl/css-naked-day-copaing-lyon-blog-css2-pratique-du-design-web' title='CSS Naked Day + Copaing + Lyon Blog + CSS2 Pratique&#8230;'>CSS Naked Day + Copaing + Lyon Blog + CSS2 Pratique&#8230;</a></li><li><a href='http://css.4design.tl/quelques-notes-sur-xhtml-et-css-au-fil-de-l-eau' title='Quelques notes sur XHTML et CSS, au fil de l&#039;eau&#8230;'>Quelques notes sur XHTML et CSS, au fil de l&#039;eau&#8230;</a></li><li><a href='http://css.4design.tl/css-toolbox' title='Trucs et astuces CSS'>Trucs et astuces CSS</a></li><li><a href='http://css.4design.tl/le-petit-journal-du-web-les-fruits-de-la-veille-ont-garde-leur-fraicheur' title='Le petit journal du web &#8212; Les fruits de la veille ont gardé toute leur fraicheur'>Le petit journal du web &#8212; Les fruits de la veille ont gardé toute leur fraicheur</a></li></ul>
 <p><a href="http://css.4design.tl/?flattrss_redirect&amp;id=83&amp;md5=18cc9cbe0d6e957ac89198fa4f231be7" title="Flattr" target="_blank"><img src="http://css.4design.tl/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://css.4design.tl/l-experience-utilisateur-au-centre-de-l-ergonomie-des-sites-web/feed</wfw:commentRss>
		<slash:comments>14</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=br1o&amp;popout=1&amp;url=http%3A%2F%2Fcss.4design.tl%2Fl-experience-utilisateur-au-centre-de-l-ergonomie-des-sites-web&amp;language=fr_FR&amp;category=text&amp;title=L%26%23039%3Bexp%C3%A9rience+utilisateur+et+l%26%23039%3Bergonomie+des+sites+web&amp;description=Pour+faire+bonne+impression+sur+les+visiteurs%2C+il+suffit+d%26%238217%3Banticiper+leurs+besoins.+Dans+ce+domaine%2C+ce+sont+souvent+les+d%C3%A9tails+qui+comptent+le+plus.+Am%C3%A9liorer+l%26%238217%3Bexp%C3%A9rience+utilisateur+et+adapter+les...&amp;tags=Ajax%2CCommentaires+conditionnels%2CConception+de+site+web%2CCSS%2CErgonomie%2CHacks+CSS%2CHover%2CJavascript%2CStandards+web%2CWeb+2.0%2Cblog" type="text/html" />
	</item>
		<item>
		<title>Quelques notes sur XHTML et CSS, au fil de l&#039;eau&#8230;</title>
		<link>http://css.4design.tl/quelques-notes-sur-xhtml-et-css-au-fil-de-l-eau</link>
		<comments>http://css.4design.tl/quelques-notes-sur-xhtml-et-css-au-fil-de-l-eau#comments</comments>
		<pubDate>Thu, 12 Oct 2006 02:00:50 +0000</pubDate>
		<dc:creator>Bruno Bichet</dc:creator>
				<category><![CDATA[HTML & CSS]]></category>
		<category><![CDATA[Background]]></category>
		<category><![CDATA[Colonnes]]></category>
		<category><![CDATA[Commentaires conditionnels]]></category>
		<category><![CDATA[Conception de site web]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Design élastique]]></category>
		<category><![CDATA[Design liquide]]></category>
		<category><![CDATA[Footer]]></category>
		<category><![CDATA[Formulaire]]></category>
		<category><![CDATA[Hacks CSS]]></category>
		<category><![CDATA[Header]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Internet Explorer]]></category>
		<category><![CDATA[Loupanthère]]></category>
		<category><![CDATA[Partenaires]]></category>
		<category><![CDATA[XHTML]]></category>

		<guid isPermaLink="false">http://www.css4design.com/blog-reloaded/?p=43</guid>
		<description><![CDATA[Le quotidien de l&#8217;intégrateur XHTML et CSS est parfois ponctué de vide téléologique concernant les bonnes balises à utiliser en fonction du type de contenu. J&#8217;ai longtemps cherché à produire un document-type pouvant servir à n&#8217;importe quelle commande. Hélas ! Chaque projet demande des réponses graphiques et structurelles ajustées. Néanmoins, je ne résiste pas au plaisir de partager avec vous, à l&#8217;occasion du 100ème jour depuis la mise en ligne de css4design, une sorte de medley mashup de quelques thèmes liés à l&#8217;intégration web. Restez vigilant : malgré toute l&#8217;attention apportée à la rédaction de ce billet, il reste encore [...]]]></description>
			<content:encoded><![CDATA[<p><img class="il" src="/images/billet/notes-xhtml-css.png" alt="" /> Le quotidien de l&#8217;intégrateur <abbr title="eXtensible HyperText Markup Language">XHTML</abbr> et <abbr title="Cascading Style Sheet">CSS</abbr> est parfois ponctué de vide <em>téléologique</em> concernant les bonnes balises à utiliser en fonction du type de contenu. J&#8217;ai longtemps cherché à produire un document-type pouvant servir à n&#8217;importe quelle commande. Hélas ! Chaque projet demande des réponses graphiques et structurelles ajustées. Néanmoins, je ne résiste pas au plaisir de partager avec vous, à l&#8217;occasion du 100<sup>ème</sup> jour depuis la mise en ligne de css4design, une sorte de <del>medley</del> <em>mashup</em> de quelques thèmes liés à l&#8217;intégration web. Restez vigilant : malgré toute l&#8217;attention apportée à la rédaction de ce billet, il reste encore des traces d&#8217;humour sous le tapis de souris.<span id="more-53"></span></p>

<p>&#8230; ou comment sortir « téléologique<sup><a href="http://francois.gannaz.free.fr/Littre/xmlittre.php?requete=t%E9l%E9ologique">1</a></sup> » du même chapô que « mashup<sup><a href="http://fr.wikipedia.org/wiki/Application_composite">2</a></sup> »</p>

<h2>Le design : centré, fixe, liquide&#8230;</h2>

<p>C&#8217;est sur ces contraintes de structure mettant en jeu les balises XHTML que je voudrais m&#8217;attarder un peu en votre compagnie. Notre mise en pages doit-elle être de largeur fixe, ou variable ? Centrée, ou pas ? Il m&#8217;est difficile de choisir à votre place, mais en ce moment <a href="http://www.webdesignertrends.com/2010/03/tendance-du-webdesign-minimalisme/">la tendance</a> est de présenter des pages minimalistes de largeur fixe, centrées dans le navigateur.</p>

<p>Dans l&#8217;échantillon de code qui suit, on crée un <em>container</em> d&#8217;une largeur de 750 pixels, centré horizontalement grâce au raccourci margin: 0 auto. Ainsi, tout le contenu placé dans la balise identifiée par #container sera centré dans la page.
<pre>html, body {
     margin: 0;
     padding: 0;
     text-align: center;
}
&#35;container {
     position: relative;
     width: 750px;
     margin: 0 auto;
     text-align: left;
}</pre>
La position: relative n&#8217;est pas indispensable pour le centrage, mais permet d&#8217;initialiser les valeurs top et left à partir du point situé en haut et à gauche de notre <em>container</em>, et non plus à partir du coin supérieur gauche de la fenêtre du navigateur, comme c&#8217;est le cas par défaut, avec bien sûr, des différences entre les navigateurs.</p>

<p>C&#8217;est pourquoi, il est judicieux de mettre le padding et le margin des balises html et body à zéro. Par ailleurs, IE5 ayant du mal avec margin: 0 auto, on prendra soin de centrer l&#8217;ensemble du document avec text-align: center, et ensuite d&#8217;expliciter la valeur d&#8217;alignement du texte par défaut dans le <em>container</em>.</p>

<p><strong>MAJ :</strong> Pour la remise à zéro des style par défaut des balises HTML, je vous invite à lire <a title="Lien permanent vers 5 Reset CSS à la loupe pour une remise à zéro des valeurs par défaut des navigateurs" rel="bookmark" href="/5-reset-css-a-la-loupe-pour-une-remise-a-zero-des-valeurs-par-defaut-des-navigateurs">5 Resets CSS à la loupe pour une remise à zéro des valeurs par défaut des navigateurs</a> pour en savoir plus.</p>

<p>Dans la plupart ces cas, le choix d&#8217;un design à largeur fixe permet de mieux contrôler le nombre de mots par ligne pour offrir une lecture confortable (qu&#8217;on trouve raremment dans les pages où le texte s&#8217;étire d&#8217;un bout à l&#8217;autre de la fenêtre du navigateur&#8230;). A condition toutefois de permettre l&#8217;agrandissement de la taille du texte, en utilisant des unités relatives em, ex ou %, à la place des px qu&#8217;IE ne sait pas agrandir&#8230;</p>

<p>Dans d&#8217;autres cas, ce choix est dicté par les difficultés liées à la conception d&#8217;un design liquide (ou fluide) comportant des visuels en haut, en bas, sur les côtés et dans les coins ! En effet, si la réalisation d&#8217;un design composé d&#8217;images qui se répètent verticalement est aisée, ce n&#8217;est pas toujours le cas lorsqu&#8217;on veut que la mise en pages s&#8217;adapte horizontalement <strong>et</strong> verticalement à la taille de la fenêtre (cf. mon billet «<a href="http://css.4design.tl/design-css-fixe-elastique-ou-liquide">Design CSS : fixe, élastique ou liquide ?</a>» pour plus d&#8217;information sur la question).</p>

<h2>Une page web toute simple</h2>

<p>La structure que l&#8217;on rencontre le plus souvent sur le web est composée d&#8217;un titre h1 suivi des différents niveaux de sous-titre h2, h3&#8230; le tout, agrémenté de texte p et d&#8217;image img. Notez que pour les images, on peut mettre la balise img dans la même balise p que le texte, ou dans sa propre balise p. On divisera ensuite (en fonction de la nature du contenu) le document en plusieurs parties avec les balises div dont c&#8217;est précisément la fonction.</p>

<p>Si l&#8217;on ajoute la gestion des colonnes, on obtient une structure qui ressemble à la plupart des pages que l&#8217;on trouve à portée de clic ; les différences étant souvent le fruit d&#8217;un travail sur l&#8217;identité visuelle et du soin apporté à la réalisation-intégration des divers éléments composant la page.</p>

<p><strong>MAJ :</strong> Lire <a href="Conception dans le navigateur avec HTML5 &amp; CSS3 (amélioration progressive)">Conception dans le navigateur avec HTML5 &amp; CSS3</a> sur le marquage structurel d&#8217;une page web avec <a href="http://css.4design.tl/tag/html5">HTML5</a>.</p>

<h3>Des colonnes avec float</h3>

<p>Pour en revenir aux colonnes, la propriété float, associée aux valeurs right ou left, donnera rapidement forme à votre document, à condition de ne pas oublier le clear: right, left ou both pour ajouter un élément de type <em>pied de page</em> que nous voudrons voir, comme son nom l&#8217;indique, à la fin de notre page, et ce, quelque soit la hauteur des contenus respectifs de nos deux colonnes !</p>

<p>C&#8217;est vrai qu&#8217;<em>Internet Explorer</em> n&#8217;a pas toujours besoin que l&#8217;on explicite un clear après un float, contrairement aux navigateurs respectant les spécifications du <a title="World Wide Web Consortium" href="http://www.w3.org/">W3C</a> comme <a href="http://www.mozilla-europe.org/fr/firefox/">Firefox</a> ou <a href="http://www.opera.com/">Opera</a>. L&#8217;esprit humain non plus, puisqu&#8217;il faut souvent passer de <del>bons</del> longs moments avec <a href="http://www.yoyodesign.org/doc/w3c/css2/visuren.html#floats">les spécifications</a> pour s&#8217;en convaincre. Quoiqu&#8217;il en soit, souvenez-vous que si votre div est placée correctement dans un navigateur et pas dans l&#8217;autre, c&#8217;est souvent la faute à float ;)</p>

<h4>Manipulez, il en restera toujours quelque chose</h4>

<p>Pour mieux observer ce phénonème, je vous propose quelques manipulations à faire chez vous sur un exemple de <a href="http://css.4design.tl/exemples/positionnement-css-float/">positionnement avec float</a>. Tout est précisé dans le code source, mais pour les <em>jedi</em>, un résumé devrait suffire :</p>

<ol>
    <li> Dans #container, enlevez les commentaires autour de width: 900px;, réaffichez cette page dans IE6 et FF et observez le déplacement du <em>footer</em> dans FF.</li>
    <li> Puis, dans #footer, enlevez délicatement les commentaires autour de clear: both, et réaffichez cette page dans IE6 et FF. Que s&#8217;est-il passé avec le <em>footer</em> ?</li>
    <li> Pour terminer, remettez tout comme au début, et ajoutez du texte dans la <em>sidebar</em>. Que se passe-t-il ? Que faut-il faire ?</li>
</ol>

<p>Tant que nous somme dans la float, et les colonnes, j&#8217;en profite pour vous proposer un autre exemple de mise en page sur <a href="http://css.4design.tl/design-css-1-en-tete-2-colonnes-1-pied-de-page-fixe-ou-liquide">une ou deux colonnes</a>.</p>

<h3>Pour la boite, vous prendrez quel modèle ?</h3>

<p>Dès que l&#8217;on applique une largeur à un élément de type block, on prend le risque de tomber dans le maelström des différents modes de calcul concernant le <a href="http://www.pompage.net/pompe/cssdezero-7/">modèle de boite</a> : Internet Explorer a une façon bien à lui de mettre border, padding  et zone de contenu dans le même sac, contrairement au modèle standard qui dissocie bien chaque élément dans le calcul final de la boite.<em></em></p>

<p><em>Grosso modo</em>, un bloc de 250px de large avec un padding de 20px et un border de 5px donneront 250 + 20 + 20 + 5 + 5 = 300 pixels dans le modèle standard, tandis que cette valeur sera ramenée à 250 pixels sur <abbr title="Internet Explorer">IE</abbr>, puisque la bordure et la marge intérieure seront assimilés à la zone de contenu :(</p>

<p><span class="small"><strong>Ok, quelques mots sur le DocType switching&#8230;</strong> Ou comment forcer l&#8217;une ou l&#8217;autre interprétation des dimensions du modèle de boite. Pour résumer la fin de l&#8217;article d&#8217;Openweb cité plus haut, la plupart des navigateurs modernes (si si, même IE6) basculeront dans le modèle de boite standard si une <abbr title="Déclaration de Type de Document">DTD</abbr> XHTML (<em>strict</em>, <em>transitional</em> ou <em>frameset</em>) est spécifiée dans l&#8217;en-tête de la page. Sauf pour IE6 (faut pas trop rêver non plus&#8230;) qui rebascule dans son modèle de boite propriétaire dès qu&#8217;il voit le méchant prologue <abbr title="eXtensible Markup Language">XML</abbr>&#8230;</span></p>

<p>Il existe de nombreux <a href="http://tantek.com/CSS/Examples/boxmodelhack.html">contournements (hacks)</a> plus ou moins <em>funky</em> pour régler ce problème de compatibilité des modèles de boite. Pour ma part, je m&#8217;en tiens à une ligne de conduite simple : j&#8217;applique le padding aux éléments enfants du bloc qui possède une propriété width. Lorsque celà n&#8217;est pas possible, je spécifie une feuille de style pour IE en utilisant les <a href="http://css.4design.tl/commentaires-conditionnels-d-internet-explorer-vs-hacks-css">commentaires conditionnels</a>.</p>

<p>Si votre page contient des formulaires, je vous invite à lire ce billet sur la conception de <a href="http://css.4design.tl/design-de-formulaire-html-avec-css">formulaires sans tableau</a> qui a gardé toute sa fraicheur ;) Souvenons-nous toutefois de <a href="http://blog.barbayellow.com/2006/06/26/mon-formulaire-il-est-moche-et-c-est-fait-expres/">ne pas troubler l&#8217;utilisateur</a> avec des formulaires trop <em>funkydéliques</em>. L&#8217;utilisateur ne fait pas que remplir des champs de saisies, il donne un peu de lui-même : respectons-le !</p>

<p>Et comme vous voudrez certainement mettre de beaux visuels en fond de page, je vous propose <a href="http://css.4design.tl/background-css-avec-motifs-double-fond">ce billet</a> sur l&#8217;utilisation, non pas d&#8217;un, mais de deux <em>background</em> pour enjoliver votre fond de page !</p>

<h2>Il n&#8217;y a pas que les div dans la vie</h2>

<p>Après la mise au point du squelette de notre page, nous allons nous occuper des autres éléments qui nous aideront à structurer le contenu. J&#8217;ai évoqué rapidement la balise h1 et ses petites soeurs h2&#8230;, h6 qui doivent être utilisées pour les titres et sous-titres de vos documents.</p>

<p>Par exemple, plutôt qu&#8217;un div id=&nbsp;&raquo;titre1&#8243;, on <em>stylera</em> la balise h1 pour le plus grand plaisir des moteurs de recherches et navigateurs alternatifs ! La balise p encadre les paragraphes ; blockquote sert lorsqu&#8217;on cite une portion conséquente de texte.</p>

<p>A noter que cette balise peut contenir d&#8217;autres éléments de type bloc, comme p ou table, mais la réciproque n&#8217;est pas vraie. Pour mieux connaître les mœurs subtiles des balises HTML, j&#8217;abuse de la bande passante de <a href="http://www.gotapi.com/">gotapi.com.</a></p>

<p>Lorsque la structure du contenu implique une idée de liste, le mieux, c&#8217;est encore, d&#8217;employer les listes ordonnées ol ou non ordonnées ul avec leur cohorte de li. Ces listes sont très pratiques et permettent de <a href="http://fr.selfhtml.org/css/proprietes/listes.htm">nombreuses fantaisies</a> en matière de CSS.</p>

<p>Mais on oublie trop souvent les <a href="http://www.pompage.net/pompe/listesdefinitions/">listes de définitions</a> qui peuvent rendre de grands services, comme présenter la <a href="http://loupanthere.css4design.com/journal-loupanthere.php">chronologie</a> de <a href="http://loupanthere.css4design.com/">ma loupanthère</a>, par exemple&#8230; Le sujet des listes de définitions est inépuisable, ce qui n&#8217;est pas mon cas : je vous ai donc laissé quelques liens à suivre dans la <em>linkographie</em>.</p>

<h2>Les éléments en ligne c&#8217;est pour aujourd&#8217;hui ou pour demain ?</h2>

<p>Après sur survol des éléments de type block, il nous reste tout juste assez de temps pour jeter un oeil sur les éléments en ligne. J&#8217;utilise assez souvent les éléments suivants : samp pour spécifier les échantillons de code ; em pour l&#8217;emphase (en gros, ça met de l&#8217;italique) ; strong pour marquer un renforcement du texte (en gros, ça met du gras), q pour les citations courtes mais pas forcément vulgaires&#8230;, a pour les liens, etc.</p>

<p>Bon, c&#8217;est comme le café, je crois que ce n&#8217;est pas la peine d&#8217;en rajouter. Et puis vous êtes sûrement déjà parti faire un tour sur gotapi ou pire, sur <a href="http://www.bashfr.org/?sort=top50">bashfr</a> où vous trouverez des vrais morceaux d&#8217;humour, pas comme ici :)</p>

<p>Et vous, quelles sont vos balises préférées ?</p>

<h2>Linkographie :</h2>

<dl> <dt><a href="http://css.maxdesign.com.au/">Maxdesign</a></dt> <dd>Sans doute l&#8217;un des meilleurs site au monde concernant les 1001 façons de styler les listes ;)</dd> <dt><a href="http://fr.selfhtml.org/css/proprietes/listes.htm">Selfhtml.org</a></dt> <dd>Tout sur le formatage des listes. </dd> <dt><a href="http://www.pompage.net/pompe/listesdefinitions/">Pompage</a></dt> <dd>L&#8217;essentiel et un peu plus sur les listes de définitions.</dd> <dt><a href="http://css.alsacreations.com/Construction-de-menus-en-CSS/Un-menu-deroulant-en-CSS-et-XHTML-vertical-et-horizontal">Alsacreations</a></dt> <dd>Utilisez les listes de définition pour structurer vos menus déroulants.</dd> <dt><a href="http://giminik.developpez.com/xhtml/dl.html">Giminik</a></dt> <dd>Liste des attributs et événements associés à la balise dl</dd> </dl>

<h3 class='related_post_title'>Articles sur le même sujet</h3>

<ul class='related_post'><li><a href='http://css.4design.tl/css-toolbox' title='Trucs et astuces CSS'>Trucs et astuces CSS</a></li><li><a href='http://css.4design.tl/exercice-de-style-css-et-html-table-vs-div' title='Exercice de style CSS et HTML : table vs div'>Exercice de style CSS et HTML : table vs div</a></li><li><a href='http://css.4design.tl/frameworks-css-reset-css-design-from-scratch' title='Frameworks CSS + Reset CSS : design from scratch'>Frameworks CSS + Reset CSS : design from scratch</a></li><li><a href='http://css.4design.tl/design-de-formulaire-html-avec-css' title='Design de formulaire HTML avec CSS'>Design de formulaire HTML avec CSS</a></li><li><a href='http://css.4design.tl/design-css-fixe-elastique-ou-liquide' title='Design CSS : fixe, élastique ou liquide ?'>Design CSS : fixe, élastique ou liquide ?</a></li></ul>
 <p><a href="http://css.4design.tl/?flattrss_redirect&amp;id=53&amp;md5=37a52216db955b631e1bd1fd2d1e5e0c" title="Flattr" target="_blank"><img src="http://css.4design.tl/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://css.4design.tl/quelques-notes-sur-xhtml-et-css-au-fil-de-l-eau/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=br1o&amp;popout=1&amp;url=http%3A%2F%2Fcss.4design.tl%2Fquelques-notes-sur-xhtml-et-css-au-fil-de-l-eau&amp;language=fr_FR&amp;category=text&amp;title=Quelques+notes+sur+XHTML+et+CSS%2C+au+fil+de+l%26%23039%3Beau%26%238230%3B&amp;description=Le+quotidien+de+l%26%238217%3Bint%C3%A9grateur+XHTML+et+CSS+est+parfois+ponctu%C3%A9+de+vide+t%C3%A9l%C3%A9ologique+concernant+les+bonnes+balises+%C3%A0+utiliser+en+fonction+du+type+de+contenu.+J%26%238217%3Bai+longtemps+cherch%C3%A9+%C3%A0+produire...&amp;tags=Background%2CColonnes%2CCommentaires+conditionnels%2CConception+de+site+web%2CCSS%2CDesign+%C3%A9lastique%2CDesign+liquide%2CFooter%2CFormulaire%2CHacks+CSS%2CHeader%2CHTML%2CInternet+Explorer%2CLoupanth%C3%A8re%2CPartenaires%2CXHTML%2Cblog" type="text/html" />
	</item>
		<item>
		<title>CSS 3 column layout &#8211; the holy grail!?</title>
		<link>http://css.4design.tl/css-3-column-layout-the-holy-grail</link>
		<comments>http://css.4design.tl/css-3-column-layout-the-holy-grail#comments</comments>
		<pubDate>Sat, 19 Aug 2006 06:21:00 +0000</pubDate>
		<dc:creator>Bruno Bichet</dc:creator>
				<category><![CDATA[HTML & CSS]]></category>
		<category><![CDATA[Intégration web]]></category>
		<category><![CDATA[Hacks CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Humour]]></category>
		<category><![CDATA[Tableaux]]></category>
		<category><![CDATA[XHTML]]></category>

		<guid isPermaLink="false">http://www.css4design.com/blog-reloaded/?p=14</guid>
		<description><![CDATA[En sortant surfer ce matin, j&#8217;ai trouvé cet article sur l&#8217;utilisation &#8211; ou non &#8211; des hacks css pour vos design web. Mais aussi, et plus malheureusement, sur le retour aux TABLE pour la mise en forme des pages. Tant pis, c&#8217;aurait pu être un très bon article. Ca reste néanmoins un point de vue intéressant, qui rejoint d&#8217;une certaine manière, l&#8217;excellent W3C go home ! d&#8217;Arno. Articles sur le même sujet Trucs et astuces CSS5 Reset CSS à la loupe pour une remise à zéro des valeurs par défaut des navigateursExercice de style CSS et HTML : table vs [...]]]></description>
			<content:encoded><![CDATA[<p>En sortant surfer ce matin, j&#8217;ai trouvé cet <a href="http://www.killersites.com/2006/css-3-column-layout">article</a> sur l&#8217;utilisation &#8211; ou non &#8211; des hacks css pour vos design web. Mais aussi, et plus malheureusement, sur le retour aux TABLE pour la mise en forme des pages. Tant pis, c&#8217;aurait pu être un très bon article. Ca reste néanmoins un point de vue intéressant, qui rejoint d&#8217;une certaine manière, l&#8217;excellent <a href="http://www.uzine.net/article1979.html">W3C go home</a> ! d&#8217;Arno.</p>

<h3 class='related_post_title'>Articles sur le même sujet</h3>

<ul class='related_post'><li><a href='http://css.4design.tl/css-toolbox' title='Trucs et astuces CSS'>Trucs et astuces CSS</a></li><li><a href='http://css.4design.tl/5-reset-css-a-la-loupe-pour-une-remise-a-zero-des-valeurs-par-defaut-des-navigateurs' title='5 Reset CSS à la loupe pour une remise à zéro des valeurs par défaut des navigateurs'>5 Reset CSS à la loupe pour une remise à zéro des valeurs par défaut des navigateurs</a></li><li><a href='http://css.4design.tl/exercice-de-style-css-et-html-table-vs-div' title='Exercice de style CSS et HTML : table vs div'>Exercice de style CSS et HTML : table vs div</a></li><li><a href='http://css.4design.tl/quelques-notes-sur-xhtml-et-css-au-fil-de-l-eau' title='Quelques notes sur XHTML et CSS, au fil de l&#039;eau&#8230;'>Quelques notes sur XHTML et CSS, au fil de l&#039;eau&#8230;</a></li><li><a href='http://css.4design.tl/check-your-body-avec-le-w3c' title='Check your &lt;body&gt; avec le W3C'>Check your &lt;body&gt; avec le W3C</a></li></ul>
 <p><a href="http://css.4design.tl/?flattrss_redirect&amp;id=43&amp;md5=5d359bfc8005e7eae2d19a19566a4829" title="Flattr" target="_blank"><img src="http://css.4design.tl/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://css.4design.tl/css-3-column-layout-the-holy-grail/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=br1o&amp;popout=1&amp;url=http%3A%2F%2Fcss.4design.tl%2Fcss-3-column-layout-the-holy-grail&amp;language=fr_FR&amp;category=text&amp;title=CSS+3+column+layout+%26%238211%3B+the+holy+grail%21%3F&amp;description=En+sortant+surfer+ce+matin%2C+j%26%238217%3Bai+trouv%C3%A9+cet+article+sur+l%26%238217%3Butilisation+%26%238211%3B+ou+non+%26%238211%3B+des+hacks+css+pour+vos+design+web.+Mais+aussi%2C+et+plus+malheureusement%2C+sur+le+retour...&amp;tags=Hacks+CSS%2CHTML%2CHumour%2CTableaux%2CXHTML%2Cblog" type="text/html" />
	</item>
		<item>
		<title>Commentaires conditionnels d&#039;IE vs hacks CSS ?</title>
		<link>http://css.4design.tl/commentaires-conditionnels-d-internet-explorer-vs-hacks-css</link>
		<comments>http://css.4design.tl/commentaires-conditionnels-d-internet-explorer-vs-hacks-css#comments</comments>
		<pubDate>Tue, 18 Jul 2006 18:18:57 +0000</pubDate>
		<dc:creator>Bruno Bichet</dc:creator>
				<category><![CDATA[HTML & CSS]]></category>
		<category><![CDATA[Commentaires conditionnels]]></category>
		<category><![CDATA[Hacks CSS]]></category>
		<category><![CDATA[Internet Explorer]]></category>
		<category><![CDATA[Tutoriels]]></category>

		<guid isPermaLink="false">http://www.css4design.com/blog-reloaded/?p=28</guid>
		<description><![CDATA[Les différences de rendu entre les différents navigateurs sont le lot quotidien de l&#8217;intégrateur CSS : un léger décalage par ci, une largeur différente par là&#8230; et la tentation est grande d&#8217;envoyer paitre le dernier de la classe, au grand dam de la voix de la sagesse (souvent commerciale) qui vous prie de ne pas négliger 85% de ses clients potentiels&#8230; Comme vous n&#8217;avez pas le temps de revoir la structure de votre code XHTML, vous songez aux fameux hacks CSS dont on vous rebat les oreilles. Comme beaucoup, j&#8217;ai longtemps utilisé les box model et autre underscore hacks pour [...]]]></description>
			<content:encoded><![CDATA[<p>Les différences de rendu entre les différents navigateurs sont le lot quotidien de l&#8217;intégrateur CSS : un léger décalage par ci, une largeur différente par là&#8230; et la tentation est grande d&#8217;envoyer paitre le dernier de la classe, au grand dam de la voix de la sagesse (souvent commerciale) qui vous prie de ne pas négliger 85% de ses clients potentiels&#8230; <span id="more-36"></span></p>

<p>Comme vous n&#8217;avez pas le temps de revoir la structure de votre code XHTML, vous songez aux fameux <em>hacks</em> CSS dont on vous rebat les oreilles. Comme beaucoup, j&#8217;ai longtemps utilisé les <em>box model</em> et autre <em>underscore hacks</em> pour finir avec des feuilles de styles qui n&#8217;en n&#8217;ont plus (de style) ! J&#8217;ai donc cherché à m&#8217;en passer. Mais par quoi les remplacer ?</p>

<h3>Le constat</h3>

<p>Tous les navigateurs ont des faiblesses concernant le support des normes CSS, mais celui qui a la palme est sans conteste Internet Explorer. C&#8217;est pourquoi je me suis lancé dans la recherche du <em>hack</em> ultime pour filtrer ce piètre navigateur. Je me suis rapidement rendu compte que de plus en plus de sites encouragent, non sans quelques réserves judicieuses, l&#8217;utilisation des commentaires conditionnels pour IE.</p>

<h3>La solution</h3>

<p>Les commentaires conditionnels encadrant l&#8217;appel de la feuille de style ne sont compris que par IE, toute version confondue dans l&#8217;exemple ci-dessous, ou bien en précisant la version, voire la sous-version que l&#8217;on veut filtrer. Voyez le site <em>MSDN</em> de <em>Microsoft</em> pour plus de détails.</p>

<h4>La syntaxe pour cibler toutes les versions d&#8217;IE</h4>

<p><pre>&lt;!--[if IE]&gt;
     &lt;style type="text/css"&gt;
         @import "/style/pour_ie.css";
     &lt;/style&gt;
&lt;![endif]--&gt;</pre></p>

<h4>Pour cibler une version spécifique</h4>

<p><pre>&lt;!--[if IE 5.0]&gt;
     pour IE 5.0
&lt;![endif]--&gt;</p>

<p>&lt;!--[if IE 5.5000]&gt;
     pour IE 5.5
&lt;![endif]--&gt;</p>

<p>&lt;!--[if IE 6]&gt;
     pour IE 6.0
&lt;![endif]--&gt;</pre></p>

<h4>Pour cibler une version supérieure ou égale à</h4>

<p><pre>&lt;!--[if gte IE 5]&gt;
     pour réserver le contenu à IE 5.0, IE5.5
     et IE6.0
&lt;![endif]--&gt;</p>

<p>&lt;!--[if gte IE 5.5000]&gt;
     pour IE5.5
     et IE6.0
&lt;![endif]--&gt;</pre></p>

<h4>Pour cibler une version inférieure ou égale à</h4>

<p><pre>&lt;!--[if lte IE 6]&gt;
     pour IE5.0, IE5.5
     et IE6.0
     mais pas IE7.0
&lt;![endif]--&gt;</pre></p>

<h4>Pour cibler une version inférieure à</h4>

<p><pre>&lt;!--[if lt IE 6]&gt;
     pour IE5.0
     et IE5.5
&lt;![endif]--&gt;</pre></p>

<p>Les navigateurs autres que IE considèrent ces lignes comme des commentaires HTML. Internet Explorer est programmé pour les prendre en compte. C&#8217;est aussi simple que ça ;)</p>

<h4>Pour masquer du code à toutes les versions d&#8217;IE Windows</h4>

<p>La nouveauté dans les exemples qui suivent, c&#8217;est l&#8217;ajout de commentaires HTML qui permet de filtrer un peu plus subtilement les navigateurs. Dans cet exemple, seul IE Windows n&#8217;interprètera pas le code ou l&#8217;appel à une feuille de style.</p>

<p><pre>&lt;!--[if !IE]&gt; &lt;!--&gt;
     IE Windows ne lira pas ça
&lt;!--&gt; &lt;![endif]--&gt;</pre></p>

<h4>compliquons un peu les choses</h4>

<p>L&#8217;exemple qui suit permet dans un premier temps de cibler tous les navigateurs plus IE7, et dans un second temps de s&#8217;adresser uniquement aux versions inférieures ou égales à IE6 Windows.</p>

<p><pre> &lt;!--[if IE 7]&gt; &lt;!--&gt;
     Pour IE7
     mais aussi Safari, Firefox, Opera, etc.,
     mais ni IE5.x ni IE6.0 Windows
&lt;!--&gt; &lt;![endif]--&gt;</p>

<p>&lt;!--[if lte IE 6]&gt;
     pour IE5.x
     et 6.0 Windows
&lt;![endif]--&gt;</pre></p>

<h3>La méthode de travail</h3>

<p>Dans un monde idéal, cette feuille de style pour_ie.css serai vide. Nous allons donc essayer d&#8217;en mettre le moins possible. Pour cela, nous allons travailler sur la feuille de style &laquo;&nbsp;standard&nbsp;&raquo;, que nous testerons sous <em>Firefox</em>, <em>Opera</em> sur PC et les mêmes sur <em>MacOS X</em> en ajoutant <em>Safari</em> et <em>Camino</em> (pour la forme, puisque le moteur est le même que <em>Firefox</em>. Mais sait-on jamais !).</p>

<p>Une fois ces navigateurs satisfaits, nous nous tournerons vers <em>Internet Explorer</em> pour <em>fixer</em> les problèmes de rendu en surclassant les déclarations fautives (et uniquement celles-ci) pour profiter du <em>C</em> de CSS (la cascade) ! Le plus souvent, il s&#8217;agit des attributs <em>width</em>, <em>padding</em>, <em>margin</em>, <em>position</em> ou de différence de rendu des formulaires ou des tableaux.</p>

<h3>Conclusion</h3>

<p>Deux feuilles de style peuvent sembler ajouter plus de confusion encore. Certains préfèreront sans doute utiliser les contournements. Mais les navigateurs évoluent, et les hacks qui fonctionnent aujourd&#8217;hui, pourraient poser des problèmes plus tard. Je vous laisse avec un peu de lecture. N&#8217;hésitez pas à laissez vos commentaires (inconditionnels ?)</p>

<h4 class="listLink">Linkographie. Quelques liens sur les hacks CSS et les commentaires IE</h4>

<dl> <dt> <a href="http://msdn.microsoft.com/workshop/author/dhtml/overview/ccomment_ovw.asp">le site MSDN de Microsoft</a> </dt> <dd> A tout seigneur, tout honneur ;) </dd> <dt> <a href="http://www.blog-and-blues.org/articles/Les_syntaxes_de_commentaires_conditionnels_pour_IE_Windows">http://www.blog-and-blues.org/articles/&#8230;</a> </dt> <dd> Un article exhaustif au sujet des commentaires conditionnels dont j&#8217;ai repris les échantillons de code, mais pas les explications : je vous en recommande fortement la lecture ! </dd> <dt> <a href="http://darkmag.net/darkBlog/index.php?2004/01/30/11-css-hacks-pourquoi-faire-complique-quand-on-peut-faire-simple">http://darkmag.net/darkBlog/&#8230;</a> </dt> <dd> Pourquoi et comment on peut se passer des hacks CSS </dd> <dt> <a href="http://www.dyingculture.net/2004/01/30/114-NouvelleTechniqueDeCssHack">http://www.dyingculture.net/&#8230;</a> </dt> <dd> Quelques réserves vis-à-vis des commentaires conditionnels </dd> <dt> <a href="http://forum.alsacreations.com/faq/#item53">http://forum.alsacreations.com/faq/</a> </dt> <dd> Liste des commentaires conditionnels spécifiques cités en exemple. </dd> <dt> <a href="http://www.tantek.com/CSS/Examples/boxmodelhack.html">http://www.tantek.com/CSS/Examples/boxmodelhack.html</a> </dt> <dd> L&#8217;inventeur du box model hack </dd> <dt> <a href="http://css-discuss.incutio.com/?page=CssHack">http://css-discuss.incutio.com/?page=CssHack</a> </dt> <dd> La plupart des hacks CSS disponibles sur une page </dd> <dt> <a href="http://centricle.com/ref/css/filters/">http://centricle.com/ref/css/filters/</a> </dt> <dd> Quels filtres pour quels navigateurs et plateformes ? C&#8217;est ici que ça se passe ! </dd> </dl>

<h3 class='related_post_title'>Articles sur le même sujet</h3>

<ul class='related_post'><li><a href='http://css.4design.tl/css-toolbox' title='Trucs et astuces CSS'>Trucs et astuces CSS</a></li><li><a href='http://css.4design.tl/une-feuille-de-style-et-des-hacks-css-pour-cibler-ie6-ie7-ou-ie8' title='Une Feuille de style et des « hacks CSS » pour cibler IE6, IE7 ou IE8'>Une Feuille de style et des « hacks CSS » pour cibler IE6, IE7 ou IE8</a></li><li><a href='http://css.4design.tl/ie6-gerer-la-transparence-du-format-png-24-bits' title='IE6 &#8212; Gérer la transparence du format PNG 24 bits'>IE6 &#8212; Gérer la transparence du format PNG 24 bits</a></li><li><a href='http://css.4design.tl/un-seul-fichier-css-pour-cibler-ie6-et-ie7-avec-les-commentaires-conditionnels' title='Un seul fichier CSS pour cibler IE6 et IE7 avec les commentaires conditionnels'>Un seul fichier CSS pour cibler IE6 et IE7 avec les commentaires conditionnels</a></li><li><a href='http://css.4design.tl/quelques-notes-sur-xhtml-et-css-au-fil-de-l-eau' title='Quelques notes sur XHTML et CSS, au fil de l&#039;eau&#8230;'>Quelques notes sur XHTML et CSS, au fil de l&#039;eau&#8230;</a></li></ul>
 <p><a href="http://css.4design.tl/?flattrss_redirect&amp;id=36&amp;md5=ed5a8b4370da8543ea4b1d34f247ea46" title="Flattr" target="_blank"><img src="http://css.4design.tl/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://css.4design.tl/commentaires-conditionnels-d-internet-explorer-vs-hacks-css/feed</wfw:commentRss>
		<slash:comments>10</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=br1o&amp;popout=1&amp;url=http%3A%2F%2Fcss.4design.tl%2Fcommentaires-conditionnels-d-internet-explorer-vs-hacks-css&amp;language=fr_FR&amp;category=text&amp;title=Commentaires+conditionnels+d%26%23039%3BIE+vs+hacks+CSS+%3F&amp;description=Les+diff%C3%A9rences+de+rendu+entre+les+diff%C3%A9rents+navigateurs+sont+le+lot+quotidien+de+l%26%238217%3Bint%C3%A9grateur+CSS+%3A+un+l%C3%A9ger+d%C3%A9calage+par+ci%2C+une+largeur+diff%C3%A9rente+par+l%C3%A0%26%238230%3B+et+la+tentation+est...&amp;tags=Commentaires+conditionnels%2CHacks+CSS%2CInternet+Explorer%2CTutoriels%2Cblog" type="text/html" />
	</item>
		<item>
		<title>Trucs et astuces CSS</title>
		<link>http://css.4design.tl/css-toolbox</link>
		<comments>http://css.4design.tl/css-toolbox#comments</comments>
		<pubDate>Wed, 21 Jun 2006 00:30:03 +0000</pubDate>
		<dc:creator>Bruno Bichet</dc:creator>
				<category><![CDATA[HTML & CSS]]></category>
		<category><![CDATA[Background]]></category>
		<category><![CDATA[Colonnes]]></category>
		<category><![CDATA[Commentaires conditionnels]]></category>
		<category><![CDATA[Design élastique]]></category>
		<category><![CDATA[Formulaire]]></category>
		<category><![CDATA[GIF]]></category>
		<category><![CDATA[Graphisme]]></category>
		<category><![CDATA[Hacks CSS]]></category>
		<category><![CDATA[Header]]></category>
		<category><![CDATA[Hover]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Internet Explorer]]></category>
		<category><![CDATA[Menu]]></category>
		<category><![CDATA[Motifs]]></category>
		<category><![CDATA[Onglets]]></category>
		<category><![CDATA[Opacité]]></category>
		<category><![CDATA[Partenaires]]></category>
		<category><![CDATA[PNG]]></category>
		<category><![CDATA[Standards web]]></category>
		<category><![CDATA[Tableaux]]></category>
		<category><![CDATA[Template]]></category>
		<category><![CDATA[Transparent]]></category>
		<category><![CDATA[Tutoriels]]></category>
		<category><![CDATA[XHTML]]></category>

		<guid isPermaLink="false">http://www.css4design.com/blog-reloaded/?p=27</guid>
		<description><![CDATA[Cette page regroupe des trucs &#38; astuces CSS que j&#8217;ajoute régulièrement : bookmarkez, blogmarker, favorisez, bref faites tourner&#8230; Si vous cherchez plutôt des exemples de design CSS plus complets, les billets présents dans cette page consacrée au design web avec CSS devrait vous intéresser ;) Si vous avez vous aussi quelques astuces CSS à partager, n&#8217;hésitez pas à le faire dans les commentaires. La feuille blanche Raccourci pratique pour les bordures CSS Transparence Commentaires conditionnels d&#8217;IE vs hacks CSS Barre de défilement et décalage d&#8217;une page centrée Centrer un bloc horizontalement et verticalement dans la fenêtre du navigateur Centrer un [...]]]></description>
			<content:encoded><![CDATA[<p>Cette page regroupe des trucs &amp; astuces CSS que j&#8217;ajoute régulièrement : bookmarkez, blogmarker, favorisez, bref faites tourner&#8230; Si vous cherchez plutôt des exemples de design CSS plus complets, les billets présents dans cette page consacrée au <a href="/articles/integration-web/xhtml-css">design web avec CSS</a> devrait vous intéresser ;)</p>

<p>Si vous avez vous aussi quelques astuces CSS à partager, n&#8217;hésitez pas à le faire dans les commentaires.</p>

<ul>
    <li> <a title="La feuille blanche" href="/css-toolbox#feuille">La feuille blanche</a></li>
    <li> <a title="Raccourci pratique pour les bordures CSS" href="/css-toolbox#bordure">Raccourci pratique pour les bordures CSS</a></li>
    <li> <a title="Transparence" href="/css-toolbox#transparence">Transparence</a></li>
    <li> <a title="Commentaires conditionnels d'IE vs hacks CSS" href="/css-toolbox#commentaires">Commentaires conditionnels d&#8217;IE vs hacks CSS</a></li>
    <li> <a title="Barre de défilement et décalage d'une page centrée" href="/css-toolbox#defilement">Barre de défilement et décalage d&#8217;une page centrée</a></li>
    <li> <a title="Centrer un bloc horizontalement et verticalement dans la fenêtre du navigateur" href="/css-toolbox#centrer1">Centrer un bloc horizontalement et verticalement dans la fenêtre du navigateur</a></li>
    <li> <a title="Centrer un bloc horizontalement dans la fenêtre du navigateur" href="/css-toolbox#centrer2">Centrer un bloc horizontalement dans la fenêtre du navigateur</a></li>
    <li> <a title="Modifier les caractéristiques des liens avec LoVe HAte" href="/css-toolbox#liens">Modifier les caractéristiques des liens avec LoVe HAte</a></li>
</ul>

<p><span id="more-26"></span></p>

<h3 id="feuille">La feuille blanche</h3>

<p>Document XHTML pour partir de bonnes bases :</p>

<pre><code>            &lt;title&gt;Un titre explicite contenant les mots-clés de la page&lt;/title&gt;



            &lt;!--[if lt IE 7]&amp;gt;--&gt;


            &lt;!--[if IE]&amp;gt;--&gt;
</code></pre>

<p>Consultez cet article d&#8217;<a href="http://openweb.eu.org/">OpenWeb</a> pour mieux connaitre les <a href="http://openweb.eu.org/articles/differentes_dtd/">différentes DTD</a> et les <a href="http://openweb.eu.org/articles/html_au_xhtml/">gabarits XHTML</a> prêt à l&#8217;emploi.</p>

<p>J&#8217;ajoute souvent un <a href="/5-reset-css-a-la-loupe-pour-une-remise-a-zero-des-valeurs-par-defaut-des-navigateurs">Reset CSS</a> au choix pour débuter la feuille de style :</p>

<ul>
    <li><a href="/5-reset-css-a-la-loupe-pour-une-remise-a-zero-des-valeurs-par-defaut-des-navigateurs#margin-padding-zero">Remise des marges à zéro avec le sélecteur universel</a></li>
    <li><a href="/5-reset-css-a-la-loupe-pour-une-remise-a-zero-des-valeurs-par-defaut-des-navigateurs#reset-css-reloaded">Reset CSS Reloaded</a></li>
    <li><a href="/5-reset-css-a-la-loupe-pour-une-remise-a-zero-des-valeurs-par-defaut-des-navigateurs#css-initial">INITIAL</a></li>
    <li><a href="/5-reset-css-a-la-loupe-pour-une-remise-a-zero-des-valeurs-par-defaut-des-navigateurs#yui-reset-css">YUI Reset CSS</a></li>
    <li><a href="/5-reset-css-a-la-loupe-pour-une-remise-a-zero-des-valeurs-par-defaut-des-navigateurs#undo-html-css">undohtml.css</a></li>
</ul>

<p>Lire l&#8217;indispensable article de <a href="http://www.blog-and-blues.org/weblog/2004/05/24/214-font-size-em">Blog &amp; Blues</a> pour plus d&#8217;informations sur la diminution de la taille par défaut de la police et l&#8217;utilisation de l&#8217;unité de mesure em</p>

<p>Quelques informations supplémentaires au sujet de la remise à zéro des <em>margin</em> et <em>padding</em> pour tous les éléments sur <a href="http://leftjustified.net/journal/2004/10/19/global-ws-reset/">leftjustified.net.</a></p>

<p>On a toujours besoin d&#8217;un peu d&#8217;interactivité sur nos pages web. La bibliothèque Javascript jQuery est idéal : empreinte légère, et facilité d&#8217;utilisation, plugins nombreux, communauté réactive. Lire cette <a href="http://www.css4design.com/framework-jquery-pour-ecrire-du-javascript-non-intrusif">introduction à jQuery</a> et cette <a href="http://www.css4design.com/1000-ressources-pour-wordpress-et-le-developpement-web#jquery">liste de 240 plugins pour jQuery</a>.</p>

<h3 id="bordure">Raccourci pratique pour les bordures CSS</h3>

<p>Ces deux propriétés CSS permettent de gérer l&#8217;épaisseur, le style, la couleur d&#8217;une bordure ainsi que les côtés où elle apparait.</p>

<pre><code>.bordure {
    border: 1px solid #DF001A;
    border-width: 0 0 3px 0;
}
</code></pre>

<p>Cet exemple affiche une bordure de 3 pixels au bas de l&#8217;élément dont la classe est bordure. La valeur de 1px de la première déclaration CSS est surchargée par la valeur de la deuxième ligne.</p>

<p>Pour afficher une bordure de 1 pixel en haut et 3 pixels à gauche, il suffit de modifier la deuxième ligne comme ceci : border-width: 1px 0 0 3px;</p>

<h3 id="transparence">Transparence</h3>

<pre><code>div.transparence {
    filter:alpha(opacity=50);
    -moz-opacity:  0.5;
    -khtml-opacity: 0.5;
    opacity: 0.5;
}
</code></pre>

<p>La gestion de l&#8217;opacité est un chemin semé d&#8217;embûches. Heureusement, il existe des chemins de traverse pour pallier le manque de support des propriété standards par les navigateurs.</p>

<p>J&#8217;ai trouvé les 3 premières lignes chez <a href="http://www.ac-graphic.net/13-la-transparence-css.php5">ac-graphic.net</a> et la quatrième chez <a href="http://www.babylon-design.com/site/index.php/2005/01/01/55-transparence-opacity-images-navigateurs">babylon-design. </a>La première ligne est destinée à IE, la deuxième à Firefox, la troisième est un standard en CSS3 ! et la dernière à Konqueror.</p>

<p>P.S. : Pour une compatibilité maximale, il est conseillé de mettre les 4 lignes ensemble.</p>

<h3 id="commentaires">Commentaires conditionnels d&#8217;IE vs hacks CSS</h3>

<p><pre>&lt;!--[if IE]&gt;
    &lt;style type="text/css"&gt;
        @import "/style/pour_ie.css";
    &lt;/style&gt;
&lt;![endif]--&gt;</pre>
Lire le <a href="/commentaires-conditionnels-d-internet-explorer-vs-hacks-css">billet consacré aux commentaires conditionnels</a>.</p>

<h3 id="defilement">Barre de défilement et décalage d&#8217;une page centrée</h3>

<p><pre>html {
    overflow-y: scroll;
    overflow: -moz-scrollbars-vertical;
}</pre>
La deuxième ligne est une propriété spécifique à Mozilla. Solution trouvée sur <a href="http://web.covertprestige.info/test/09-barre-defilement-et-decalage-page-centree-1.html">http://web.covertprestige.info/test/&#8230;</a></p>

<h3 id="centrer1">Centrer un bloc horizontalement et verticalement dans la fenêtre du navigateur</h3>

<p><pre>#page {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 30em;
    height: 30em;
    margin: -15em 0 0 -15em;
    border: 1px solid #000;
    text-align: left;
    background-color: #990;
}</pre></p>

<h3 id="centrer2">Centrer un bloc horizontalement dans la fenêtre du navigateur</h3>

<p><pre>#page {
    position: relative; /* optionel mais utile par la suite <em>/
    width: 80%;
    margin: 0 auto;
    text-align: left; /</em> optionel : reliquat d'un bug sous ie5.5 */
}</pre></p>

<h3 id="liens">Modifier les caractéristiques des liens avec LoVe F HAte</h3>

<p><pre>a          { color: #CAB3A5; }
a:link     { color: #CAB3A5; }
a:visited  { color: #CAB3A5; }
a:focus    { color: #CAB3A5; }
a:hover    { color: #DB9D41; }
a:active   { color: #FFF; }</pre></p>

<h3 class='related_post_title'>Articles sur le même sujet</h3>

<ul class='related_post'><li><a href='http://css.4design.tl/quelques-notes-sur-xhtml-et-css-au-fil-de-l-eau' title='Quelques notes sur XHTML et CSS, au fil de l&#039;eau&#8230;'>Quelques notes sur XHTML et CSS, au fil de l&#039;eau&#8230;</a></li><li><a href='http://css.4design.tl/exercice-de-style-css-et-html-table-vs-div' title='Exercice de style CSS et HTML : table vs div'>Exercice de style CSS et HTML : table vs div</a></li><li><a href='http://css.4design.tl/menu-html-et-css-portes-coulissantes-et-item-current-en-php' title='Menu HTML et CSS, sliding doors et item current en PHP'>Menu HTML et CSS, sliding doors et item current en PHP</a></li><li><a href='http://css.4design.tl/opacite-avec-css-et-effet-de-trame-avec-un-gif-transparent' title='Opacité CSS et effet de trame avec GIF/PNG transparent'>Opacité CSS et effet de trame avec GIF/PNG transparent</a></li><li><a href='http://css.4design.tl/ie6-gerer-la-transparence-du-format-png-24-bits' title='IE6 &#8212; Gérer la transparence du format PNG 24 bits'>IE6 &#8212; Gérer la transparence du format PNG 24 bits</a></li></ul>
 <p><a href="http://css.4design.tl/?flattrss_redirect&amp;id=26&amp;md5=d9df97fc74750538ca563247d156dbfb" title="Flattr" target="_blank"><img src="http://css.4design.tl/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://css.4design.tl/css-toolbox/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=br1o&amp;popout=1&amp;url=http%3A%2F%2Fcss.4design.tl%2Fcss-toolbox&amp;language=fr_FR&amp;category=text&amp;title=Trucs+et+astuces+CSS&amp;description=Cette+page+regroupe+des+trucs+%26amp%3B+astuces+CSS+que+j%26%238217%3Bajoute+r%C3%A9guli%C3%A8rement+%3A+bookmarkez%2C+blogmarker%2C+favorisez%2C+bref+faites+tourner%26%238230%3B+Si+vous+cherchez+plut%C3%B4t+des+exemples+de+design+CSS+plus+complets%2C+les...&amp;tags=Background%2CColonnes%2CCommentaires+conditionnels%2CDesign+%C3%A9lastique%2CFormulaire%2CGIF%2CGraphisme%2CHacks+CSS%2CHeader%2CHover%2CHTML%2CInternet+Explorer%2CMenu%2CMotifs%2COnglets%2COpacit%C3%A9%2CPartenaires%2CPNG%2CStandards+web%2CTableaux%2CTemplate%2CTransparent%2CTutoriels%2CXHTML%2Cblog" type="text/html" />
	</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Page Caching using disk: basic

Served from: css.4design.tl @ 2012-05-24 18:17:29 -->
