<?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>Les intégristes &#187; Intégration</title>
	<atom:link href="http://www.lesintegristes.net/categorie/integration/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.lesintegristes.net</link>
	<description></description>
	<lastBuildDate>Wed, 25 Aug 2010 21:21:59 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>La vie des intégrateurs, chapitre III : puis vint Html5</title>
		<link>http://www.lesintegristes.net/2010/08/11/la-vie-des-integrateurs-chapitre-iii-puis-vint-html5/</link>
		<comments>http://www.lesintegristes.net/2010/08/11/la-vie-des-integrateurs-chapitre-iii-puis-vint-html5/#comments</comments>
		<pubDate>Wed, 11 Aug 2010 08:33:45 +0000</pubDate>
		<dc:creator>Eric Le Bihan</dc:creator>
				<category><![CDATA[HTML]]></category>
		<category><![CDATA[Intégration]]></category>

		<guid isPermaLink="false">http://www.lesintegristes.net/?p=1052</guid>
		<description><![CDATA[Depuis plusieurs mois on ne lit plus que ça dans les nombreux blogs qui parlent d’intégration, de développement ou de webdesign. C’est venu timidement et puis la sortie des nouvelles versions des navigateurs a accéléré le processus, du coup les mêmes démonstrations se répètent inlassablement sans que concrètement on puisse dans un cadre professionnel utiliser pleinement toutes ces nouveautés. On peut maintenant faire des sites en HTML5 et CSS3 ! Ok mais seulement pour les dernières versions des navigateurs qui tous regroupés représentent à peu près 50% des utilisateurs. Difficile de vendre le truc à son patron ou à ses&#160;[&#8230;]]]></description>
			<content:encoded><![CDATA[<p>Depuis plusieurs mois on ne lit plus que ça dans les nombreux blogs qui parlent d’intégration, de développement ou de webdesign. C’est venu timidement et puis la sortie des nouvelles versions des navigateurs a accéléré le processus, du coup les mêmes démonstrations se répètent inlassablement sans que concrètement on puisse dans un cadre professionnel utiliser pleinement toutes ces nouveautés. On peut maintenant faire des sites en HTML5 et CSS3 ! Ok mais seulement pour les dernières versions des navigateurs qui tous regroupés représentent à peu près 50% des utilisateurs. Difficile de vendre le truc à son patron ou à ses clients en expliquant que la moitié aura une version dégradée du site, même &laquo;&nbsp;gracieusement dégradée&nbsp;&raquo; (<em>gracefully dégradation</em>).<br />
Après, attention tout ce qui bouge n’est pas CSS3, &#8211; j’ai vu (lu) de nombreuses personnes s’extasier devant des démonstrations CSS 2.1 particulièrement ingénieuses &#8211; et HTML5 n’est pas la solution à tout. Ajax, vous avez dit Ajax ? Voir le billet de Jeffrey Zeldman sur le terme HTML5 : <a href=" http://www.zeldman.com/2010/08/03/html5-fuzzies/">html5 fuzzies</a>
<p>D’abord pourquoi passer à HTML5 alors que pendant des années on a seriné à tous ceux qui voulaient l’entendre que XHTML, c’est l’avenir, il y a rien de mieux et que franchement HTML c’est has-been (ok je caricature, mais à peine). Est-ce que tous ces évangélistes aussi prompts à faire du prosélytisme auraient retourné leur veste ? Effectivement nous de notre côté on a pu avoir des doutes au début et puis on s’est rendu compte que ça changeait pas grand chose finalement, on peut très bien continuer à faire du XHTML dans la syntaxe en utilisant les nouvelles balises HTML5, c’est vrai que <em>Les Intégristes</em>  ont l’avantage de parler à des professionnels qui ne portent pas forcément Internet Explorer dans leur cœur. En revanche l’avantage et qui n’est pas des moindres c’est qu’HTML5 intègre ARIA et en terme d’accessibilité c’est un grand pas en avant. Si vous voulez un petit rafraichissement de mémoire allez voir par là, <a href="http://www.lesintegristes.net/2008/12/09/introduction-a-wai-aria-traduction/">la traduction</a> qu’avait faite Pierre de <a href="http://dev.opera.com/articles/view/introduction-to-wai-aria/">Introduction to WAI ARIA</a>.</p>
<p>Si pour un blog ou l&#8217;administration d&#8217;un site on peut s’amuser avec HTML5 et CSS3 en ajoutant les JS qui vont corriger les déficiences d’Internet Explorer (<a href="http://code.google.com/p/html5shiv/">http://code.google.com/p/html5shiv/</a> et <a href="http://www.keithclark.co.uk/labs/ie-css3/">http://www.keithclark.co.uk/labs/ie-css3/</a>), il est moins possible de le faire pour un site grand public générant un chiffre d&#8217;affaires de plusieurs millions d’euros. Le moindre ko est traqué et il serait risqué de s’appuyer sur un script qui demain pourrait ne plus être mis à jour et créer pas mal de désagréments.</p>
<p>Plusieurs solutions :</p>
<ul>
<li>Continuer à faire du bon vieux XHTML 1 et CSS 2.1</li>
<li>Faire accepter qu’avec IE ce sera moins bien</li>
<li>Faire du code forking, comme on faisait avant que des bibliothèques JS gèrent ça pour nous : une version pour IE une version pour les autres</li>
<li>Prendre le risque des solutions JS quand même</li>
</ul>
<p>Aucune de ces solutions n’est parfaite mais les intégrateurs et développeurs sont tellement impatients d’utiliser des specs qui sont encore à l’état de brouillon, que je suis sur  que les arguments ne manqueront pas pour vanter les mérites d’une technologie balbutiante, quitte à faire le travail deux fois.</p>
<p>Un petit tour d’horizon sur ce qu’il faut savoir de HTML5 et CSS3, comment l’utiliser, quelles solutions JS, etc. :</p>
<ul>
<li>Les specs officielles :
<ul>
<li><a href="http://dev.w3.org/html5/spec/Overview.html">http://dev.w3.org/html5/spec/Overview.html</a></li>
<li><a href="http://www.w3.org/Style/CSS/current-work">http://www.w3.org/Style/CSS/current-work</a></li>
</ul>
<p>On n&#8217;y coupe pas !</p>
</li>
<li>HTML5 et l’accessibilité
<ul>
<li><a href="http://on-air.hiseo.fr/html5/html5-accessibilite-aria-wai-microformats/">http://on-air.hiseo.fr/html5/html5-accessibilite-aria-wai-microformats/</a></li>
<li><a href="http://www.cfit.ie/news-and-commentary-archive/96-wai-aria-in-html5">http://www.cfit.ie/news-and-commentary-archive/96-wai-aria-in-html5</a></li>
</ul>
</li>
<li>Quelques lectures intéressantes sur le sujet :
<ul>
<li><a href="http://diveintohtml5.org/">http://diveintohtml5.org/</a></li>
<li><a href="http://www.fredcavazza.net/2009/09/10/html-5-css-3-une-revolution-pour-les-interfaces-web/">http://www.fredcavazza.net/2009/09/10/html-5-css-3-une-revolution-pour-les-interfaces-web/</a></li>
<li><a href="http://html5doctor.com/">http://html5doctor.com/</a></li>
<li><a href="http://desgeeksetdeslettres.com/blog/programmation-java/html5-audio-et-video">http://desgeeksetdeslettres.com/blog/programmation-java/html5-audio-et-video</a></li>
<li><a href="http://www.seomix.fr/web/developpement/videolink-javascript-video-html5/">http://www.seomix.fr/web/developpement/videolink-javascript-video-html5/<a/></li>
<li>pas mal de liens sur html5 et css3 sur <a href="http://www.maxdesign.com.au/category/news/">maxdesign.com</a></li>
</ul>
</li>
<li>Faire du html5 quand même :
<ul>
<li><a href="http://52framework.com/">http://52framework.com/</a></li>
<li><a href="http://css3pie.com/">http://css3pie.com/</a></li>
<li><a href="http://code.google.com/p/html5shiv/">http://code.google.com/p/html5shiv/</a></li>
<li><a href="http://www.keithclark.co.uk/labs/ie-css3/">http://www.keithclark.co.uk/labs/ie-css3/</a></li>
<li><a href="http://media1.smashingmagazine.com/wp-content/uploads/images/html5-cheat-sheet/html5-cheat-sheet.pdf">http://media1.smashingmagazine.com/wp-content/uploads/images/html5-cheat-sheet/html5-cheat-sheet.pdf</a></li>
</ul>
</li>
<li>Démos et tutos
<ul>
<li><a href="http://www.1stwebdesigner.com/resources/css3-tutorials/">http://www.1stwebdesigner.com/resources/css3-tutorials/</a></li>
<li><a href="http://dev.opera.com/articles/view/custom-html5-video-player-with-css3-and-jquery/">http://dev.opera.com/articles/view/custom-html5-video-player-with-css3-and-jquery/</a></li>
<li><a href="http://html5tutorial.net/">http://html5tutorial.net/</a></li>
<li><a href="http://html5demos.com/">http://html5demos.com/</a></li>
<li><a href="http://ie.microsoft.com/testdrive/Default.html">http://ie.microsoft.com/testdrive/Default.html</a></li>
</ul>
</li>
<li>Où en est votre navigateur ?
<ul>
<li><a href="http://www.html5test.com/">http://www.html5test.com/</a></li>
<li><a href="http://www.findmebyip.com/litmus#target-selector">http://www.findmebyip.com/litmus#target-selector</a></li>
<li><a href="http://www.quirksmode.org/dom/html5.html">http://www.quirksmode.org/dom/html5.html</a></li>
<li><a href="http://html5readiness.com/">http://html5readiness.com/</a></li>
<li><a href="http://w3c.html5.free.fr/">http://w3c.html5.free.fr/</a></li>
</ul>
</li>
</ul>
<p>Et vous quel usage faites vous d’html5 et ses amis ? Applicable en milieu professionnel ou à réserver pour des projets isolés ?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lesintegristes.net/2010/08/11/la-vie-des-integrateurs-chapitre-iii-puis-vint-html5/feed/</wfw:commentRss>
		<slash:comments>24</slash:comments>
		</item>
		<item>
		<title>La vie des intégrateurs Chapitre II : la partie immergée de l&#8217;iceberg</title>
		<link>http://www.lesintegristes.net/2008/10/07/la-vie-des-integrateurs-chapitre-ii-la-partie-immergee-de-liceberg/</link>
		<comments>http://www.lesintegristes.net/2008/10/07/la-vie-des-integrateurs-chapitre-ii-la-partie-immergee-de-liceberg/#comments</comments>
		<pubDate>Tue, 07 Oct 2008 10:42:17 +0000</pubDate>
		<dc:creator>Eric Le Bihan</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Intégration]]></category>

		<guid isPermaLink="false">http://www.lesintegristes.net/?p=147</guid>
		<description><![CDATA[N&#8217;est-il pas frustrant que l&#8217;essentiel du travail d&#8217;un intégrateur passe inaperçu ? Qu&#8217;on s&#8217;arrête à l&#8217;aspect visuel sans comprendre plus comment fonctionne la machine ? Il est certainement agréable de reprendre un code bien formé quand on est intégrateur ou développeur, mais la plupart des personnes s&#8217;en tient uniquement à l&#8217;aspect graphique, du moment que l&#8217;intégration est fidèle à la maquette peu importe ce qu&#8217;il y a derrière. Malgré tout cet acharnement à peaufiner votre travail et à argumenter pour les choix à adopter, pas grand chose ne distingue votre travail minutieux de celui d&#8217;un vulgaire tâcheron aux yeux du&#160;[&#8230;]]]></description>
			<content:encoded><![CDATA[<p>N&#8217;est-il pas frustrant que l&#8217;essentiel du travail d&#8217;un intégrateur passe inaperçu ? Qu&#8217;on s&#8217;arrête à l&#8217;aspect visuel sans comprendre plus comment fonctionne la machine ? Il est certainement agréable de reprendre un code bien formé quand on est intégrateur ou développeur, mais la plupart des personnes s&#8217;en tient uniquement à l&#8217;aspect graphique, du moment que l&#8217;intégration est fidèle à la maquette peu importe ce qu&#8217;il y a derrière. Malgré tout cet acharnement à peaufiner votre travail et à argumenter pour les choix à adopter, pas grand chose ne distingue votre travail minutieux de celui d&#8217;un vulgaire tâcheron aux yeux du commun des mortels.</p>
<p>Ce que vous ne faites pas (<em>liste non exhaustive</em>) :</p>
<p>- ne pas mettre de doctype à votre page,<br />
- inclure une autre page html dans votre page html (doctype, balises html, head et body dans la première balise body)<br />
- mal fermer vos balises ou ne pas fermer vos balises,<br />
- faire vos structures de page en tableau,<br />
- générer du contenu en javascript,<br />
- faire du javascript intrusif,<br />
- mélanger structure, styles et scripts,<br />
- mettre des images de contenu en background (sans aucun texte alternatif),<br />
- ne jamais valider votre code avec le validateur W3C</p>
<p>Il est facile de reprendre chacun de vos arguments et bonnes pratiques pour vous démontrer qu&#8217;elles n&#8217;ont aucune raison d&#8217;être :</p>
<p>- javascript non intrusif : <em>avec 0,5% d&#8217;utilisateur sans javascript, ce n&#8217;est pas la peine de s&#8217;attarder là dessus, on fait au plus simple,</em><br />
- maintenance facilitée par la séparation de la forme et du contenu : <em>les pages sont refaites si souvent qu&#8217;on fait peu de maintenance sur les pages existantes,</em><br />
- code léger : <em>maintenant tout le monde a le haut débit, donc on peut faire des pages de 500ko,</em><br />
- alternative à flash : <em>t&#8217;as vu les stats ? Flash est présent à 98%  !<br />
</em></p>
<p>Il faut savoir que le plus souvent bien coder ne prends pas plus de temps que coder &laquo;&nbsp;à l&#8217;arrache&nbsp;&raquo;, quand on a pris l&#8217;habitude ça devient vite une seconde nature. Du coup on devient vite exigeant, on fait la moue quand on doit reprendre un code moyen voire franchement dégueulasse. La tentation est grande de tout vouloir refaire, et si le temps est compté, il faut ronger son frein et exécuter ce travail peu valorisant en espérant qu&#8217;on ne sera jamais cité comme intégrateur sur ce projet.</p>
<p>L&#8217;avantage pour certains et l&#8217;inconvénient pour d&#8217;autres, est que quelque soit la qualité de votre code, le résultat restera correct dans le navigateur de l&#8217;internaute. On est loin du X(HT)ML&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lesintegristes.net/2008/10/07/la-vie-des-integrateurs-chapitre-ii-la-partie-immergee-de-liceberg/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>Utiliser la propriété display: inline-block</title>
		<link>http://www.lesintegristes.net/2008/06/18/utiliser-la-propriete-displayinline-block/</link>
		<comments>http://www.lesintegristes.net/2008/06/18/utiliser-la-propriete-displayinline-block/#comments</comments>
		<pubDate>Wed, 18 Jun 2008 21:55:56 +0000</pubDate>
		<dc:creator>Eric Le Bihan</dc:creator>
				<category><![CDATA[Astuces]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Intégration]]></category>

		<guid isPermaLink="false">http://www.lesintegristes.net/?p=65</guid>
		<description><![CDATA[Cette propriété qui est très peu utilisée pour des raisons de compatibilité navigateur est néanmoins intéressante. Elle permet en effet d&#8217;appliquer des styles de type &#171;&#160;block&#160;&#187; à un élément ayant un comportement de type &#171;&#160;inline&#160;&#187;, comme par exemple, une largeur, une hauteur, des marges, etc. Ce qui veut dire que dans certains cas, il est possible de structurer des parties de pages sans avoir recours à la propriété float (left, right) ou position (relative, absolute).
Bien qu&#8217;incomplètement  prise en compte par les différents navigateur, il est possible de l&#8217;utiliser avec quelques connaissances supplémentaires, démonstration :
Prenons l&#8217;exemple simple d&#8217;un formulaire&#160;[&#8230;]]]></description>
			<content:encoded><![CDATA[<p>Cette propriété qui est très peu utilisée pour des raisons de compatibilité navigateur est néanmoins intéressante. Elle permet en effet d&#8217;appliquer des styles de type &laquo;&nbsp;block&nbsp;&raquo; à un élément ayant un comportement de type &laquo;&nbsp;inline&nbsp;&raquo;, comme par exemple, une largeur, une hauteur, des marges, etc. Ce qui veut dire que dans certains cas, il est possible de structurer des parties de pages sans avoir recours à la propriété <em>float</em> (left, right) ou <em>position</em> (relative, absolute).</p>
<p>Bien qu&#8217;incomplètement  prise en compte par les différents navigateur, il est possible de l&#8217;utiliser avec quelques connaissances supplémentaires, démonstration :</p>
<p>Prenons l&#8217;exemple simple d&#8217;un formulaire d&#8217;inscription, où il faut aligner des label à 150px du bord d&#8217;<em>input</em> de type texte :</p>
<p>Pour le code html suivant :</p>
<pre><code class="prettyprint">
&lt;form action="http://www.example.net" method="post" id="inscription"&gt;
  &lt;fieldset&gt;
    &lt;label for="prenom"&gt;Prénom &lt;em&gt;*&lt;/em&gt;&lt;/label&gt;
    &lt;input type="text" id="prenom" /&gt;&lt;br /&gt;
    &lt;label for="nom"&gt;Nom &lt;em&gt;*&lt;/em&gt;&lt;/label&gt;
    &lt;input type="text" id="nom" /&gt;&lt;br /&gt;
    &lt;label for="email"&gt;Email &lt;em&gt;*&lt;/em&gt;&lt;/label&gt;
    &lt;input type="text" id="email" /&gt;&lt;br /&gt;
    &lt;label for="password"&gt;Mot de passe &lt;em&gt;*&lt;/em&gt;&lt;/label&gt;
    &lt;input type="password" id="password" /&gt;&lt;br /&gt;
    &lt;label for="confirm-password"&gt;Mot de passe &lt;em&gt;*&lt;/em&gt;&lt;/label&gt;
    &lt;input type="password" id="password" /&gt;&lt;br /&gt;
    &lt;input type="submit" value="valider" class="input-submit" /&gt;
  &lt;/fieldset&gt;
&lt;/form&gt;
</code></pre>
<p>Je définis le styles des base, auxquels je vais ajouter (en gras) la propriété <em>inline-block </em>et les styles qui vont avec  :</p>
<pre><code class="prettyprint">
#inscription fieldset{border:none;}
#inscription label{<strong>display:inline-block;padding:5px 0 0;width:150px;</strong>font-weight:bold;}
#inscription input{border:1px solid #666;}
</code></pre>
<p>Première constatation : ça fonctionne sur la plupart des navigateurs (IE6, IE7, Opera, Safari) mais pas sur les versions de Firefox antérieures à Firefox 3&#8230;</p>
<p>On ajoute alors la propriété <em>display:-moz-inline-box;</em> pour Firefox 2 et les versions antérieures, mais attention, il faut la placer avant <em>display:inline-block</em>, sinon ça ne fonctionne plus pour Internet Explorer et Firefox prend en compte <em>display:-moz-inline-box;</em> au lieu de prendre en compte <em>display:inline-block</em>.</p>
<pre><code class="prettyprint">
#inscription fieldset{border:none;}
#inscription label{<strong>display:-moz-inline-box;</strong>display:inline-block;padding:5px 0 0;width:150px;font-weight:bold;}
#inscription input{border:1px solid #666;}</code></pre>
<p>Dans certains cas j&#8217;ai constaté des problème de layout avec Internet Explorer, dans ce cas ajouter la propriété <em>display:inline</em> dans une déclaration séparée :</p>
<pre><code class="prettyprint">
#inscription fieldset{border:none;}
#inscription label{display:-moz-inline-box;display:inline-block;padding:5px 0 0;width:150px;font-weight:bold;}
#inscription input{border:1px solid #666;}
<strong>#IE #inscription label,
#IE #inscription .input-submit{display:inline;}</strong></code></pre>
<p>On obtient le résultat suivant, un formulaire structuré sans tableau, sans éléments flottant ou positionnés en dehors du flux html :<br />
<a href="http://www.lesintegristes.net/demos/css/inline_block.html"><img class="align left size-full wp-image-66" title="form-inline-block" src="http://www.lesintegristes.net/wp-content/uploads/2008/06/form-inline-block.png" alt="Formulaire en inline-block" width="343" height="181" /></a></p>
<p>Seule limitation constatée, les éléments mis en <em>inline-block</em> dans Firefox se comporte comme ayant une propriété <em>white-space:nowrap</em> appliquée, il n&#8217;est pas possible d&#8217;avoir des textes sur plusieurs lignes&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lesintegristes.net/2008/06/18/utiliser-la-propriete-displayinline-block/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Cibler Internet Explorer dans une CSS ? Oui, et sans hack.</title>
		<link>http://www.lesintegristes.net/2008/04/08/cibler-internet-explorer-dans-une-css-oui-et-sans-hack/</link>
		<comments>http://www.lesintegristes.net/2008/04/08/cibler-internet-explorer-dans-une-css-oui-et-sans-hack/#comments</comments>
		<pubDate>Tue, 08 Apr 2008 21:01:58 +0000</pubDate>
		<dc:creator>Pierre Bertet</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Internet Explorer]]></category>
		<category><![CDATA[Intégration]]></category>
		<category><![CDATA[Navigateurs]]></category>

		<guid isPermaLink="false">http://www.lesintegristes.net/?p=60</guid>
		<description><![CDATA[La méthode commence à être rodée : pour intégrer un design en CSS, on commence par le faire sur un navigateur &#171;&#160;moderne&#160;&#187;, puis on corrige les différents problèmes rencontrés sur Internet Explorer, surtout dans sa version 6, qui commence à sérieusement à s&#8217;incruster.
Pour cela, il existe plusieurs solutions.
Eviter les embrouilles
Avec la pratique, un certain nombre de réflexes se mettent en place, et on anticipe immédiatement les problèmes.
Un float:left, avec une marge sur sa gauche ? Un display:inline placé dans la même déclaration permet d&#8217;éviter le bug de la double marge. Tous les navigateurs ignorent ce display:inline,&#160;[&#8230;]]]></description>
			<content:encoded><![CDATA[<p>La méthode commence à être rodée : pour intégrer un design en CSS, on commence par le faire sur un navigateur &laquo;&nbsp;moderne&nbsp;&raquo;, puis on corrige les différents problèmes rencontrés sur Internet Explorer, surtout dans sa version 6, qui commence à sérieusement à s&#8217;incruster.</p>
<p>Pour cela, il existe plusieurs solutions.</p>
<h2>Eviter les embrouilles</h2>
<p>Avec la pratique, un certain nombre de réflexes se mettent en place, et on anticipe immédiatement les problèmes.<br />
Un <code class="prettyprint">float:left</code>, avec une marge sur sa gauche ? Un <code class="prettyprint">display:inline</code> placé dans la même déclaration permet d&#8217;éviter le <a href="http://www.positioniseverything.net/explorer/doubled-margin.html">bug de la double marge</a>. Tous les navigateurs ignorent ce <code class="prettyprint">display:inline</code>, car la propriété <code class="prettyprint">float</code> est prioritaire. C&#8217;est toujours ça de pris.</p>
<p>Malheureusement ça ne suffit pas toujours, et il n&#8217;y a parfois d&#8217;autre solution que de déclarer une propriété spécialement pour IE.</p>
<h2>Le bon vieux hack</h2>
<p>Allons-y joyeusement, il faut résoudre un bug sur IE6, et les hacks semblent pratiques et simples à utiliser.<br />
Allez, au hasard&#8230; Le sélecteur d&#8217;enfant : <code class="prettyprint">html &gt; body</code></p>
<p>IE6 ne comprend pas le sélecteur &laquo;&nbsp;&gt;&nbsp;&raquo;. Il donc est possible de profiter de ce bug pour cibler IE6, de cette façon :</p>
<pre><code class="prettyprint">.my_element{margin-left:5px;} /* Cette déclaration est interprétée par tous les navigateurs */
html &gt; body .my_element{margin-left:8px;} /* ... Puis est écrasée par la suivante, sauf pour IE6 qui ne comprendra pas cette déclaration. */</code></pre>
<p>C&#8217;est pratique. Seulement IE7 ne corrige pas le bug pour lequel nous devions corriger la propriété margin. Pour le sélecteur d&#8217;enfants, pas de problème, IE7 l&#8217;interprète. Logiquement, le bug réapparaît.</p>
<p>En suivant la même méthode, il faut donc trouver un nouveau bug de sélecteur dans IE7, et revoir la CSS. Il arrive également que IE7 ne doive pas recevoir la même correction. Il faut donc trouver un bug qui s&#8217;applique à IE7 <strong>mais pas</strong> à IE6.<br />
Et comment être sûr de ne cibler qu&#8217;IE6 ? Un autre navigateur ne prenant pas en charge ce sélecteur pourrait exister.</p>
<p>Il nous faut une autre solution, permettant de cibler efficacement Internet Explorer.</p>
<h2>Les commentaires conditionnels</h2>
<p>Microsoft a ajouté quelque chose de formidable à Internet Explorer : les commentaires conditionnels.</p>
<p>Ils permettent de ne servir un contenu qu&#8217;à Internet Explorer en général, ou à une de ses versions, en utilisant une syntaxe particulière à l&#8217;intérieur de commentaires HTML.</p>
<p>Ils n&#8217;ont certainement pas être prévus pour ça au départ, mais ils sont aujourd&#8217;hui principalement utilisés pour corriger les bugs de ce navigateur.</p>
<p>Il est donc possible d&#8217;utiliser le code suivant :</p>
<pre><code class="prettyprint">&lt;!--[if IE 6]&gt; &lt;link rel="stylesheet" href="styles/internet-explorer-6.css" type="text/css" media="screen" /&gt; &lt;![endif]--&gt;
</code></pre>
<p>Pour un navigateur suivant la <a href="http://www.w3.org/TR/html4/intro/sgmltut.html#h-3.2.4">spécification HTML4.01</a>, la balise <code class="prettyprint">&lt;link&gt;</code> est simplement ignorée car elle est placée dans un commentaire, mais pas pour Internet Explorer. Il va lire ce commentaire, et si une condition est déclarée, et qu&#8217;elle correspond au navigateur utilisé, le code sera tout de même interprété.</p>
<p>Cette solution est fiable, car il n&#8217;existe aucune raison pour qu&#8217;un autre navigateur interprète, dans le passé ou l&#8217;avenir, un commentaire de ce type.</p>
<p>Il est donc possible de créer une CSS pour IE6, une autre pour IE7 au cas où, et allez, encore une pour les versions d&#8217;IE inférieures à 8, histoire de cibler toutes les version passées de ce vieil ami.</p>
<p>Nous voici donc avec notre feuille de style, et une, deux voire trois nouvelles pour Internet Explorer. Si les CSS du site sont réparties sur plusieurs fichiers, il va falloir créer autant de nouveaux ensembles de fichiers &laquo;&nbsp;IE&nbsp;&raquo;, ou les utiliser de manière globale en prenant le risque d&#8217;appliquer à certaines pages des styles qui ne leur sont pas destinés.</p>
<p>Avec le temps, cette solution est beaucoup moins pratique : il faut jongler avec plusieurs fichiers, se souvenir que la déclaration de la ligne 310 du fichier &laquo;&nbsp;home.css&nbsp;&raquo; est corrigée à la ligne 14 du fichier &laquo;&nbsp;internet-explorer-6.css&nbsp;&raquo;, mais aussi à la ligne 8 du fichier &laquo;&nbsp;internet-explorer-7.css&nbsp;&raquo;.</p>
<p>Il se pourrait aussi qu&#8217;un jour cette correction provoque un effet indésirable, placée dans un certain contexte. Il faudrait alors se souvenir que cet élément a été corrigé dans l&#8217;autre CSS, et que cette correction peut être la cause du dysfonctionnement.</p>
<p>Mais existe-t-il une méthode fiable <strong>et</strong> pratique ? P&#8217;t'êt&#8217; bien, ouais.</p>
<h2>Les commentaires conditionnels, en plus malin</h2>
<p>Il s&#8217;agit avec cette technique d&#8217;utiliser les commentaires conditionnels non pas pour appeler une feuille de style, mais pour entourer la page d&#8217;un conteneur qui prendra comme attribut &laquo;&nbsp;id&nbsp;&raquo; <code>IE6</code>, <code>IE7</code>, <code>IE</code> ou encore <code>NOTIE</code>.</p>
<p>Cet identifiant permettra de cibler précisément une version d&#8217;Internet Explorer, dans une CSS &laquo;&nbsp;normale&nbsp;&raquo;.</p>
<p>Le code se présente sous cette forme :</p>
<pre><code class="prettyprint">&lt;body&gt;
&lt;!--[if IE 6]&gt;&lt;div id="IE6"&gt;&lt;![endif]--&gt;</code></pre>
<p>Et avant la balise de fermeture <code class="prettyprint">&lt;/body&gt;</code> :</p>
<pre><code class="prettyprint">&lt;!--[if IE 6]&gt;&lt;/div&gt;&lt;![endif]--&gt;
&lt;/body&gt;</code></pre>
<p>Pour les navigateurs &laquo;&nbsp;normaux&nbsp;&raquo; et un outil de validation html, il s&#8217;agit de commentaires html tout à fait classiques, et sont ignorés.</p>
<p>De cette manière, il est aussi possible d&#8217;ajouter le support d&#8217;IE, en ajoutant une balise d&#8217;ouverture  <code class="prettyprint">&lt;div id="IE7"&gt;</code> en haut et en modifiant la condition du bas pour cibler IE6 et IE7 à la fois.</p>
<p>Nous pouvons aussi utiliser des conditions de type &laquo;&nbsp;n&#8217;est pas&nbsp;&raquo;, ce qui permet de cibler tous les navigateurs sauf IE.</p>
<p>Voici le code modifié :</p>
<pre><code class="prettyprint">&lt;body&gt;
&lt;!--[if IE 6]&gt;&lt;div id="IE6"&gt;&lt;![endif]--&gt;
&lt;!--[if IE 7]&gt;&lt;div id="IE7"&gt;&lt;![endif]--&gt;
&lt;!--[if (IE) &amp; (!IE 6) &amp; (!IE 7)]&gt;&lt;div id="IE"&gt;&lt;![endif]--&gt; &lt;!-- Pour les anciennes et prochaines versions d'Internet Explorer (autres que 6 et 7) --&gt;
&lt;!--[if !IE]&gt;--&gt;&lt;div id="NOTIE"&gt;&lt;!--&lt;![endif]--&gt; &lt;!-- Le commentaire est fermé, puis rouvert --&gt;

&lt;!-- Structure HTML de la page --&gt;

&lt;/div&gt; &lt;!-- Une simple fermeture de balise à la fin, car tous les navigateurs sont ciblés. --&gt;
&lt;/body&gt;
</code></pre>
<p>Il suffit ensuite d&#8217;utiliser ces sélecteurs de la même manière qu&#8217;un hack, mais plus clairement, plus facilement et surtout de manière <strong>fiable</strong> :</p>
<pre><code class="prettyprint">.mon_element{margin-left:2px;}
#IE .mon_element{margin-left:3px;}
#IE6 .mon_element{margin-left:4px;}
#IE7 .mon_element{margin-left:5px;}
#NOTIE .mon_element{margin-left:6px;}</code></pre>
<p>Evidemment l&#8217;exemple est stupide, puisqu&#8217;il n&#8217;y a aucune raison de cibler tous ces éléments à la fois.</p>
<p>Les avantages sont nombreux :</p>
<ul>
<li>C&#8217;est <strong>fiable</strong> : une nouvelle version d&#8217;Internet Explorer sera considérée comme &laquo;&nbsp;standard&nbsp;&raquo; (mais attention à l&#8217;utilisation de #NOTIE, qui ne sera vraisemblablement pas reconnue par les futures version d&#8217;Internet Explorer)</li>
<li>Une seule CSS à maintenir</li>
<li>Le code HTML et CSS reste parfaitement valide</li>
<li>La déclaration a du sens, il n&#8217;est pas utile de commenter ceci : <code>#IE6 .mon_element{margin:-3px;}</code></li>
<li>Lors de la sortie d&#8217;une nouvelle version d&#8217;IE, il suffit de lister les bugs qui n&#8217;ont pas été corrigés, et d&#8217;ajouter une nouvelle déclaration (IE8) pour ceux-ci.</li>
</ul>
<p>A vous ensuite de composer avec ces différents exemples pour créer une structure adaptée à vos besoins : l&#8217;utilisation des éléments <code class="prettyprint">&lt;div id="IE6"&gt;</code> et <code class="prettyprint">&lt;div id="IE7"&gt;</code> devraient suffire à la majorité des cas.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lesintegristes.net/2008/04/08/cibler-internet-explorer-dans-une-css-oui-et-sans-hack/feed/</wfw:commentRss>
		<slash:comments>28</slash:comments>
		</item>
		<item>
		<title>Que se passe-t-il en mode quirks ? (traduction)</title>
		<link>http://www.lesintegristes.net/2008/04/06/que-se-passe-t-il-en-mode-quirks-traduction/</link>
		<comments>http://www.lesintegristes.net/2008/04/06/que-se-passe-t-il-en-mode-quirks-traduction/#comments</comments>
		<pubDate>Sun, 06 Apr 2008 19:43:25 +0000</pubDate>
		<dc:creator>Eric Le Bihan</dc:creator>
				<category><![CDATA[Internet Explorer]]></category>
		<category><![CDATA[Intégration]]></category>
		<category><![CDATA[Navigateurs]]></category>

		<guid isPermaLink="false">http://www.lesintegristes.net/?p=50</guid>
		<description><![CDATA[Ce billet est la traduction de l&#8217;article &#171;&#160;What happens in Quirks mode&#160;&#187; de Jukka “Yucca” Korpela initialement paru sur le site du Tampere University of Technologie (Finlande) le 13 avril 2007, dernière modification le 28 février 2008.
Le mode quirks est un mode de fonctionnement des navigateurs Web tels qu&#8217;Internet Explorer (IE), Firefox et Opera. En gros, le mode quirks (aussi appelé mode compatibilité) signifie qu&#8217;un navigateur relativement moderne simule intentionnellement de nombreux bugs des anciens navigateurs, en particulier IE 4 et IE 5.
Le mode quirks est déclenché par le doctype sniffing aussi connu sous le nom de doctype&#160;[&#8230;]]]></description>
			<content:encoded><![CDATA[<p>Ce billet est la traduction de l&#8217;article <a href="http://www.cs.tut.fi/~jkorpela/quirks-mode.html">&laquo;&nbsp;What happens in Quirks mode&nbsp;&raquo;</a> de Jukka “Yucca” Korpela initialement paru sur le site du <a href="http://www.cs.tut.fi/~jkorpela/www.html">Tampere University of Technologie</a> (Finlande) le 13 avril 2007, dernière modification le 28 février 2008.</p>
<div class="preamble">Le <strong>mode quirks</strong> est un mode de fonctionnement des navigateurs Web tels qu&#8217;Internet Explorer (IE), Firefox et Opera. En gros, le mode quirks (aussi appelé <strong>mode compatibilité</strong>) signifie qu&#8217;un navigateur relativement moderne simule intentionnellement de nombreux bugs des anciens navigateurs, en particulier IE 4 et IE 5.</p>
<p>Le mode quirks est déclenché par le <strong>doctype sniffing</strong> aussi connu sous le nom de <strong>doctype switching</strong>. Cela signifie que le navigateur inspecte le début d&#8217;un document HTML pour voir si il contient une déclaration de doctype comme requis par les spécifications HTML.</p>
<p>Le but du mode quirks est de faire que les vieilles pages s&#8217;affichent comme l&#8217;a voulu  leur auteur. Les vieilles pages peuvent avoir été écrites pour utiliser les caractéristiques connues des vieux navigateurs ou du moins de s&#8217;y adapter. Pour plus d&#8217;informations sur le mode quirks, en général, consultez le site <a href="http://www.quirksmode.org/">QuirksMode.org</a>.</p>
<p>Il n&#8217;existe pas de spécification de ce qui se passe en mode Quirks. Après tout, le mode est, par essence, une violation intentionnelle des spécifications CSS et HTML. Cependant, puisque les auteurs peuvent avoir besoin d&#8217;une description de ce qui peut réellement se passer dans le mode quirks, j&#8217;ai rédigé ce document.</p>
<p>Si vous avez une <strong>page existante</strong> qui semble bien fonctionner mais qu&#8217;il lui manque une déclaration de doctype (exigés par les spécifications HTML), pour commencer vous devriez éviter d&#8217;ajouter cette déclaration. La raison en est que la déclaration fait basculer les navigateurs en mode standard opposé au mode quirks. Cela peut donner à peu près n&#8217;importe quoi. J&#8217;ai vu tout le contenu d&#8217;une page disparaître lorsqu&#8217;on ajoute une déclaration de doctype. Plus souvent, le [layout] change de façon plutôt inattendue. Eh bien, les résultats ne sont pas inattendus que ça si vous savez ce qui peut se passer en mode quirks. Avant d&#8217;ajouter une déclaration de doctype, vous devriez vérifier à la fois le code HTML et CSS pour la correction syntaxique en utilisant les validateurs et vérificateurs. Ce n&#8217;est peut-être pas assez, puisque la page pourrait encore avoir été écrit en se fondant sur ce qui «marche» en mode quirks. Ainsi, vous devez tester la page au moins sur IE 7 et Firefox 2 en mode standard, c&#8217;est-à-dire après avoir ajouté une déclaration de doctype. Si la page ne fonctionne pas alors, la liste suivante pourrait être utile pour repérer le problème.</p>
<p>Lors de la création d&#8217;une <strong>nouvelle page</strong>, vous n&#8217;avez pas besoin d&#8217;avoir de connaissances sur le mode quirks et ne devriez normalement pas y penser. Il suffit d&#8217;écrire selon les spécifications HTML et CSS, ce qui inclut l&#8217;utilisation d&#8217;une déclaration de doctype qui fera passer les navigateurs modernes en mode standard. En outre, la déclaration de doctype indiquée dès le début fait passer certains navigateurs en mode quirks, s&#8217;il y a quelque chose (même un commentaire) avant. (Ceci entraîne des problèmes si vous utilisez XHTML, mais dans la plupart des cas, vous ne devriez pas utiliser XHTML pour les pages Web de toute façon, pour l&#8217;instant.) Mais si vous décidez d&#8217;utiliser certaines fonctionnalités qui fonctionnent seulement  en mode Quirks, comme l&#8217;attribut <code>height = "100%"</code> pour l&#8217;élément table, il vous faudra vérifier la liste pour les autres incidences possibles.</p>
</div>
<p>En mode quirks, les navigateurs se comportent de la façon suivante, <em>bien que tous les navigateurs ne présentent pas toutes ces caractéristiques</em> :</p>
<ul class="line-breaks-li">
<li> Le <strong>modèle de boîte</strong> est incorrect (différent des spécifications CSS bien que peut-être intuitivement plus naturel). Cela veut dire que les propriétés de largeurs et de hauteurs, donnent les dimensions de l&#8217;élément&nbsp;&raquo;boîte&nbsp;&raquo; dans son intégralité incluant les marges intérieures (padding) et les bordures et non juste le contenu de l&#8217;élément. (<a href="#demo">Demo</a> plus loin dans ce document)</li>
<li> Les <strong>dimensions </strong>des éléments inline (par exemple les éléments span par défaut) prennent en compte les propriétés de largeur et de hauteur spécifiées  (alors que d&#8217;après les spécifications CSS, elles doivent être ignorées).</li>
<li> Les <strong>hauteurs en pourcentage</strong> pour les éléments (par exemple <code><br />
&lt;table style="height: 100%;" border="0"&gt;</code> en HTML ou table { height: 100% } en CSS) sont appliquées en utilisant la taille disponible  à titre de référence, même si le  bloc conteneur a sa hauteur fixée à auto (valeur par défaut). Dans le mode standard, la hauteur est déterminée par les exigences du contenu, mais la hauteur en pourcentage marche quand le bloc conteneur a une valeur spécifique comme hauteur.</li>
<li><strong> Overflow</strong> provoque l&#8217;agrandissement de la boite. Quand le contenu d&#8217;un élément ne rentre pas dans les dimensions spécifiées (explicitement ou implicitement), overflow:visible (valeur par défaut) veut dire que le contenu dépasse des dimensions définies de la boîte. En mode quirks, les dimensions changent, ça peut être vu facilement par exemple si la boîte à une couleur d&#8217;arrière plan ou une bordure.</li>
<li> Les <strong>marges intérieures (padding) pour les images </strong>sont ignorées lorsqu&#8217;elles sont définies en CSS pour l&#8217;élément img ou l&#8217;élément input de type image.</li>
<li> La <strong>marge horizontale </strong>par défaut d&#8217;une image flottante est de trois pixels (au lieu de zéro). Ce qui veut dire que si l&#8217;élément img a les attributs align=&nbsp;&raquo;left&nbsp;&raquo; ou align=&nbsp;&raquo;right&nbsp;&raquo; ou se voit appliquer les règles CSS float:left ou float:right, le navigateurs se comporte comme si l&#8217;image avait l&#8217;attribut hscpace=&nbsp;&raquo;3&#8243; (ou que sa marge de gauche ou de droite avait une valeur de 3px). Ceci ne s&#8217;applique qu&#8217;à IE; dans les autres navigateurs, le mode quirks provoquera cette marge d&#8217;un seul côté de l&#8217;image et sa largeur sera de 2 pixels au lieu de 3.</li>
<li> L&#8217;<strong>alignement vertical d&#8217;une image</strong> se fait sous certaines conditions sur le bas de la boite conteneur, et non sur la ligne de base du texte. Cela arrive quand l&#8217;image est le seul contenu à l&#8217;intérieur d&#8217;un élément, typiquement une cellule de tableau. Ceci veut dire que par exemple, une image dans une cellule de tableau est par défaut en bas de la cellule en mode quirks (ce qui est souvent ce que veut l&#8217;auteur) quand en mode standard il y a quelques pixels d&#8217;espacement en dessous de l&#8217;image (à moins qu&#8217;on indique, par exemple vertical-align:bottom pour l&#8217;élément img).</li>
<li><strong> Centrer</strong> un bloc en utilisant par exemple margin: 0 auto ne marche pas.</li>
<li> Les <strong>propriétés de font</strong> ne sont pas héritées de l&#8217;élément body pour les éléments inclus dans les tableaux. Ceci arrive surtout pour font-size mais peut également se produire pour font face, color et line-height. Par exemple, si vous mettez : body{font-family: arial}, il est possible que la police dans le tableau reste celle du navigateur par défaut.</li>
<li> Pour la propriété <strong>font size</strong> dans une cellule de tableau, un pourcentage est interprété comme relatif à la taille de base de la police du navigateur, et pas à la taille de police qui est appliquée à l&#8217;élément conteneur (la ligne du tableau) par les CSS.</li>
<li> Les<strong> valeurs de taille de police</strong> ne sont pas interprétées correctement, la taille medium est plus grande que la taille de police de base du navigateur et small est de la même taille. De la même manière, toute l&#8217;échelle, xx-small, x-small, small, large, x-large, xx-large, est systématiquement mal interprétée : chaque valeur est interprétée une taille plus grande qu&#8217;elle ne devrait l&#8217;être.</li>
<li> Les <strong>valeurs incorrectes</strong> des propriétés sont souvent interprétées comme des devinettes, par exemple margin: 10 pour margin: 10px et color:ffffff pour color:#ffffff. Cette erreur de traitement imposée viole les règles des CSS : une règle utilisant une valeur syntaxiquement incorrecte doit être ignorée.</li>
<li> La <strong>casse des lettres</strong> n&#8217;est pas prise en compte lors l&#8217;interprétation des sélecteurs de classe et d&#8217;id en CSS. Ainsi, le sélecteur .foo correspond à un élément ayant la classe class=&nbsp;&raquo;foo&nbsp;&raquo; ou class=&nbsp;&raquo;FOO&nbsp;&raquo;. Selon la spécification CSS, la casse des sélecteurs de classe ou d&#8217;id doit être prise en compte.</li>
<li> Les <strong>noms incorrects</strong> sont acceptés dans les classes et sélecteurs d&#8217;id. Plus précisément les noms commençant par un point ou un nombre (par exemple, les sélecteurs .123a et #42) sont acceptés.</li>
<li> La déclaration <strong>white-space: pre</strong> est ignorée.</li>
<li> La <strong>position fixed </strong>n&#8217;est pas supportée : la déclaration position: fixed est traitée comme position: static (dans IE7)</li>
<li> De nombreux ajouts au <strong>support des CSS </strong>( comme la propriété max-width et les sélecteurs d&#8217;attribut) dans IE7 ne sont pas utilisables en mode quirks. Ce qui veut dire que beaucoup de caractéristiques css n&#8217;étaient pas supportées dans IE6 et le sont dans IE7, mais seulement en mode standard. Voir le blog de Microsoft pour les <a href="http://blogs.msdn.com/ie/archive/2006/08/22/712830.aspx">détails sur les modifications CSS pour IE7</a>.</li>
<li><strong> Interprétation de soupe de balise</strong>. Par exemple, si un document contient le  code : <code>&lt;p&gt;<var>text</var>&lt;table&gt;...&lt;/table&gt;</code>, Firefox traite l&#8217;élément p comment étant le conteneur de l&#8217;élément table en mode quirks. Dans le mode standard, l&#8217;élément ouvrant de table ferme implicitement l&#8217;élément p. La différence peut être vue, quand par exemple on met une bordure sur l&#8217;élément p. De même, Firefox, accepte un élément ul à l&#8217;intérieur d&#8217;un élément font. IE suit des règles fausses dans ce genre de cas, même en mode standard, mais un comportement conforme aux standards peut être obtenu en utilisant du code valide et en utilisant explicitement des balises fermantes comme <code>&lt;/p&gt; </code>même quand elles sont facultatives.</li>
<li> Les <strong>espaces blancs</strong> entre les éléments peuvent être significatifs. Par exemple, disons que vous ayez une liste de liens. Normalement vous écririez le code avec des sauts de lignes entre les éléments de la liste, les éléments li (ce qui est entre les balises &lt;/li &gt; et 	&lt;li&gt;)<br />
<code> </p>
<pre>&lt;ul&gt;
&lt;li&gt;&lt;a ...&gt;...&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a ...&gt;...&lt;/a&gt;&lt;/li&gt;
...
&lt;/ul&gt;</pre>
<p></code><br />
Cependant, si vous indiquez display: block et une bordure pour les liens, vous vous retrouvez avec des écarts verticaux (des lignes vides) entre les éléments. Ceci arrive dans IE7 en mode quirks et toujours dans les versions précédentes d&#8217;IE.</li>
<li> Les formulaires ont une marge (<strong>margin-bottom)</strong> de 1em dans les navigateurs Mozilla. (Dans IE, il y a cette marge dans les deux modes). Ceci est apparemment destiné à poursuivre la tradition des navigateurs web de laisser autant d&#8217;espace sous un formulaire. C&#8217;est une question fréquemment posée : <a href="http://www.cs.tut.fi/~jkorpela/forms/extraspace.html">comment se débarasser de la ligne vide sous un formulaire</a>.</li>
<li> Les <strong>marges verticales </strong>sont supprimées dans certains contextes. Par exemple quand un élément p est le premier élément d&#8217;un élément td. Ceci est plus ou moins un comportement habituel dans les navigateurs et est présent dans IE dans les deux modes.</li>
<li> Les navigateurs <strong>Mozilla </strong>(comme Firefox et Seamonkey) ont des caractéristiques supplémentaires, documentés dans le fichier <a href="http://lxr.mozilla.org/seamonkey/source/layout/style/quirk.css">quirk.css</a>. Par exemple, la couleur par défaut des bordures de tableau est gris (gray) (comme dans la plupart des autres navigateurs), contrairement à l&#8217;utilisation de la couleur de premier plan en mode standard. Dans ces cas, le mode quirks est vraiment juste un mode différent de compatibilité. NB : Les paramètres de ce fichier ne s&#8217;appliquent pas à toutes les versions de Mozilla.</li>
</ul>
<p>La liste n&#8217;est probablement pas exhaustive. Elle se réfère principalement à IE7. Les autres navigateurs peuvent avoir un mode quirks qui ne simulent les anciennes versions de IE dans la même mesure.</p>
<h2 id="demo">Démo simple</h2>
<p>Les images suivantes montrent une des nombreuses différences entre le mode quirks et le mode standard dans Internet Explorer, à savoir le modèle de boîte. Voici les présentations du code suivant dans les deux modes :</p>
<p><code>&lt;div style="border: solid 2px #006; width: 8em; padding: 0 2em"&gt;stuff&lt;/div&gt;</code></p>
<p style="line-height:29px"><a href="http://www.lesintegristes.net/wp-content/uploads/2008/04/box11.gif"><img style="vertical-align:-9px" title="box11" src="http://www.lesintegristes.net/wp-content/uploads/2008/04/box11.gif" alt="Une boîte avec le text \" width="134" height="29" /></a>(Mode quirks)</p>
<p style="line-height:29px"><a href="http://www.lesintegristes.net/wp-content/uploads/2008/04/box2.gif"><img style="vertical-align:-9px" title="box2" src="http://www.lesintegristes.net/wp-content/uploads/2008/04/box2.gif" alt="Une boîte avec le texte \" width="203" height="29" /></a> (Mode standard)</p>
<p>Voilà l&#8217;élément rendu par votre navigateur actuel, pour une vérification rapide :</p>
<div style="margin-left:3px;font-size:medium;border: solid 2px #006; width: 8em; padding: 0 2em">stuff</div>
<p>L&#8217;explication est qu&#8217;en mode quirks, la propriété width est comprise (incorrectement) comme étant la largeur totale de la boîte, 8em dans ce cas. En mode standards, elle est comprise comme étant le total des éléments de la boîte, soit 12em (plus la largeur des bordures). La largeur totale inclut les marges intérieures (padding) gauche et droite, chacune d&#8217;une valeur de 2em.</p>
<p>Dans Firefox, le modèle de boîte correct est appliqué dans les deux modes. Cependant, on peut simuler le modèle de boîte incorrect utilisé par IE en mode quirks en utilisant la commande CSS/ utiliser le mode &laquo;&nbsp;border-box&nbsp;&raquo; dans l&#8217;extension &laquo;&nbsp;<a href="http://chrispederick.com/work/web-developer/">Web Developper</a>&nbsp;&raquo; (Qui est un outil très utile pour toute les questions relatives aux CSS et beaucoup d&#8217;autres choses)</p>
<h2>Vérifier le mode</h2>
<p>Pour vérifier dans quel mode est un navigateur (quirks contre standards),</p>
<p>Dans Firefox, utiliser la commande Outils/Informations sur la page (et regarder l&#8217;onglet général); ou si vous avez l&#8217;extension &laquo;&nbsp;Web Developer&nbsp;&raquo;, aller dans information/informations sur la page.</p>
<p>Pour IE, taper javascript:alert(document.compatMode) dans la barre d&#8217;adresse, et vérifier si la fenêtre d&#8217;alerte renvoit alors CSS1Compat (indiquant qu&#8217;il s&#8217;agit du mode standard) ou BackCompat (indiquant qu&#8217;il s&#8217;agit du mode quirks); autre alternative,télécharger et <a href="http://dorward.me.uk/www/bookmarklets/qors/">installer le Bokmarklet &laquo;&nbsp;Quirks or Standards Mode&nbsp;&raquo;</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lesintegristes.net/2008/04/06/que-se-passe-t-il-en-mode-quirks-traduction/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Faire cohabiter plusieurs versions d&#8217;Internet Explorer</title>
		<link>http://www.lesintegristes.net/2008/03/12/faire-cohabiter-plusieurs-version-dinternet-explorer/</link>
		<comments>http://www.lesintegristes.net/2008/03/12/faire-cohabiter-plusieurs-version-dinternet-explorer/#comments</comments>
		<pubDate>Wed, 12 Mar 2008 17:24:04 +0000</pubDate>
		<dc:creator>Eric Le Bihan</dc:creator>
				<category><![CDATA[Actualité]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Internet Explorer]]></category>
		<category><![CDATA[Intégration]]></category>
		<category><![CDATA[Navigateurs]]></category>

		<guid isPermaLink="false">http://www.lesintegristes.net/2008/03/12/faire-cohabiter-plusieurs-version-dinternet-explorer/</guid>
		<description><![CDATA[Avec la version béta d&#8217;Internet Explorer 8, se pose la question habituelle aux développeurs et intégrateurs à  chaque sortie d&#8217;une  nouvelle mouture du navigateur de Microsoft : comment faire cohabiter plusieurs versions d&#8217;Internet Explorer sur son PC ?
Habituellement faire cohabiter deux versions d&#8217;IE suffit, mais étant donné qu&#8217;une partie encore importante des internautes se cramponne au vieux navigateur IE6, il est souhaitable de pouvoir tester ses pages dans les trois dernières version du navigateur.
1ère étape : Installer Internet Explorer 8 version beta.
Pour celà aller sur le billet de Pierre du 6 mars dernier ou encore plus rapide&#160;[&#8230;]]]></description>
			<content:encoded><![CDATA[<p>Avec la version béta d&#8217;Internet Explorer 8, se pose la question habituelle aux développeurs et intégrateurs à  chaque sortie d&#8217;une  nouvelle mouture du navigateur de Microsoft : comment faire cohabiter plusieurs versions d&#8217;Internet Explorer sur son PC ?</p>
<p>Habituellement faire cohabiter deux versions d&#8217;IE suffit, mais étant donné qu&#8217;une partie encore importante des internautes se cramponne au vieux navigateur IE6, il est souhaitable de pouvoir tester ses pages dans les trois dernières version du navigateur.</p>
<p><strong>1ère étape : Installer Internet Explorer 8 version beta.</strong></p>
<p>Pour celà aller sur <a href="http://www.lesintegristes.net/2008/03/06/internet-explorer-8-beta-1/">le billet de Pierre du 6 mars dernier</a> ou encore plus rapide : <a href="http://www.microsoft.com/windows/products/winfamily/ie/ie8/default.mspx">ici</a>.</p>
<p>Une fois que c&#8217;est fait le navigateur installé, vous pouvez passer à l&#8217;étape 2.</p>
<p><strong>2ème étape : Installer les précédentes versions d&#8217;IE</strong></p>
<p>Il y a une solution que j&#8217;avais adopté pour la version précédente (la  7) : <a href="http://tredosoft.com/Multiple_IE">multiple IE</a>, le soucis c&#8217;est que ça ne fonctionne pas avec Windows Vista. Si vous avez Windows XP, c&#8217;est nickel, mais le problème c&#8217;est que vous n&#8217;aurez pas IE7 puisque multiple IE s&#8217;arrête à IE6.</p>
<p>La deuxième solution consiste à installer IE7 en version standalone. Pour les infos : <a href="http://www.lesintegristes.net/wp-admin/">c&#8217;est ici</a> ou <a href="http://tredosoft.com/IE7_standalone">encore ici</a>.<a href="http://www.lesintegristes.net/wp-admin/"><br />
</a></p>
<p>Une fois avoir installé IE7, on va essayer d&#8217;installer multiple IE, mais auparavant on va voir si IE8 et IE7 s&#8217;entendent&#8230; D&#8217;après mes tests, ça marche pas trop mal, mais il ne faut pas être gêné par les messages d&#8217;erreurs. J&#8217;ai principalement ce message au chargement de la première page dans IE7 :</p>
<p><code>L'ordinal 14 est introuvable dans la bibliothèque de liaisons dynamiques iertudil.dll</code></p>
<p>On peut ensuite installer Multiple IE. D&#8217;après mes test cette solution n&#8217;est pas pleinement fonctionnelle. Je n&#8217;ai pas pu accéder au champs de recherche de Google, impossible de prendre le focus&#8230;</p>
<p>Si vous n&#8217;avez pas XP mais Vista, vous allez forcément opter pour la troisième solution : installer un émulateur de PC pour faire tourner windows&#8230; sous windows. <a href="http://www.microsoft.com/france/windows/xp/virtualpc/default.mspx">Virtual PC</a> est disponible sur le site de Microsoft, mais je n&#8217;ai pas réussi à l&#8217;installer jusqu&#8217;au bout, il est vrai que je dispose de la version light de Vista, la home premium*, donc si vous êtes comme moi, vous allez plutôt vous porter sur mon deuxième choix : <a href="http://www.virtualbox.org/wiki/Downloads">Virtual Box</a>. Là pas de problème l&#8217;install se passe sans encombre. Il ne  reste plus qu&#8217;à installer la version native d&#8217;<a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=1E1550CB-5E5D-48F5-B02B-20B602228DE6&amp;displaylang=fr">IE6</a> ou <a href="http://www.microsoft.com/france/windows/downloads/ie/getitnow.mspx">IE7</a> en téléchargement sur le site de Microsoft.  Après, à vous de voir : soit installer multiple IE ou IE7 en version standalone, soit opter pour une version différente par PC virtuel&#8230;</p>
<p>Vous avouerez que ça fait pas mal de soucis pour un navigateur qu&#8217;on n&#8217;utilise uniquement pour tester ses pages, non ?</p>
<blockquote style="margin-top: 40px"><p>* <span class="bodyText" style="line-height: 150%">Host operating system: Windows Vista Business, Windows Vista Enterprise, Windows Vista Ultimate, Windows Server 2003 Standard Edition, Windows Server 2003 Standard x64 Edition, Windows XP Professional, or Windows XP Tablet PC Edition</span> (<a href="http://www.microsoft.com/windows/downloads/virtualpc/sysreq.mspx">source site microsoft.com</a>)</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.lesintegristes.net/2008/03/12/faire-cohabiter-plusieurs-version-dinternet-explorer/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>La vie des intégrateurs Chapitre I : Les intégrateurs sont-ils des développeurs ou des webdesigners&#160;?</title>
		<link>http://www.lesintegristes.net/2008/03/02/la-vie-des-integrateurs-chapitre-i-les-integrateurs-sont-ils-des-developpeurs-ou-des-webdesigner/</link>
		<comments>http://www.lesintegristes.net/2008/03/02/la-vie-des-integrateurs-chapitre-i-les-integrateurs-sont-ils-des-developpeurs-ou-des-webdesigner/#comments</comments>
		<pubDate>Sun, 02 Mar 2008 16:26:30 +0000</pubDate>
		<dc:creator>Eric Le Bihan</dc:creator>
				<category><![CDATA[Accessibilité]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Ergonomie]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Internet Explorer]]></category>
		<category><![CDATA[Intégration]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Référencement]]></category>
		<category><![CDATA[Sémantique]]></category>

		<guid isPermaLink="false">http://www.lesintegristes.net/2008/03/02/la-vie-des-integrateurs-chapitre-i-les-integrateurs-sont-ils-des-developpeurs-ou-des-webdesigner/</guid>
		<description><![CDATA[La question peut paraître incongrue, mais bien que ce métier commence à être reconnu (qui d&#8217;autre connait aussi bien les subtilités d&#8217;interprétation de navigateurs comme IE6 qui malgré son grand age continue à être utilisé par 40% des internautes français ?), ses représentants sont souvent ballotés d&#8217;un service à l&#8217;autre, développeurs frustrés pour certains, webdesigners en panne de créativité pour d&#8217;autres, il est difficile pour ces deux corps de métiers que sont le webdesign graphique et le développement informatique, de croire que ce métier auquel aucune école ne forme soit un choix délibéré. Pourtant quel autre métier prépare autant aux&#160;[&#8230;]]]></description>
			<content:encoded><![CDATA[<p>La question peut paraître incongrue, mais bien que ce métier commence à être reconnu (qui d&#8217;autre connait aussi bien les subtilités d&#8217;interprétation de navigateurs comme IE6 qui malgré son grand age continue à être utilisé par 40% des internautes français ?), ses représentants sont souvent ballotés d&#8217;un service à l&#8217;autre, développeurs frustrés pour certains, webdesigners en panne de créativité pour d&#8217;autres, il est difficile pour ces deux corps de métiers que sont le webdesign graphique et le développement informatique, de croire que ce métier auquel aucune école ne forme soit un choix délibéré. Pourtant quel autre métier prépare autant aux métiers de chef de projets, référenceur, ergonome ou expert es-accessibilité ? Aucun !</p>
<p>En effet loin d&#8217;être de simples exécutants, les intégrateurs sont souvent détenteurs d&#8217;un savoir et de compétences polyvalentes, car il faut bien l&#8217;avouer, ceux qui auparavant étaient regroupés sous le vocable fourre-tout de <em>webmaster</em> sont souvent des passionnés du web pour ne pas dire des accros ne comptant pas leurs heures de netsurfing afin de saisir toutes les subtilités qu&#8217;il est nécessaire de posséder pour arriver à concevoir le site parfait&#8230;</p>
<p>Prenez un intégrateur, immergez-le dans une entreprise pourvu d&#8217;un service webdesign et d&#8217;un service informatique, hésitez sur l&#8217;endroit où le placer  Informatique ? non webdesign ! non informatique ! non webdesign ! non informatique ! Bref ! Demandez lui de recruter quelques-uns de ces pairs (lui seul est en mesure de les reconnaitre). Voilà votre pôle intégration constitué.</p>
<p>Maintenant il s&#8217;agit de faire sa place&#8230; XHTML strict, accessibilité, ergonomie, javascript non intrusif, il vous sera difficile au départ de comprendre son langage. Il manie des concepts dont vous comprenez mal l&#8217;intérêt. Il paraît se compliquer la vie et opter délibérément pour des choix à l&#8217;exact opposé des votres, Ces modèles : Eric Meyer, Jakob Nielsen, Dean Edwards, Dave Shea sont des parfaits inconnus pour vous ! Vous n&#8217;avez pas de leçon à recevoir de ces nouveaux venus, vous vous en êtes bien passé jusque là !!! Pourvu que vous lui accordiez un peu d&#8217;attention, vous verrez assez rapidement que « l&#8217;intégrateur » cette bête curieuse va rapidement vous faciliter la vie.</p>
<p>Plus sérieusement : qu&#8217;est-ce qu&#8217;un intégrateur ? Quel est son rôle ?  Quelle doit être sa place ?</p>
<p>L&#8217;intégrateur maîtrise le code html ou xhtml, les styles en cascade (CSS) et a de bonnes notions de Javascript. Avec ces trois langages il est en mesure de vous construire une interface qui tient la route. En effet c&#8217;est lui qui va permettre de structurer les données dans la page web, chaque balise html ayant une utilité bien spécifique, il va donner de l&#8217;importance à la valeur sémantique de chacune. &lt;h1&gt; pour les titres, &lt;p&gt; pour les paragraphes, &lt;ul&gt;&lt;li&gt; pour les listes non ordonnées, etc..; la liste est très longue mais sachez qu&#8217;il existe 91 balises html et que toutes ont une utilité bien particulière.</p>
<p>Vous l&#8217;aurez compris l&#8217;intégrateur attache plus d&#8217;importance au sens de chacune de ces balise qu&#8217;à ces qualités graphiques. Les styles CSS étant spécifiquement dédiés à cette utilité depuis que les fabricants de navigateurs ont eu la bonne idée, mais un peu tardive il faut bien le dire, d&#8217; y implémenter les CSS. Il reste encore du boulot néanmoins, rendez-vous compte par vous même : <a HREF="http://www.webdevout.net/browser-support-css">compatibilité des css dans les navigateurs</a>.</p>
<p>Une fois qu&#8217;il a structuré sa page, ajouté les styles pour rendre la page plus agréable, il ne lui reste plus qu&#8217;à ajouter quelques comportements qui devront être non-intrusif (ça veut dire que sans JS ça marche quand même ! Magique, non ?). Effectivement l&#8217;intégrateur a toujours une petite pensée pour les minorités : ceux qui n&#8217;ont pas flash, qui n&#8217;ont pas javascript, qui ont de petits écrans, des vieux navigateurs (enfin pas aussi vieux qu&#8217;IE6 , j&#8217;espère), de mauvais yeux, des mouvements peu surs, des connexions lentes,  bref nous tous quoi ! :-)</p>
<p>Ce dernier point s&#8217;appelle l&#8217;accessibilité et sans pousser le bouchon trop loin, un zeste d&#8217;accessibilité dans un site ce sont des internautes en plus qui n&#8217;auraient certainement pas pu  y naviguer&#8230;</p>
<p>Je ne parlerais pas d&#8217;ergonomie, ni de référencement, ni même d&#8217;interopérabilité    parce que vous l&#8217;avez déjà compris un intégrateur ce n&#8217;est ni un développeur ni un webdesigner graphique, c&#8217;est bien autre chose ! Et le jour où une entreprise aura enfin compris ce qu&#8217;est la maitrise et la puissance de l&#8217;intégration, et bien ce jour là le web lui appartiendra ! (non je déconne là, vous emballez pas !) Enfin ce que je voulais dire c&#8217;est qu&#8217;intégrateur, c&#8217;est un métier !</p>
<p>Bon bah voilà, c&#8217;est dit. J&#8217;ai fini. <span STYLE="font-size: 11px">vous aussi vous faites ce métier ? ah ouais ?</span> <span STYLE="font-size: 10px">Bon on n&#8217;est pas seuls alors&#8230; </span><span STYLE="font-size: 9px">Et autrement ça se passe comment, vous ? Ah ouais ?</span> <span STYLE="font-size: 8px">Vous voulez pas nous en parler ? Dans les commentaires ?</span> <span STYLE="font-size: 7px">Ouais&#8230; parfait &#8230;</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.lesintegristes.net/2008/03/02/la-vie-des-integrateurs-chapitre-i-les-integrateurs-sont-ils-des-developpeurs-ou-des-webdesigner/feed/</wfw:commentRss>
		<slash:comments>34</slash:comments>
		</item>
		<item>
		<title>Des problèmes avec Firebug depuis Firefox 2.0.0.12 ?</title>
		<link>http://www.lesintegristes.net/2008/02/13/des-problemes-avec-firebug-depuis-firefox-20012/</link>
		<comments>http://www.lesintegristes.net/2008/02/13/des-problemes-avec-firebug-depuis-firefox-20012/#comments</comments>
		<pubDate>Wed, 13 Feb 2008 22:43:18 +0000</pubDate>
		<dc:creator>Pierre Bertet</dc:creator>
				<category><![CDATA[Intégration]]></category>
		<category><![CDATA[Outils]]></category>

		<guid isPermaLink="false">http://www.lesintegristes.net/2008/02/13/des-problemes-avec-firebug-depuis-firefox-20012/</guid>
		<description><![CDATA[Depuis la dernière mise à jour de Firefox (2.0.0.12), l’onglet &#171;&#160;HTML&#160;&#187; de Firebug n&#8217;affiche plus le style des liens.
Firebug 1.1 beta n&#8217;a pas ce problème : vous trouverez cette version sur le site du projet Fireclipse, dont le but est d&#8217;apporter une interaction entre Firebug et Eclipse.
Diverses améliorations et corrections de bugs ont été apportées au passage à notre très chère extension, mais il ne s&#8217;agit pas d&#8217;un fork : la version 1.1 finale sera bien distribuée sur getfirebug.com, comme l&#8217;indique un billet sur le blog du site.
Fireclipse regroupe les éléments suivants :

L&#8217;extension Firebug patchée
Un&#160;[&#8230;]]]></description>
			<content:encoded><![CDATA[<p>Depuis la dernière mise à jour de Firefox (2.0.0.12), l’onglet &laquo;&nbsp;HTML&nbsp;&raquo; de Firebug n&#8217;affiche plus le style des liens.</p>
<p>Firebug 1.1 beta n&#8217;a pas ce problème : vous trouverez cette version sur le site du projet <a href="http://fireclipse.xucia.com/">Fireclipse</a>, dont le but est d&#8217;apporter une interaction entre <a href="http://www.getfirebug.com/">Firebug</a> et <a href="http://www.eclipse.org/">Eclipse</a>.<br />
Diverses améliorations et corrections de bugs ont été apportées au passage à notre très chère extension, mais il ne s&#8217;agit pas d&#8217;un <a href="http://fr.wikipedia.org/wiki/Fork" rel="help">fork</a> : la version 1.1 finale sera bien distribuée sur getfirebug.com, comme l&#8217;indique <a href="http://www.getfirebug.com/blog/2008/02/05/firebug-11-moving-to-getfirebugcom/">un billet sur le blog du site</a>.</p>
<p>Fireclipse regroupe les éléments suivants :</p>
<ol>
<li>L&#8217;extension Firebug patchée</li>
<li>Un plugin Eclipse</li>
<li>Une extension à Firebug, lui permettant d&#8217;interagir avec Eclipse</li>
</ol>
<p>Ainsi, l&#8217;extension Firebug améliorée est totalement indépendante, et peut être installée seule.</p>
<p>Voici la liste des modifications apportées :</p>
<blockquote cite="http://fireclipse.xucia.com/#Downloads" lang="en">
<ul>
<li>eval() debugging</li>
<li>External editor interface</li>
<li>Browser-generated event handler debugging</li>
<li>Executable lines marked with green line numbers</li>
<li>User-controlled naming of eval() buffers</li>
<li>Stack side panel on &laquo;&nbsp;Script&nbsp;&raquo; panel for callstack</li>
<li>Supports Firefox 3</li>
<li>&laquo;&nbsp;Better&nbsp;&raquo; debugging icons</li>
<li>CSS errors report against source lines</li>
<li>Bug fixes (incl. issues 8, 69, 218, 230, 239, 249, 269, 314, 321, 345)</li>
<li>Internal firebug debug output</li>
</ul>
</blockquote>
<p>Je profite du sujet pour mentionner l&#8217;extension <a href="http://developer.yahoo.com/yslow/">YSlow pour Firebug</a> proposée par Yahoo!, permettant d&#8217;analyser vos pages (poids des éléments, nombre de requêtes, &#8230;) puis de consulter diverses optimisations afin d&#8217;en accélérer le rendu. Très pratique !</p>
<p>Télécharger Fireclipse / Firebug 1.1b : <a href="http://fireclipse.xucia.com/#Downloads">http://fireclipse.xucia.com/#Downloads</a><br />
Télécharger YSlow : <a href="https://addons.mozilla.org/en-US/firefox/addon/5369">https://addons.mozilla.org/en-US/firefox/addon/5369</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.lesintegristes.net/2008/02/13/des-problemes-avec-firebug-depuis-firefox-20012/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
