<?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; Focus</title>
	<atom:link href="http://css.4design.tl/tag/focus/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>Notes de lecture &#8212; Livre CSS avancées, vers HTML5 et CSS3</title>
		<link>http://css.4design.tl/livre-css-avancees-vers-html5-et-css3</link>
		<comments>http://css.4design.tl/livre-css-avancees-vers-html5-et-css3#comments</comments>
		<pubDate>Sun, 03 Apr 2011 17:07:27 +0000</pubDate>
		<dc:creator>Bruno Bichet</dc:creator>
				<category><![CDATA[Intégration web]]></category>
		<category><![CDATA[Mizukara (3615 MyLife)]]></category>
		<category><![CDATA[:after]]></category>
		<category><![CDATA[:before]]></category>
		<category><![CDATA[:first-child]]></category>
		<category><![CDATA[:first-letter]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[CSS3]]></category>
		<category><![CDATA[Eyrolles]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[first-line]]></category>
		<category><![CDATA[Focus]]></category>
		<category><![CDATA[Google Chrome]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[IE6]]></category>
		<category><![CDATA[IE7]]></category>
		<category><![CDATA[IE8]]></category>
		<category><![CDATA[IE9]]></category>
		<category><![CDATA[Livre]]></category>
		<category><![CDATA[Mail]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Note de lecture]]></category>
		<category><![CDATA[Opera]]></category>
		<category><![CDATA[Print]]></category>

		<guid isPermaLink="false">http://css4design.com/?p=9640</guid>
		<description><![CDATA[Je viens de terminer le dernier livre de Raphaël Goetter intitulé CSS avancées. Vers HTML5 et CSS3 paru aux Editions Eyrolles mi-mars 2011 et préfacé par Daniel Glazman. Ce livre n&#8217;est pas une simple mise à jour de CSS2, pratique du design web paru en 2005 ; il s&#8217;agit d&#8217;une refonte totale avec une orientation «utilisateurs avancés». L&#8217;auteur commence par un état des lieux sur les standards du web et leur prise en charge par les principaux navigateurs : Internet Explorer (IE6, IE7, IE8, IE9), Firefox, Chrome, Safari et Opera. Le livre est ensuite divisé en trois parties : 1) tirer [...]]]></description>
			<content:encoded><![CDATA[<p>Je viens de terminer le dernier livre de <a href="http://www.goetter.fr/">Raphaël Goetter</a> intitulé <a href="http://www.eyrolles.com/Informatique/Livre/css-avancees-9782212128260">CSS avancées. Vers HTML5 et CSS3</a> paru aux <a href="http://www.eyrolles.com/">Editions Eyrolles</a> mi-mars 2011 et préfacé par <a href="http://www.glazman.org/weblog/">Daniel Glazman</a>. Ce livre n&#8217;est pas une simple mise à jour de <em>CSS2, pratique du design web</em> paru en 2005 ; il s&#8217;agit d&#8217;une refonte totale avec une orientation «utilisateurs avancés». L&#8217;auteur commence par un état des lieux sur les standards du web et leur prise en charge par les principaux navigateurs : Internet Explorer (IE6, IE7, IE8, IE9), Firefox, Chrome, Safari et Opera. Le livre est ensuite divisé en trois parties : 1) tirer le meilleur de CSS, 2) HTML5 et CSS3 : l&#8217;innovation en marche, et 3) CSS et applications spécifiques.<span id="more-9640"></span></p>

<h2>Tirer le meilleur de CSS</h2>

<p>La première partie devrait à elle seule déclencher l&#8217;acte d&#8217;achat. Raphaël passe en revue les propriétés CSS 2.1 dont l&#8217;intégrateur HTML &amp; CSS s&#8217;est privé pendant des années à cause de leur manque d&#8217;implémentation dans IE6 et IE7, bons derniers de la classe à l&#8217;école des standards&#8230; A nous, désormais, les joies procurées par l&#8217;utilisation de sélecteurs sur lesquels nous faisions l&#8217;impasse : sélecteur d&#8217;enfant, sélecteur de frère adjacent, sélecteur d&#8217;attribut, :first-letter et first-line, :first-child, :focus, :before et :after, règle «@» diverses et variées.</p>

<p>Selon votre politique de prise en compte des versions d&#8217;Internet Explorer, vous pourrez utiliser tout ou partie de ces «nouveaux» jouets. Le niveau de support spécifique de tel ou tel sélecteur par les versions d&#8217;IE est précisé à chaque fois au fil de la lecture. Notons qu&#8217;il devient de plus en plus courant de délaisser IE6 et de prévoir une dégradation gracieuse pour IE7, ce qui permet d&#8217;utiliser à fond la spécification des CSS 2.1 prise en charge par IE8 et les autres navigateurs modernes.</p>

<h2>HTML5 et CSS3 : l&#8217;innovation en marche</h2>

<p>Cette partie fait le point sur les nouveautés qui arrivent dans le sillage de HTML5 : la syntaxe, les nouvelles balises sémantiques pour structurer les contenus, avec un focus particulier sur les balises video, audio et canvas, les nouveaux attributs de formulaires, etc.</p>

<p>Après HTML5, le livre présente CSS3. Toutes les nouveautés passent sur le grill bien chaud de Raphaël qui en profite pour nous faire saliver avec ses recettes «maison» et ses tours de main, pour que nous aussi, devenions des chefs en CSS ! Toujours très pragmatique, le livre donne dans cette partie &#8212; comme dans les autres  &#8211;, des bonnes adresses permettant de prendre en compte les navigateurs anciens via Javascript, ou des composants HTC.</p>

<h2>CSS et applications spécifiques</h2>

<h3>Web mobile</h3>

<p>Cette dernière partie aborde le web mobile avec les défis qu&#8217;il lance à l&#8217;intégrateur web et les solutions qu&#8217;il peut mettre en oeuvre pour tenir compte du parc hétérogène des téléphones portables plus ou moins «smarts» et des tablettes tactiles aux formats et résolutions d&#8217;écran disparates.</p>

<h3>CSS Print</h3>

<p>Les CSS pour l&#8217;impression ne sont pas oubliées. Il est vrai qu&#8217;elles sont souvent le parent pauvre des CSS en dépit de leur utilité indiscutable. Surtout quand on pense que le web &#8212; loin d&#8217;avoir diminué les besoins en ressources de la planète &#8211;, n&#8217;a fait qu&#8217;augmenter l&#8217;utilisation de l&#8217;encre et du papier ainsi que l&#8217;énergie nécessaire à leur production :-(</p>

<p>Profitons donc de <code>@media print</code> pour limiter l&#8217;utilisation de l&#8217;encre en éliminant les couleurs, les aplats et tout ce qui n&#8217;est pas utile dans le contexte de l&#8217;impression.</p>

<h3>Lecteurs de mails et CSS</h3>

<p>Créer des <em>Newsletters</em> ou tout autre document susceptible de s&#8217;afficher sur un client de messagerie est une épreuve que je ne souhaite à personne. Et pour cause : à côté des clients de messagerie de bureau comme Lotus ou Outlook et certains services de messagerie en ligne, IE6 fait figure de champion du monde ! Bref, c&#8217;est galère, mais il est possible de s&#8217;en sortir en suivant les conseils de conception de page web pour les clients mail de ce livre.</p>

<h2>En deux mots</h2>

<p><em>CSS avancées, vers HTML5 et CSS3</em> est un des rares livres indispensables que tout intégrateur web devrait avoir à portée de main. Raphaël Goetter sait comment expliquer les concepts flous des spécifications (et il y a !) avec humour et simplicité tout en restant didactique. Le livre est à priori destinés aux utilisateur avancés, mais devrait rester accessible aux jeunes «padawans». Toutefois, je recommande fortement à ces derniers la lecture de la 3ème édition de <a href="http://www.eyrolles.com/Informatique/Livre/css-2-pratique-du-design-web-9782212132571">CSS2 &#8212; Pratique du design web</a> qui vient d&#8217;être rééditée au format semi-poche le 31 mars 2011 !</p>

<h2>Informations pratiques</h2>

<p><a href="http://css.4design.tl/files/2011/04/livre-css-avancees-html5-css3.jpg"><img class="size-medium wp-image-9646 alignleft" src="http://css.4design.tl/files/2011/04/livre-css-avancees-html5-css3-134x163.jpg" alt="Livre css avancées html5 css3" width="134" height="163" /></a></p>

<h3><a href="http://www.eyrolles.com/Informatique/Livre/css-avancees-9782212128260">CSS avancées. Vers HTML 5 et CSS 3</a></h3>

<ul>
    <li>Auteur(s) : <a href="http://www.eyrolles.com/Accueil/Auteur/raphael-goetter-57569">Raphaël Goetter</a></li>
    <li>Editeur : <a href="http://www.eyrolles.com/Accueil/Editeur/6/eyrolles.php">Eyrolles</a></li>
    <li><a href="http://www.eyrolles.com/Accueil/Editeur/6/eyrolles.php"></a>Nombre de pages : 400 pages</li>
    <li>Date de parution : 17/03/2011</li>
    <li>Extraits au format PDF disponibles sur <a href="http://www.eyrolles.com/Informatique/Livre/css-avancees-9782212128260">la fiche du livre</a></li>
    <li>EN COULEUR !</li>
</ul>

<p>&nbsp;</p>

<p>&nbsp;</p>

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

<ul class='related_post'><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/le-petit-journal-du-web-fevrier-2011' title='Journal &#8212; « Typographie, HTML5 Boilerplate, Reset CSS, Clearfix, CSS3, Photoshop »'>Journal &#8212; « Typographie, HTML5 Boilerplate, Reset CSS, Clearfix, CSS3, Photoshop »</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><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></ul>
 <p><a href="http://css.4design.tl/?flattrss_redirect&amp;id=9640&amp;md5=c9e29eef3ec21a67805319f39fc4db88" 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/livre-css-avancees-vers-html5-et-css3/feed</wfw:commentRss>
		<slash:comments>9</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%2Flivre-css-avancees-vers-html5-et-css3&amp;language=fr_FR&amp;category=text&amp;title=Notes+de+lecture+%26%238212%3B+Livre+CSS+avanc%C3%A9es%2C+vers+HTML5+et+CSS3&amp;description=Je+viens+de+terminer+le+dernier+livre+de+Rapha%C3%ABl+Goetter+intitul%C3%A9+CSS+avanc%C3%A9es.+Vers+HTML5+et+CSS3+paru+aux+Editions+Eyrolles+mi-mars+2011+et+pr%C3%A9fac%C3%A9+par+Daniel+Glazman.+Ce+livre...&amp;tags=%3Aafter%2C%3Abefore%2C%3Afirst-child%2C%3Afirst-letter%2CCSS%2CCSS3%2CEyrolles%2CFirefox%2Cfirst-line%2CFocus%2CGoogle+Chrome%2CHTML5%2CIE6%2CIE7%2CIE8%2CIE9%2CLivre%2CMail%2CMobile%2CNote+de+lecture%2COpera%2CPrint%2Cblog" type="text/html" />
	</item>
		<item>
		<title>5 Reset CSS à la loupe pour une remise à zéro des valeurs par défaut des navigateurs</title>
		<link>http://css.4design.tl/5-reset-css-a-la-loupe-pour-une-remise-a-zero-des-valeurs-par-defaut-des-navigateurs</link>
		<comments>http://css.4design.tl/5-reset-css-a-la-loupe-pour-une-remise-a-zero-des-valeurs-par-defaut-des-navigateurs#comments</comments>
		<pubDate>Tue, 14 Aug 2007 02:51:45 +0000</pubDate>
		<dc:creator>Bruno Bichet</dc:creator>
				<category><![CDATA[HTML & CSS]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Eric Meyer]]></category>
		<category><![CDATA[Focus]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Navigateur]]></category>
		<category><![CDATA[Reset CSS]]></category>
		<category><![CDATA[Standards web]]></category>
		<category><![CDATA[Tableaux]]></category>
		<category><![CDATA[Tutoriels]]></category>
		<category><![CDATA[XHTML]]></category>

		<guid isPermaLink="false">http://www.css4design.com/blog-reloaded/?p=87</guid>
		<description><![CDATA[Vous n&#8217;utilisez pas de styles CSS pour votre page web ? Ce n&#8217;est pas grave : les navigateurs le font pour vous. Ils utilisent chacun leur feuille de style par défaut pour obtenir un rendu visuel minimal. C&#8217;est pourquoi les tableaux possèdent des bordures, et les paragraphes des espaces avant et après. Le problème ? Si des balises comme strong ou em sont traitées de la même manière par les agents utilisateurs, l&#8217;immense majorité présente des différences plus ou moins importantes. Ce fameux manque de &#171;&#160;consistance&#160;&#187; décrié par les webdesigners anglo-saxons concerne principalement les propriétés margin et padding. Avec une [...]]]></description>
			<content:encoded><![CDATA[<p>Vous n&#8217;utilisez pas de styles CSS pour votre page web ? Ce n&#8217;est pas grave : les navigateurs le font pour vous. Ils utilisent chacun leur feuille de style par défaut pour obtenir un rendu visuel minimal. C&#8217;est pourquoi les tableaux possèdent des bordures, et les paragraphes des espaces avant et après. Le problème ? Si des balises comme <code>strong</code> ou <code>em</code> sont traitées de la même manière par les agents utilisateurs, l&#8217;immense majorité présente des différences plus ou moins importantes. Ce fameux manque de &laquo;&nbsp;consistance&nbsp;&raquo; décrié par les webdesigners anglo-saxons concerne principalement les propriétés <code>margin</code> et <code>padding</code>. Avec une pensée particulière pour le retrait des listes <code>ol</code> et <code>ul</code> : si <acronym title="Internet Explorer">IE</acronym> applique bien le <code>margin-left: 40px</code> préconisé, Firefox utilise quant à lui un <code>padding-left: 40px</code> pour le même rendu. Dans ces conditions, il est tentant de vouloir mettre tous ces agents utilisateurs au garde-à-vous&#8230;<span id="more-119"></span></p>

<p>Dans leur grande sagesse <a href="http://www.w3.org/">les concepteurs</a> du <acronym title="Hyper Text Markup Language">HTML</acronym> ont fourni un <a href="http://www.w3.org/TR/CSS21/sample.html">exemple de feuille de style</a> pour uniformiser le rendu visuel des pages web ; dans leur précipitation à sortir leur produit avant la concurrence, les concepteurs des navigateurs ont fait ce qu&#8217;ils ont voulu. Enfin, il est aussi possible que les spécifications &#8211; parfois sibyllines &#8211; du monde joyeux des recommandations puissent être interprétées de diverses manières&#8230;</p>

<h3>Prudence est mère de sûreté&#8230;</h3>

<p>Il ne faut pas confondre ces différences de rendu entre les navigateurs avec les <a href="http://www.positioniseverything.net/explorer.html">nombreux <em>bugs</em> qui affectent particulièrement <acronym title="Internet Explorer">IE</acronym></a> comme <a href="http://edu.ca.edu/article258.html">le calcul de la largeur d&#8217;une boite</a>. Gardez également à l&#8217;esprit que l&#8217;on peut très bien <a href="http://css.alsacreations.com/Bases-et-indispensables/Le-rendu-par-defaut-des-elements-HTML">travailler avec ces valeurs par défaut</a> au lieu de les éliminer, et que <strong>faire <em>reset</em>, ce n&#8217;est pas toujours <em>rigolo</em></strong> : il s&#8217;agit d&#8217;une <a href="http://blog.alsacreations.com/2007/07/02/369-reset-css-une-technique-a-manier-avec-precaution">technique à manier avec précaution</a>.</p>

<p>D&#8217;autant plus que la majorité des problèmes rencontrés est souvent liée à la <a href="http://css.alsacreations.com/Tutoriels-et-articles-divers/Comprendre-l-heritage-et-la-parente-des-styles-CSS">transmission de l&#8217;héritage entre parents et enfants</a>. Faire table rase, d&#8217;accord, encore faut-il savoir de quoi ^__^ Une autre notion indispensable : avoir une idée des possibilités d&#8217;imbrication des balises.</p>

<p>Voici un récapitulatif de <a href="http://blog.alsacreations.com/2004/09/09/58-parents-et-enfants">qui contient quoi</a>, ainsi qu&#8217;une référence complète sur les <a href="http://giminik.developpez.com/xhtml/">attributs et relations de parenté des éléments XHTML 1.1</a>.</p>

<p>La Cascade (le <em>C</em> de CSS) est une autre source de confusion. <a href="http://openweb.eu.org/articles/cascade_css/">Openweb a consacré un article intéressant</a> qui explique comment sont &laquo;&nbsp;priorisés&nbsp;&raquo; les différents styles qui peuvent s&#8217;appliquer à un élément.</p>

<p>Pour faire simple : <strong>si vous débutez l&#8217;apprentissage des CSS, je vous déconseille fortement de mettre un <em>reset</em> dans votre moteur</strong>, même s&#8217;il semble ronronner affectueusement au début. Nul doute que dès que vous aurez le dos tourné&#8230; Enfin maintenant si vous insistez, je vous ai préparé un mini dossier sur le sujet :</p>

<ul>
    <li><a href="#margin-padding-zero">margin et padding à zéro avec le sélecteur universel</a></li>
    <li><a href="#reset-css-reloaded">Reset CSS Reloaded, Eric Meyer</a></li>
    <li><a href="#css-initial">INITIAL, Christian Montoya</a></li>
    <li><a href="#yui-reset-css">YUI Reset CSS, Yahoo! UI Library</a></li>
    <li><a href="#undo-html-css">undohtml.css, Tantek Celik</a></li>
</ul>

<h3 id="margin-padding-zero">Remise à zéro du margin et du padding avec le sélecteur universel <code>*</code></h3>

<p>Cette méthode a le mérite de la concision et de la simplicité :</p>

<p><pre>&#42; {
  margin: 0;
  padding: 0;
}</pre>
Ici, le sélecteur universel met toutes les balises html d&#8217;accord sur les marges et les retraits : il n&#8217;y en aura pas ! La propriété <code>margin</code> correspond à l&#8217;espace laissé ou pas entre deux éléments. La propriété <code>padding</code> concerne l&#8217;espace à l&#8217;intérieur d&#8217;un élément entre la bordure et les éléments qu&#8217;il contient. Pour s&#8217;éclaircir les idées, je vous propose de jeter un œil sur la représentation visuelle du <a href="http://www.yoyodesign.org/doc/w3c/css2/box.html">modèle de boite</a> (<em>box model</em>).</p>

<h4>Et <code>border: 0</code> ?</h4>

<p>Oui, il est possible d&#8217;ajouter <code>border: 0</code> pour s&#8217;assurer que les éléments n&#8217;auront pas de bordures indésirables. Comme cette dernière déclaration est de plus en plus utilisée, voici la liste des éléments qu&#8217;elle concerne afin que vous jugiez de sa pertinence :</p>

<ul>
    <li><code>input</code></li>
    <li><code>textarea</code></li>
    <li><code>select</code></li>
    <li><code>button</code></li>
    <li><code>table</code></li>
    <li><code>fieldset</code></li>
    <li><code>abbr</code></li>
    <li><code>hr</code></li>
    <li><code>img</code> et <code>object</code> (si lien)</li>
    <li><code>iframe</code></li>
</ul>

<h4>Redonner des couleurs à vos balises</h4>

<p>Reste à redonner à ces balises un rendu plus agréable en regroupant, par exemple, les éléments qui partagent <strong>les mêmes valeurs tout au long du site web</strong> :</p>

<ul>
    <li>Différents niveaux de titre <code>h1</code> &#8211; <code>h6</code>,</li>
    <li>Conteneurs de texte comme <code>p</code>, <code>blockquote</code>, <code>pre</code>, <code>code</code>, <code>address</code>, <code>hr</code>, <code>form</code>,</li>
    <li>Listes avec <code>dl</code>, <code>ul</code>, <code>ol</code>,</li>
    <li>Eléments en ligne tels que <code>strong</code>, <code>cite</code>, <code>em</code>, <code>var</code>, <code>samp</code>,</li>
    <li>Etc.</li>
</ul>

<p>Selon le document, il pourrait être tout aussi judicieux de regrouper les éléments suivants :</p>

<ul>
    <li>Balises <code>ul</code> et <code>ol</code> dans la <em>sidebar</em></li>
    <li>Balises identiques dans la zone de contenu principal</li>
    <li>etc.</li>
</ul>

<p>Une autre méthode inspirée par le billet paru sur <a href="http://www.pixenjoy.com/reinitialisation-des-elements-html">pixenjoy</a> est de reprendre la <a href="http://www.w3.org/TR/CSS21/sample.html">feuille de style</a> proposée par le <acronym title="World Wide Web Consortium">W3C</acronym> qui peut avantageusement servir de modèle pour avoir la liste des éléments HTML concernés par cette remise à zéro des marges et retraits.</p>

<h4>Une technique obsolète ?</h4>

<p>Malgré son apparente simplicité et efficacité, <a href="http://developer.mozilla.org/en/docs/Writing_Efficient_CSS#Avoid_Universal_Rules.21">cette méthode n&#8217;est pas la panacée</a> : un navigateur comme Firefox consomme de précieuses ressources à boucler sur toutes les balises. Par ailleurs, un travail important reste à faire pour restyler les balises (même si ce travail n&#8217;est pas à refaire complètement à chaque nouveau projet). Quoiqu&#8217;il en soit, je vous propose de mettre cette technique de côté pour tester d&#8217;autres méthodes.</p>

<h3 id="reset-css-reloaded">Reset CSS Reloaded d&#8217;Eric Meyer</h3>

<p>Vous aurez peut-être remarqué que si l&#8217;ajout de <code>border: 0</code> peut apporter un plus dans la remise à zéro des éléments, d&#8217;autres propriétés pourraient elles aussi gagner à être réinitialisées. C&#8217;est sûrement ce que c&#8217;est dit Eric Meyer lorsqu&#8217;il s&#8217;est penché sur son Reset CSS. (</p>

<p>L&#8217;exemple suivant est la version 2.0 du 26/01/2011, cf. <a href="http://meyerweb.com/eric/tools/css/reset/">http://meyerweb.com/eric/tools/css/reset</a> :</p>

<p><pre>
/* http://meyerweb.com/eric/tools/css/reset/ 
   v2.0 | 20110126
   License: none (public domain)
*/</p>

<p>html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed, 
figure, figcaption, footer, header, hgroup, 
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
    margin: 0;
    padding: 0;
    border: 0;
    font-size: 100%;
    font: inherit;
    vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure, 
footer, header, hgroup, menu, nav, section {
    display: block;
}
body {
    line-height: 1;
}
ol, ul {
    list-style: none;
}
blockquote, q {
    quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
    content: '';
    content: none;
}
table {
    border-collapse: collapse;
    border-spacing: 0;
}
</pre>
L&#8217;idée est à la fois d&#8217;aller plus loin dans les propriétés à inclure tout en étant plus sélectif en tenant compte de certaines spécificités.</p>

<h4>Reset again</h4>

<p>Dans un premier temps, pas de surprise, nous retrouvons la remise des margin, padding et border à zéro, suivie de près par un outline: 0 qui sert généralemement à afficher un cadre pointillé lorsqu&#8217;on maintient le bouton de la souris appuyé sur un lien (:active, quoi ;) ). Ne pas confondre avec le même cadre qui apparait quand le lien a le <em>focus</em>, via la touche TAB, même s&#8217;il s&#8217;agit de la même déclaration outline: 1px dotted invert. La pseudo-classe :focus est également remise à zéro pour l&#8217;ensemble des éléments via :focus { outline: 0 }.</p>

<h4>Héritez, qu&#8217;y disait&#8230;</h4>

<p>Viennent ensuite les propriétés relatives à font : on s&#8217;assure qu&#8217;elles seront bien héritées par les éléments parfois récalcitrants (certains éléments de formulaire). La taille 100% sert à la fois à obtenir une valeur &laquo;&nbsp;héritable&nbsp;&raquo; par les balises filles et avoir une taille par défaut pour l&#8217;ensemble de la page web. Si vous préférez partir avec un corps inférieur, rien ne vous empêche de spécifier 62.5% pour avoir une taille par défaut de 10px env. ou 75% pour obtenir 12px. Sachant que si vous pouvez vous débrouiller pour fournir une <a href="http://www.css4design.com/index.php/2007/08/10/114-5-regles-simples-pour-gerer-l-affichage-de-votre-texte-dans-vos-mises-en-page">taille de texte</a> généreuse à vos lecteurs, ils vous le rendront bien.</p>

<h4>Je ne veux voir qu&#8217;une tête !</h4>

<p>Nous terminons cette première partie avec vertical-align: baseline qui permet d&#8217;harmoniser l&#8217;<a href="http://stylescss.free.fr/vertical-align.php">alignement des éléments</a> en ligne au sein d&#8217;une boite. Il s&#8217;agit de la valeur par défaut pour aligner la ligne de base du texte avec le bas d&#8217;une image placée à côté.</p>

<h4>Avez-vous la <em>quote</em> ?</h4>

<p>Les dernières règles s&#8217;appliquent aux éléments blockquote et q dont on supprime préventivement le contenu &laquo;&nbsp;éventuellement&nbsp;&raquo; généré avant ou après, puis dans un second temps, on supprime les guillemets ouvrants et fermants. Tout ce que vous avez toujours voulu savoir sur ces éléments se trouve sur la page web de <a href="http://www.yoyodesign.org/">yoyodesign</a> consacrée au <a href="http://www.yoyodesign.org/doc/w3c/css2/generate.html">contenu généré, au numérotage automatique et aux listes</a>.</p>

<h4 id="line-height">Y a pas un problème avec la valeur de line-height ?</h4>

<p>La curiosité de cette feuille de style, est la présence d&#8217;une valeur sans unité de mesure (line-height: 1) qui mérite <a href="http://meyerweb.com/eric/thoughts/2006/02/08/unitless-line-heights/">quelques explications</a>. Pour ceux qui ne sont pas à l&#8217;aise avec l&#8217;anglais, j&#8217;ai repris les exemples donnés sur la page citée précédemment qui parlent d&#8217;eux-mêmes :</p>

<h4>En utilisant line-height: 1em</h4>

<p>La règle CSS suivante&#8230;
<pre>ul {
  font-size: 15px;
  line-height: 1em;
}
li {
  font-size: 10px;
}
small {
  font-size: 80%;
}</pre>
&#8230; est équivalente à&#8230;
<pre>ul {
  font-size: 15px;
  line-height: 1em;
}
li {
  font-size: 10px;
  line-height: 15px;
}
small {
  font-size: 80%;
  line-height: 15px;
}</pre>
&#8230; appliquée sur l&#8217;exemple html suivant :
<pre>&lt;ul&gt;
  &lt;li&gt;I'm a list item with &lt;small&gt;small text&lt;/small&gt;.&lt;/li&gt;
&lt;/ul&gt;</pre></p>

<h4>En utilisant line-height: 1</h4>

<p>Appliquée sur l&#8217;exemple html précédent, la règle CSS suivante&#8230;
<pre>ul {
  font-size: 15px;
  line-height: 1;
}
li {
  font-size: 10px;
}
small {
  font-size: 80%;
}</pre>
&#8230; est équivalente à :
<pre>ul {
  font-size: 15px;
  line-height: 1;
}
li {
  font-size: 10px;
  line-height: 10px;
}
small {
  font-size: 80%;
  line-height: 8px;
}</pre>
<em>Grosso modo</em> : lorsque l&#8217;on ne précise pas l&#8217;unité de mesure après line-height (ce qui est parfaitement conforme aux spécifications, même si les validateurs ne le savent pas toujours) la valeur fonctionne comme un facteur multiplicateur, contrairement à l&#8217;unité em qui produit une valeur calculée qui se répercute ensuite sur les balises enfants par le jeu de la cascade.</p>

<p>C&#8217;est une spécificité de la propriété line-height qui est la seule à accepter une valeur brute. Car, vous l&#8217;avez sans doute remarqué, mais spécifier 2em sur une taille de police a bien un effet multiplicateur par rapport à la valeur dont elle hérite au départ :
<pre>body {
  font-size: 12px;
}
h1 {
  font-size: 2em;
}</pre>
Dans cette exemple, l&#8217;élément h1 a bien une taille de 24px.</p>

<h4>En finir avec le reset-reloaded ?</h4>

<p>Le défaut essentiel de ce reset est aussi sa principale qualité : il déshabille carrément les balises de leurs attributs les plus usuels, jusqu&#8217;à ceux dont on n&#8217;avait pas vraiment conscience (:focus, :before, :after, quotes, etc.). Ceci permet de prendre conscience que le fonctionnement &laquo;&nbsp;naturel&nbsp;&raquo; de nos chères balises html ne l&#8217;est pas tant que ça&#8230;</p>

<p>Par ailleurs, à force de lire un peu partout qu&#8217;il ne faut pas mélanger la sémantique des balises html avec leur rendu visuel, je me dis que le <em>full monty</em> proposé par Eric Meyer va dans le bon sens en nous obligeant à en apprendre un peu plus sur le HTML et les CSS (trollinou inside) ^_^v.</p>

<p>Eric Meyer considère toute utilisation des styles par défaut comme une béquille qui nous rend dépendant du bon vouloir des navigateurs (ce qui n&#8217;est pas totalement faux). Toutefois, comme le précise, <a href="http://www.blog-and-blues.org/">Laurent Denis</a>, a-t&#8217;on vraiment besoin de vouloir garder la maitrise des éléments à ce point-là ou lieu de <a href="http://openweb.eu.org/articles/lacher_prise/">lâcher prise</a> ? Pour finir de vous détendre, méditez cette phrase extraite de l&#8217;excellent article <a href="http://pompage.net/pompe/tao/">le tao du design web</a> :</p>

<blockquote>accepte le flot et le cours des choses,
les entoure, mais ne les possède pas,</blockquote>

<p>En attendant d&#8217;arriver à ce degré de sagesse dont il faudrait que nos bien-aimés clients et patrons soient aussi imprégnés, revenons vers le côté obscur de la force avec un autre <em>reset</em> à nous mettre sous le clavier ;)</p>

<h3 id="css-initial">INITIAL de Christian Montoya</h3>

<p>Cette remise à zéro est proposée par Faruk Ates, amendée par <a href="http://www.robertnyman.com">Robert Nyman</a> et <a href="http://www.christianmontoya.com/2007/02/01/css-techniques-i-use-all-the-time/">Christian Montoya</a>. Plus qu&#8217;un <em>reset</em> radical, il s&#8217;agit plutôt d&#8217;un feuille de style minimale située entre la remise des marges à zéro et le <em>reset-reloaded</em>. Mais jugez plutôt :
<pre>// =INITIAL   v2.1,
// by Faruk Ates - www.kurafire.net
// Addendum by Robert Nyman - www.robertnyman.com
// Addition by Christian Montoya - www.christianmontoya.net</p>

<p>// Neutralize styling:   Elements we want to clean out entirely:
html, body, form, fieldset {
   margin: 0;
   padding: 0;
   font: 100%/120% Verdana, Arial, Helvetica, sans-serif;
 }</p>

<p>// Neutralize styling:   Elements with a vertical margin:
h1, h2, h3, h4, h5, h6, p, pre, blockquote, ul, ol, dl, address {
   margin: 1em 0;
   padding: 0;
 }</p>

<p>// Apply left margin:   Only to the few elements that need it:
li, dd, blockquote {
   margin-left: 1em;
 }</p>

<p>// Miscellaneous conveniences:
form label {
   cursor: pointer;
}
fieldset {
   border: none;
}
input, select, textarea {
   font-size: 100%;
   font-family: inherit;
}</pre>
Ici, le reset est plus sélectif : dans un premier temps, seuls certains éléments de type blocs sont touchés par la remise à zéro des marges et retraits. Ensuite, les éléments sont regroupés en fonction des marges qu&#8217;ils ont en commun : d&#8217;une part, ceux qui partagent les mêmes espaces avant et après, et d&#8217;autre part, ceux qui sont généralement représentés avec un retrait à gauche. Ces derniers héritent des valeurs margin: 1em 0 et padding: 0 spécifiées juste avant.</p>

<p>Un autre avantage d&#8217;INITIAL sur le <em>Reset-Reloaded</em>, est que les éléments en ligne ne sont pas affectés, ce qui est une bonne chose, vu le peu de différences de rendu qu&#8217;ils présentent d&#8217;un navigateur à l&#8217;autre.</p>

<p>Personnellement, je trouve cette approche plus élégante que le <em>reset reloaded</em> : plus &laquo;&nbsp;lisible&nbsp;&raquo; donc plus maniable, notamment en ce qui concerne son &laquo;&nbsp;extensibilité&nbsp;&raquo; car on peut même lui ajouter certaines trouvailles d&#8217;Eric Meyer comme :</p>

<ul>
    <li>spécifier une valeur brute pour line-height : 1.4 à la place de la valeur &laquo;&nbsp;INITIAL&nbsp;&raquo; de 120%,</li>
    <li>prendre en compte les éléments table, tr ,td ou caption,</li>
    <li>enlever les puces des listes,</li>
    <li>etc&#8230;</li>
</ul>

<p>&#8230; afin de construire une feuille de style de base reprenant par exemple le <em>reset</em> de Faruk, puis en ajoutant certains éléments prélevés dans le <em>Reset-Reloaded</em> (Ex. 1) ou encore d&#8217;autres règles CSS récurrentes (Ex. 2). L&#8217;idée est d&#8217;obtenir une sorte de tableau de bord CSS où la modification de certaines valeurs-clés permet de gérer des maquettes différentes. Je précise qu&#8217;il s&#8217;agit juste d&#8217;un exemple pour insister sur le fait que <strong>c&#8217;est au reset de s&#8217;adapter à vos besoins, et non le contraire</strong> ;)
<pre>Ex. 1
ol, ul {
  list-style: none;
}</p>

<p>// tables still need 'cellspacing="0"' in the markup
// j'ai modifié les valeurs, car il est bon que les tableaux soient visibles !
table {
  border-collapse: collapse;
  border-spacing: 1px;
}
caption, th, td {
  text-align: left;
  font-weight: normal;
}</pre>
<pre>Ex. 2
// Couleurs à adapter selon votre charte
a {text-decoration: none;}
a:link {color: #000;}
a:visited {color: #000;}
a:hover {color: #000;}
a:active {color: #000;}
img, iframe, object {border: 0 none;}
input, textarea, select, button, {border: 1px solid #000;
}</pre>
Dans les styles de cet <em>Ex. 2</em>, j&#8217;ai spécifié des valeurs pour les différents états des liens conformément à l&#8217;ordre <a href="http://www.d.umn.edu/itss/support/Training/Online/csstips/lovehate.html">LoVe(F)HAte</a>, et redéfini en deux fois les bordures pour les éléments qui en possèdent par défaut. Par ailleurs, je rajouterais bien la balise div à la suite de l&#8217;élément body car &#8211; même si cet élément n&#8217;est pas censé avoir de marge -, force est de constater que lorsque deux images doivent se raccorder, il reste souvent un décalage d&#8217;un pixel qui disparait comme par magie avec margin: 0.</p>

<h3 id="yui-reset-css">YUI Reset CSS de Yahoo! UI Library</h3>

<p>Parmi les Reset CSS existants, on trouve la <a href="http://developer.yahoo.com/yui/reset/">contribution de Yahoo!</a> qui propose dans son pack <a href="http://developer.yahoo.com/yui/">Yahoo! UI Library</a> une technique pour réinitialiser les éléments html qui manquent de &laquo;&nbsp;consistance&nbsp;&raquo; d&#8217;un navigateur à l&#8217;autre.
<pre>body, div, dl, dt, dd, ul, ol, li, h1,
h2, h3, h4, h5, h6, pre,
form, fieldset, input, textarea,
p, blockquote, th, td {
  margin: 0;
  padding: 0;
 }
table {
  border-collapse: collapse;
  border-spacing: 0;
 }
fieldset, img {
  border: 0;
 }
address, caption, cite, code, dfn, em, strong, th, var {
  font-style: normal;
  font-weight: normal;
 }
ol, ul {
  list-style: none;
 }
caption, th {
  text-align: left;
 }
h1, h2, h3, h4, h5, h6 {
  font-size: 100%;
  font-weight: normal;
}
q:before,
q:after {
  content: '';
}
abbr, acronym {
  border: 0;
}</pre>
Les choix en matière de remise à zéro sont discutables (il faut redéfinir jusqu&#8217;à la mise en gras pour strong et définir les tailles des polices pour les éléments hn), mais ce reset est accompagné d&#8217;une proposition de mise en forme pour les autres éléments html dont on peut s&#8217;inspirer en fonction du reset choisi (pour des raisons de lisibilité j&#8217;ai revu la mise en forme de départ et supprimé la plupart des commentaires) :</p>

<h4><a href="http://developer.yahoo.com/yui/base/">base.css</a></h4>

<p><pre>// base.css, part of YUI's CSS Foundation</p>

<p>h1 {font-size: 138.5%; /* 18px via <a href="http://developer.yahoo.com/yui/fonts/">YUI Fonts CSS foundation</a> <em>/}
h2 {font-size: 123.1%; /</em> 16px via YUI Fonts CSS foundation <em>/}
h3 {font-size: 108%; /</em> 14px via YUI Fonts CSS foundation */}
h1, h2, h3 {margin: 1em 0;}
h1, h2, h3, h4, h5, h6, strong {font-weight: bold;}
abbr, acronym {
  border-bottom: 1px dotted #000;
  cursor: help;
}
em {font-style: italic;}
blockquote, ul, ol, dl {margin: 1em;}
ol, ul, dl {margin-left: 2em;}
ol li {list-style: decimal outside;}
ul li {list-style: disc outside;}
dl dd {margin-left: 1em;}
th, td {
  border: 1px solid #000;
  padding: 0.5em;
}
th {
  font-weight: bold;
  text-align: center;
}
caption {
  margin-bottom: 0.5em;
  text-align: center;
}
p, fieldset, table {margin-bottom: 1em;
}</pre>
Le site de <a href="http://developer.yahoo.com/">Yahoo! pour les développeurs web</a> propose des informations complémentaires sur la gestion d&#8217;une <a href="http://developer.yahoo.com/yui/grids/">grille de mise en page</a> et des <a href="http://developer.yahoo.com/yui/fonts/">polices de caractère</a>.</p>

<h3 id="undo-html-css"><a href="http://tantek.com/log/2004/undohtml.css">undohtml.css</a> de <a href="http://tantek.com/log/2004/09.html#d06t2354">Tantek Celik</a></h3>

<p>Peut-être le plus ancien Reset CSS. Pour des raisons de lisibilité, j&#8217;ai revu l&#8217;organisation visuelle des commentaires.
<pre>// undohtml.css (CC) 2004 Tantek Celik.
// Some Rights Reserved. http://creativecommons.org/licenses/by/2.0
// This style sheet is licensed under a Creative Commons License.
// Purpose: undo some of the default styling of common (X)HTML browsers *//</p>

<p>// link underlines tend to make hypertext less readable,
// because underlines obscure the shapes of the lower halves of words
:link, :visited {text-decoration: none;}</p>

<p>// no list-markers by default, since lists are used more often for semantics
ul, ol {list-style: none;}</p>

<p>// avoid browser default inconsistent heading font-sizes and pre/code too
h1, h2, h3, h4, h5, h6, pre, code {font-size: 1em;}</p>

<p>// remove the inconsistent (among browsers)
// default ul,ol padding or margin the default spacing on headings
// does not match nor align with normal interline spacing at all,
// so let's get rid of it. zero out the spacing around pre, form, body, html, p, blockquote
// as well form elements are oddly inconsistent, and not quite CSS emulatable. nonetheless
// strip their margin and padding as well
ul, ol, li, h1, h2, h3, h4, h5, h6, pre,
form, body, html, p, blockquote, fieldset, input {
  margin: 0;
  padding: 0;
}</p>

<p>// whoever thought blue linked image borders were a good idea?
a img, :link img, :visited img {border: none }</p>

<p>// de-italicize address
address {font-style: normal;}</p>

<p>// more varnish stripping as necessary...</pre></p>

<h3>C&#8217;est reparti pour un tour ?</h3>

<ul>
    <li><a href="#margin-padding-zero">margin et padding à zéro avec le sélecteur universel</a></li>
    <li><a href="#reset-css-reloaded">Reset CSS Reloaded, Eric Meyer</a></li>
    <li><a href="#css-initial">INITIAL, Christian Montoya</a></li>
    <li><a href="#yui-reset-css">YUI Reset CSS, Yahoo! UI Library</a></li>
    <li><a href="#undo-html-css">undohtml.css, Tantek Celik</a></li>
</ul>

<h3>Pour conclure</h3>

<p>Ni liste exhaustive ni comparatif point par point, j&#8217;ai essayé de faire le tour des Reset CSS les plus utilisés en espérant avoir fourni quelques informations utiles sur les techniques existantes et leur fonctionnement. J&#8217;espère surtout que ce billet vous aura donné des éléments de réflexion pour vous en passer lorsque ce n&#8217;est pas nécessaire ;) Ce billet pose certainement plus de questions qu&#8217;il n&#8217;apporte de réponses car un Reset ne dispense pas de réfléchir à l&#8217;<a href="http://www.css4design.com/organiser-ses-feuilles-de-style-css">organisation de ses CSS</a>, bien au contraire !</p>

<p><em>Stay tuned and mind the gap!</em></p>

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

<ul class='related_post'><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/quelques-notes-sur-la-bibliotheque-javascript-ie7-de-dean-edwards' title='Quelques notes sur la bibliothèque Javascript IE7 de Dean Edwards'>Quelques notes sur la bibliothèque Javascript IE7 de Dean Edwards</a></li><li><a href='http://css.4design.tl/apres-reset-reloaded-eric-meyer-fait-risette-avec-resetting-again' title='Styles CSS par défaut : après Reset Reloaded, Eric Meyer fait encore risette avec Resetting Again'>Styles CSS par défaut : après Reset Reloaded, Eric Meyer fait encore risette avec Resetting Again</a></li><li><a href='http://css.4design.tl/sandbox-un-theme-wordpress-pour-integrateurs-html-chic-qui-aiment-les-microformats' title='Quelques notes sur Sandbox, un thème WordPress pour intégrateurs html CHIC qui aiment les microformats'>Quelques notes sur Sandbox, un thème WordPress pour intégrateurs html CHIC qui aiment les microformats</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></ul>
 <p><a href="http://css.4design.tl/?flattrss_redirect&amp;id=119&amp;md5=dd7a0ae492f480c7c056a74353195114" 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/5-reset-css-a-la-loupe-pour-une-remise-a-zero-des-valeurs-par-defaut-des-navigateurs/feed</wfw:commentRss>
		<slash:comments>33</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%2F5-reset-css-a-la-loupe-pour-une-remise-a-zero-des-valeurs-par-defaut-des-navigateurs&amp;language=fr_FR&amp;category=text&amp;title=5+Reset+CSS+%C3%A0+la+loupe+pour+une+remise+%C3%A0+z%C3%A9ro+des+valeurs+par+d%C3%A9faut+des+navigateurs&amp;description=Vous+n%26%238217%3Butilisez+pas+de+styles+CSS+pour+votre+page+web+%3F+Ce+n%26%238217%3Best+pas+grave+%3A+les+navigateurs+le+font+pour+vous.+Ils+utilisent+chacun+leur+feuille+de+style+par...&amp;tags=CSS%2CEric+Meyer%2CFocus%2CHTML%2CNavigateur%2CReset+CSS%2CStandards+web%2CTableaux%2CTutoriels%2CXHTML%2Cblog" type="text/html" />
	</item>
		<item>
		<title>Votre blog sur un téléphone portable, really ready ?</title>
		<link>http://css.4design.tl/votre-blog-sur-un-telephone-portable-really-ready</link>
		<comments>http://css.4design.tl/votre-blog-sur-un-telephone-portable-really-ready#comments</comments>
		<pubDate>Sat, 21 Apr 2007 03:41:07 +0000</pubDate>
		<dc:creator>Bruno Bichet</dc:creator>
				<category><![CDATA[Ergonomie & Accessibilité]]></category>
		<category><![CDATA[Accessibilité]]></category>
		<category><![CDATA[Blog]]></category>
		<category><![CDATA[Focus]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Navigateur]]></category>
		<category><![CDATA[Standards web]]></category>
		<category><![CDATA[Tableaux]]></category>

		<guid isPermaLink="false">http://www.css4design.com/blog-reloaded/?p=80</guid>
		<description><![CDATA[Des fois c&#8217;est facile, des fois&#8230; pas facile. Pourtant, un site web ou un blog devraient être accessibles depuis n&#8217;importe quel périphérique, y compris un téléphone portable. Après la lecture du billet de Nico, j&#8217;ai testé mon blog sur le site .mobi qui a évalué ma page d&#8217;accueil sur une échelle de 1 à 5 en fonction de sa lisibilité sur un petit écran, de sa taille et de l&#8217;estimation de sa vitesse (ou coût) de chargement. Le tout en une trentaine de tests. Strict is the way&#8230; Comme vous pouvez le constater, avec une note de 2 sur 5, [...]]]></description>
			<content:encoded><![CDATA[<p><img class="il" src="/images/billet/mobile-ready/blog-mobile.png" alt="Votre blog sur un téléphone portable, really ready ?" /> Des fois c&#8217;est facile, des fois&#8230; pas facile. Pourtant, un site web ou un blog devraient être accessibles depuis n&#8217;importe quel périphérique, y compris un téléphone portable. Après la lecture du billet de <a title="Le blog de Nico Fayet" href="http://www.nicofayet.fr/index.php?2007/03/05/266-votre-site-est-il-pret-pour-l-aventure-mobile">Nico</a>, j&#8217;ai testé mon blog sur le site <a title="Etes-vous mobile ready ?" href="http://ready.mobi/">.mobi</a> qui a évalué ma  page d&#8217;accueil sur une échelle de 1 à 5 en fonction de sa lisibilité sur un petit écran, de sa taille et de l&#8217;estimation de sa vitesse (ou coût) de chargement. Le tout en une trentaine de tests. <em>Strict is the way&#8230;</em><span id="more-87"></span></p>

<p><img class="imgFullWidth" src="/images/billet/mobile-ready/lisibilite-mobile-ready.png" alt="" /></p>

<p>Comme vous pouvez le constater, avec une note de 2 sur 5, mon blog n&#8217;est pas <em>mobile ready</em>. A cause notamment du marquage XHTML non valide au regard des possibilités de traitement des navigateurs embarqués. Au moins ais-je échappé à la <em>shame frame</em> ^^</p>

<p>Le résumé des tests est sans appel, mais plein d&#8217;enseignements : un lien sur chaque élément pris en compte détaille les raisons de l&#8217;échec. Sans oublier les avertissements ou les commentaires sur les spécificités non bloquantes à prendre tout de même en considération pour <strong>une meilleure accessibilité de mon contenu sur ces petits appareils</strong>.</p>

<h3>Résultats des tests</h3>

<p><img class="imgFullWidth" src="/images/billet/mobile-ready/compatibilite-test.png" alt="" /></p>

<p><img class="imgFullWidth" src="/images/billet/mobile-ready/tests-additionnel.png" alt="" /></p>

<p><strong>Ce blog échoue donc lamentablement à sept d&#8217;entre eux :</strong></p>

<ol>
    <li> <strong>La page n&#8217;est pas conforme</strong> à <a href="http://www.developershome.com/wap/xhtmlmp/xhtml_mp_tutorial.asp?page=introduction">XHTML-MP</a> (<a href="http://xmlfr.org/actualites/tech/010820-0002">wap 2.0</a>, formulation de <a href="http://www.la-grange.net/w3c/xhtml1/">XHTML</a> à l&#8217;usage des périphériques mobiles), ni même à un autre langage comme  :
<ul>
    <li><a href="http://forum.alsacreations.com/posting.php?action=newp&amp;tid=7534&amp;fid=14&amp;p=1&amp;q=65894">i-mode</a> (<a href="http://www.w3.org/TR/1998/NOTE-compactHTML-19980209/">cHTML</a>)</li>
    <li><a href="http://www.wapforum.org/what/technical_1_0.htm">wap 1.0</a> (<a href="http://www.ccim.be/ccim328/wap/">WML</a>)</li>
</ul>
</li>
    <li> <strong>Le marquage XHTML n&#8217;est de toute façon pas valide !</strong> C&#8217;est vrai que j&#8217;ais laissé la <em>DTD Strict</em> <em>Made in <a title="Utilisateurs de la version 1.2.5, la version 1.2.6 nous attend !" href="http://www.dotclear.net/">Dotclear</a></em> alors que je devrais mettre une DTD <em>Transitionnal</em>. (c&#8217;est fait depuis la capture),</li>
    <li> <strong>Taille des images.</strong> Au moins une image n&#8217;a pas de hauteur ou de largeur spécifiée,</li>
    <li> <strong>Mesures.</strong> Des dimensions spécifiées en pixel ou de manière absolue sont détectées dans la feuille de style,</li>
    <li> <strong>Feuilles de style.</strong> Mon utilisation des feuilles de style n&#8217;est pas en accord avec les bonnes pratiques. L&#8217;usage des styles en ligne en est principalement la cause. Mais aussi l&#8217;utilisation des balises <em>sup</em> ou <em>del</em> mal prises en charge par les navigateurs mobiles,</li>
    <li> <strong>La taille de la page</strong> (en incluant les images et les feuilles de styles) est trop importante : si le code HTML se stabilise à 68 ko, la page complète pèse dans les 277 ko&#8230; Depuis, j&#8217;ai remplacé Prototype et script.aculo.us par la <a href="http://www.chez-xuxu.net/ressources/javascript/splash.image/">Splash Box de Xuxu</a> pour l&#8217;effet lightbox, et j&#8217;ai installé jQuery en version compressée pour le reste : j&#8217;ai économisé plus de 50 ko,</li>
    <li> La page est liée à <strong>trop de ressources externes</strong>, (images, feuilles de styles et autres objets) ce qui ajoute du temps au chargement de la page.</li>
</ol>

<h3>Avertissements et commentaires</h3>

<p>Grâce à ces derniers, j&#8217;en ai appris davantage sur les éléments à prendre en compte lorsqu&#8217;on veut cibler les navigateurs embarqués dans les appareils mobiles. Répétez avec moi :</p>

<ol>
    <li> J&#8217;évite de concevoir mes pages web avec des propriétés <em>display</em> ou <em>float</em>,</li>
    <li> Je garde sur un coin du bureau un <em>post-it</em> pour me souvenir que <strong>la plupart des périphériques mobiles ne supportent pas Javascript</strong>,</li>
    <li> Je mets le <em>focus</em> sur les champs <em>input</em> pour faciliter la saisie, et je fournis des valeurs sélectionnées par défaut,De toutes manières, étant données les limitations typiques des formulaires sur les appareils mobiles, une interface utilisateur devrait autant que possible en minimiser l&#8217;usage,

Lorsque c&#8217;est possible, je privilégie les <em>checkbox</em>, <em>radio</em>, et autres <em>button</em> qui ne nécessitent pas de saisie fastidieuse,</li>
    <li> Je me retiens  d&#8217;utiliser des tableaux qui sont par nature difficiles à rendre sur ces petits appareils,</li>
    <li> J&#8217;utilise les <em>accesskeys</em> sur tous les liens,</li>
    <li> Pour finir, je place un fichier <em>sitemap.gz</em> à la racine du site. Chez moi il s&#8217;appelle <em>sitemap.xml</em>&#8230; je changerais le nom à l&#8217;occasion.</li>
</ol>

<h3>Résumé</h3>

<p><img class="imgFullWidth" src="/images/billet/mobile-ready/visualisation-mobile.png" alt="" /></p>

<p><strong>Pour être <em>mobile ready</em> un site web devrait donc :</strong></p>

<ol>
    <li>Posséder un code XHTML non seulement valide, mais conforme au XHTML-MP, ou en tout cas débarrassé de certaines balises comme <em>sup</em>, <em>del</em>, ou <em>table</em>,</li>
    <li>Spécifier les dimensions des images,</li>
    <li> Abandonner les unités de mesures fixes (sauf peut-être pour les images) au profit des unités relatives comme <em>em,</em> <em>ex</em> ou <em>%</em>,</li>
    <li>Éviter les styles CSS en ligne comme <em>style=&nbsp;&raquo;border: 0;&nbsp;&raquo;</em> par exemple,</li>
    <li>Limiter (voire supprimer) les liens vers les ressources externes comme les scripts, ou les balises <em>object</em>,</li>
    <li>Etre léger, léger&#8230;</li>
</ol>

<h3>Malgré le haut-débit et la puissance des processeurs, l&#8217;allègement des pages web est toujours d&#8217;actualité</h3>

<h4>Le poids des mots, le choc des photos</h4>

<p>Faire un site adapté aux périphériques mobiles ne se limite pas à modifier quelques balises et à en supprimer d&#8217;autres. Car même en ne visant que les navigateurs compatibles <em>WAP 2.0</em>, le poids total des pages handicape la plupart des blogs et des sites web.</p>

<p>Toutefois, rien n&#8217;est gravé dans le marbre et il est toujours possible d&#8217;alléger la page. A cet égard, le choix d&#8217;une librairie Javascript légère et évolutive est essentiel. Nous faisons trop souvent comme si le chargement des éléments tels que les CSS ou Javascript dans le cache du navigateur à la première requête, nous autorisait à  être léger sur l&#8217;accessibilité et à avoir la main lourde sur les effets graphiques ou les animations.</p>

<p>Suite à ces tests, je me suis rappelé que <strong>chaque jour, près de 75% des visiteurs venaient ici pour la première fois, et qu&#8217;une partie non négligeable, repartait après la première page vue.</strong> Ces visiteurs-là n&#8217;ont pas le temps d&#8217;apprécier les bienfaits de la mise en cache par le navigateur ! Reste l&#8217;étude de la mise en cache via PHP qui pourrait &#8212; avec compression gzip &#8212; faire l&#8217;objet d&#8217;un autre billet.</p>

<h4>L&#8217;avenir appartiendrait-il aux flux Atom et RSS&#8230;</h4>

<p>On peut envisager de détecter le navigateur et décider de charger ou non ces ressources, mais cette approche ne règle pas les autres particularités des navigateurs embarqués concernant notamment les propriétés <em>float</em>. Et encore je ne parle même pas des unités de mesure trop souvent définies en pixels.</p>

<p>Pour moi, la solution se trouve du côté des flux <em>Atom</em> ou <em>RSS</em> qui vont à l&#8217;essentiel du contenu. A cet égard, j&#8217;ai trouvé <a href="http://www.ifeedyou.com/">I Feed You</a> qui permet <q cite="http://www.ifeedyou.com/">de convertir un fil RSS/Atom au format Wap et i-mode pour suivre l&#8217;actualité d&#8217;un site ou un blog très simplement depuis un mobile</q>.</p>

<h4>&#8230;avec du semacode dedans ?</h4>

<p>C&#8217;est déjà pas mal. Mais sachez que nous pouvons épargner cette fastidieuse saisie de l&#8217;adresse du flux en question en utilisant les <a href="http://www.semacode.org/tag/">tags visuels de semacode</a>.</p>

<p><img class="imgBilletCenter" src="/images/billet/mobile-ready/semacode-flux-rss.png" alt="Semacode permet de générer un code barre qui sera lu par le téléphone portable" /></p>

<p>Alors n&#8217;hésitez plus, et <q cite="http://www.ifeedyou.com/static/shotcode-semacode/">créez un code barre pour le flux RSS/Atom de votre blog. Il sera ainsi facilement accessible aux utilisateurs d&#8217;un mobile avec appareil photo.</q></p>

<p><strong>PS :</strong> Si vous connaissez un bon lecteur de flux pour téléphone portable, ou d&#8217;autres solutions, c&#8217;est le moment de dégainer :)</p>

<p><em>Stay tuned and mind the gap!</em></p>

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

<ul class='related_post'><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/journee-mondiale-accessibilite-9-mai' title='La journée mondiale de l&#8217;accessibilité, c&#8217;est maintenant !'>La journée mondiale de l&#8217;accessibilité, c&#8217;est maintenant !</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><li><a href='http://css.4design.tl/ressources-pour-web-designer' title='9 ressources pour web designer'>9 ressources pour web designer</a></li><li><a href='http://css.4design.tl/prefix-free-du-beau-du-bon-du-mauvais' title='-prefix-free : du beau, du bon, du mauvais ?'>-prefix-free : du beau, du bon, du mauvais ?</a></li></ul>
 <p><a href="http://css.4design.tl/?flattrss_redirect&amp;id=87&amp;md5=f1c97457466656a4c4e9b47ac06eb14d" 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/votre-blog-sur-un-telephone-portable-really-ready/feed</wfw:commentRss>
		<slash:comments>9</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%2Fvotre-blog-sur-un-telephone-portable-really-ready&amp;language=fr_FR&amp;category=text&amp;title=Votre+blog+sur+un+t%C3%A9l%C3%A9phone+portable%2C+really+ready+%3F&amp;description=Des+fois+c%26%238217%3Best+facile%2C+des+fois%26%238230%3B+pas+facile.+Pourtant%2C+un+site+web+ou+un+blog+devraient+%C3%AAtre+accessibles+depuis+n%26%238217%3Bimporte+quel+p%C3%A9riph%C3%A9rique%2C+y+compris+un+t%C3%A9l%C3%A9phone+portable.+Apr%C3%A8s+la+lecture...&amp;tags=Accessibilit%C3%A9%2CBlog%2CFocus%2CJavascript%2CMobile%2CNavigateur%2CStandards+web%2CTableaux%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 17:57:00 -->
