<?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 &#8211; Les intégristes</title>
	<atom:link href="/tag/css/feed/" rel="self" type="application/rss+xml" />
	<link>/</link>
	<description></description>
	<lastBuildDate>Thu, 31 Mar 2016 16:46:46 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.0</generator>
	<item>
		<title>Stylez-moi ce formulaire !</title>
		<link>/2010/08/17/stylez-moi-ce-formulaire/</link>
					<comments>/2010/08/17/stylez-moi-ce-formulaire/#comments</comments>
		
		<dc:creator><![CDATA[Eric Le Bihan]]></dc:creator>
		<pubDate>Tue, 17 Aug 2010 13:52:16 +0000</pubDate>
				<category><![CDATA[Front-end]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[jQuery]]></category>
		<guid isPermaLink="false">/?p=1120</guid>

					<description><![CDATA[Après avoir essayé à plusieurs reprises et par tous les moyens de styler les éléments d’un formulaire html pour donner vie aux créations des graphistes, il a bien fallu se rendre à l’évidence : ce n’est pas possible ! Déjà les styles ne sont pas appliqués de façon identique selon les navigateurs, mais en plus ces éléments diffèrent selon les systèmes d’exploitation et leurs versions successives, CQFD. 
Après avoir tenu ce discours : &#171;Non les formulaires, on ne peut pas les styler, désolé&#187; pendant des années, les webdesigners les plus tenaces sont revenus avec des exemples de sites en nous&#160;[&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Après avoir essayé à plusieurs reprises et par tous les moyens de styler les éléments d’un formulaire html pour donner vie aux créations des graphistes, il a bien fallu se rendre à l’évidence : ce n’est pas possible ! Déjà les styles ne sont pas appliqués de façon identique selon les navigateurs, mais en plus ces éléments diffèrent selon les systèmes d’exploitation et leurs versions successives, <a href="http://www.456bereastreet.com/archive/200409/styling_form_controls/">CQFD</a>. </p>
<p>Après avoir tenu ce discours : &laquo;Non les formulaires, on ne peut pas les styler, désolé&raquo; pendant des années, les webdesigners les plus tenaces sont revenus avec des exemples de sites en nous disant : &laquo;Tu me dis que c’est pas possible, mais là sur tel site, ils l’ont fait.&raquo;”</p>
<p>Ok, reprenons : styler des éléments de fomulaire html, ça ne donne pas un résultat terrible, mais&#8230; avec javascript on arrive à voir un résultat plutôt satisfaisant. La question est : faut-il utiliser du JS pour faire de la cosmétique ? Parce que la seule chose qu’on fait avec JS ce n’est pas styler des éléments de formulaires, mais au mieux cacher des éléments de formulaires (ou les rendre invisibles) pour leur substituer des éléments graphiques, au pire remplacer des éléments de formulaires par d’autres balises html qui elles pourront être stylées avec CSS. Par exemple, remplacer un select par une liste non ordonnée. Est-ce que le jeu en vaut la chandelle ? Est-ce qu’on va alourdir les pages et retarder leur affichage pour quelques effets que l’utilisateur ne remarquera même pas ?</p>
<p>La question que tout le monde se pose (ou peut-être qu’il n’y a que moi qui me la pose), c’est pourquoi on ne peut pas styler les éléments de formulaire ? Ok pour les input de type texte (et encore pas avec tous les navigateurs), mais pourquoi pas les listes déroulantes de type select, les cases à cocher ou autres boutons radio ? Y-a-t-il une raison à ça ou les fabricants de navigateurs, se sont dit : &laquo;oups, on a oublié les formulaires !&raquo; &laquo;Laisse tomber on va dire que c’est fait exprès.&raquo;</p>
<p>Argumentons dans le sens où c’est fait exprès : les internautes ont l’habitude de leur système d’exploitation, du coup ils vont toujours identifier ces éléments quelque soit le navigateur dans lequel ils sont, et ça en terme d’utilisabilité c’est imbattable ! Mouais, pas vraiment convaincant tout ça&#8230;</p>
<p>Est-ce qu’on se posait la question avant ? &laquo;Fais moi ça en flash c’est plus joli&raquo;. Ce serait de la faute de flash, alors ? Toujours est-il qu’on trouve de plus en plus de plugins qui permettent de faire ça facilement, tentant, non ? J’en ai essayé deux ou trois, je vous donne mon avis :</p>
<dl>
<dt><a href="http://www.filamentgroup.com/lab/jquery_ui_selectmenu_an_aria_accessible_plugin_for_styling_a_html_select/">jQuery UI selectmenu</a></dt>
<dd>Pas des plus facile à manipuler, mais très complet, il couvre largement le spectre des utilisations de menus avec des listes déroulantes. Trop de styles inline qui complique le skinning des css externes. A noter que ce plugin utilise les attributs ARIA pour l&rsquo;accessibilité.</dd>
<dt><a href="http://www.protofunc.com/scripts/jquery/checkbox-radiobutton/">jQuery UI checkbox</a></dt>
<dd>Simplissime. Par exemple pour une case à cocher il suffit d’initialiser le script de cette façon <code>$('input').checkBox();</code><br />
Et la case à cocher est remplacée par un span avec la classe “ui-checkbox”, il ne reste plus qu’à appliquer les CSS.</dd>
<dt><a href="http://www.prismstudio.co.uk/plugins/stylish-select/0.4/">jQuery Stylish select</a></dt>
<dd>Je ne l’ai pas testé personnellement, mais ça a été utilisé sur un projet récent dans ma boîte. Complètement customisable en CSS et ultra light.</dd>
<dt><a href="http://pixelmatrixdesign.com/uniform/">Uniform</a></dt>
<dd>Je suis tombé sur celui-ci il y a quelques jours, il me parait assez complet et facilement skinnable, une image sprite pour tous les éléments (vous pouvez créer des thèmes et les proposer sur le site), une fois les éléments stylés la navigation au clavier me parait correcte, reste juste à mettre plus en avant le focus sur les éléments.</dd>
</dl>
<p></p>
<p>Après c’est vous qui voyez&#8230; Personnellement, je ne trouve pas ça indispensable, mais pourquoi pas si les contraintes de conception ne sont pas trop draconiennes.</p>
<p>Bon je repose ma question aux concepteurs de navigateurs : Pourquoi les éléments de formulaire ne peuvent être stylés de la même façon que les autres balises html ?</p>
]]></content:encoded>
					
					<wfw:commentRss>/2010/08/17/stylez-moi-ce-formulaire/feed/</wfw:commentRss>
			<slash:comments>15</slash:comments>
		
		
			</item>
		<item>
		<title>Centrer un texte en hauteur</title>
		<link>/2009/03/02/centrer-un-texte-en-hauteur/</link>
					<comments>/2009/03/02/centrer-un-texte-en-hauteur/#comments</comments>
		
		<dc:creator><![CDATA[Eric Le Bihan]]></dc:creator>
		<pubDate>Mon, 02 Mar 2009 17:00:08 +0000</pubDate>
				<category><![CDATA[Front-end]]></category>
		<category><![CDATA[centrer]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[hauteur]]></category>
		<guid isPermaLink="false">/?p=611</guid>

					<description><![CDATA[Je réagis à un billet de Jay Salvat qui explique comment centrer un texte en hauteur (et en largeur). Je n&#8217;avais pas prévu de faire un billet à la base mais de laisser un commentaire sur http://blog.jaysalvat.com./  Devant l&#8217;impossibilité de laisser un commentaire avec du code html et css, je vais détailler ici deux différentes façons de centrer un texte en hauteur (deux manières qui, nous allons le voir, sont complémentaires).
Pour un code html donné :
&#60;div id=&#34;container&#34;&#62;
    &#60;div class=&#34;level1&#34;&#62;
        &#60;div class=&#34;level2&#34;&#62;
            Texte centré en hauteur&#60;br /&#62;
            sur plusieurs lignes
        &#60;/div&#62;
     &#60;/div&#62;
&#60;/div&#62;
Appliquons un code css qui va&#160;[&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Je réagis à <a href="http://blog.jaysalvat.com/articles/snippet-centrer-du-texte-en-hauteur.php">un billet de Jay Salvat qui explique comment centrer un texte en hauteur</a> (et en largeur). Je n&rsquo;avais pas prévu de faire un billet à la base mais de laisser un commentaire sur <a href="http://blog.jaysalvat.com/">http://blog.jaysalvat.com/</a>.  Devant l&rsquo;impossibilité de laisser un commentaire avec du code html et css, je vais détailler ici deux différentes façons de centrer un texte en hauteur (deux manières qui, nous allons le voir, sont complémentaires).</p>
<p>Pour un code html donné :</p>
<pre class="brush:html;">&lt;div id=&quot;container&quot;&gt;
    &lt;div class=&quot;level1&quot;&gt;
        &lt;div class=&quot;level2&quot;&gt;
            Texte centré en hauteur&lt;br /&gt;
            sur plusieurs lignes
        &lt;/div&gt;
     &lt;/div&gt;
&lt;/div&gt;</pre>
<p>Appliquons un code css qui va permettre de considérer la <em>div</em> contenant le texte comme une cellule de tableau :</p>
<pre class="brush:css;">div{width:500px;}
#container{height:80px;background-color:red;display:table;}
.level1{display:table-cell;vertical-align:middle;}</pre>
<p>Le conteneur (<em>#container</em>) est considéré comme étant l&rsquo;élément <em>table</em> (cette ligne n&rsquo;est pas obligatoire comme nous l&rsquo;avons vu dans <a href="/2008/11/12/quoi-de-neuf-du-cote-des-layout/">un autre article des Intégristes qui explique le fonctionnement du <code class="prettyprint">display:table</code></a>), la <em>div</em> qui a la classe <em>level1</em> est considérée comme étant une cellule de tableau et se comportera de la même manière. Pour centrer le texte en hauteur on lui applique le couple propriété/valeur <code class="prettyprint">vertical-align:middle</code>.</p>
<p>Un petit tour des navigateurs les plus communément utilisés, nous permet de nous rendre compte que cette solution ne convient pas à Internet Explorer (6 et 7). Nous allons nous servir de la <em>div.level2</em> qui n&rsquo;avait aucune utilité dans l&rsquo;exemple précédent pour appliquer le code CSS suivant uniquement à Internet Explorer en utilisant les commentaires conditionnels HTML :</p>
<pre class="brush:css;">&lt;!--[if IE]&gt;
&lt;style type=&quot;text/css&quot; media=&quot;screen&quot;&gt;
div{width:500px;}
#container{height:80px;position:relative;background-color:red;}
.level1{position:absolute;top:50%;}
.level2{position:relative;top:-50%;}
&lt;/style&gt;
&lt;![endif]--&gt;</pre>
<p>Pour que le code css précédemment créé et qui fonctionne dans les navigateurs hors IE ne s&rsquo;applique pas à IE, nous allons ajouter, les commentaires suivants :</p>
<pre class="brush:html;">&lt;!--[if !IE]&gt;--&gt;

&lt;!--&lt;![endif]--&gt;</pre>
<p>Ce qui donne</p>
<pre class="brush:css;">&lt;!--[if !IE]&gt;--&gt;
&lt;style type=&quot;text/css&quot; media=&quot;screen&quot;&gt;
div{width:500px;}
#container{height:80px;background-color:red;display:table;}
.level1{display:table-cell;vertical-align:middle;}
&lt;/style&gt;
&lt;!--&lt;![endif]--&gt;</pre>
<p>Vous allez certainement me poser ma question : pourquoi ne pas appliquer la deuxième solution à tous les navigateurs et pas uniqument à IE6 ?<br />
Tout bonnement parce que la deuxième solution ne fonctionne que dans IE !</p>
<p>Plus d&rsquo;exemples dans ce <a href="http://blog.themeforest.net/tutorials/vertical-centering-with-css/">tutorial vraiment complet du blog In The Woods »</a></p>
]]></content:encoded>
					
					<wfw:commentRss>/2009/03/02/centrer-un-texte-en-hauteur/feed/</wfw:commentRss>
			<slash:comments>5</slash:comments>
		
		
			</item>
		<item>
		<title>Quoi de neuf du côté des mises en page CSS (CSS Layouts) ?</title>
		<link>/2008/11/12/quoi-de-neuf-du-cote-des-layout/</link>
					<comments>/2008/11/12/quoi-de-neuf-du-cote-des-layout/#comments</comments>
		
		<dc:creator><![CDATA[Eric Le Bihan]]></dc:creator>
		<pubDate>Wed, 12 Nov 2008 11:00:10 +0000</pubDate>
				<category><![CDATA[Front-end]]></category>
		<category><![CDATA[CSS]]></category>
		<guid isPermaLink="false">/?p=226</guid>

					<description><![CDATA[Grégoire Dierendonck
Vous avez certainement lu comme moi, que tout ce que vous saviez sur les css étaient faux en lisant l&#8217;article de Digital Web par Rachel Andrew. Je n&#8217;ai pas lu le livre, mais à la lecture de l&#8217;article j&#8217;ai voulu tester une nouvelle manière de mettre en page mon code html. Avec l&#8217;arrivée d&#8217;IE8, on va pouvoir enfin utiliser les propriétés CSS display:table, display:table-row et autres display:cell. Et je me pose la question suivante : à quoi servent réellement ces propriétés ? Parce que si on a bataillé, argumenté et convaincu des dizaines de personnes que les tableaux&#160;[&#8230;]]]></description>
										<content:encoded><![CDATA[<div style="margin: 0pt 0pt 5px 5px; float: right; width: 283px; font-size: 10px; text-align: center;"><a href="/wp-content/uploads/2008/11/chicken-css1.jpg"><img loading="lazy" src="/wp-content/uploads/2008/11/chicken-css1.jpg" alt="Illustration par Grégoire Dierendonck" width="283" height="351" /></a><br />
<a style="margin-left:10px;text-decoration:none;" href="http://www.troispongdesign.fr/"><em>Grégoire Dierendonck</em></a></div>
<p>Vous avez certainement lu comme moi, que <em>tout ce que vous saviez sur les css étaient faux</em> en lisant l&rsquo;article de <a href="http://www.digital-web.com/articles/everything_you_know_about_CSS_Is_wrong/">Digital Web par Rachel Andrew</a>. Je n&rsquo;ai pas lu le livre, mais à la lecture de l&rsquo;article j&rsquo;ai voulu tester une nouvelle manière de mettre en page mon code html. Avec l&rsquo;arrivée d&rsquo;IE8, on va pouvoir enfin utiliser les propriétés CSS <code>display:table</code>, <code>display:table-row</code> et autres <code>display:cell</code>. Et je me pose la question suivante : à quoi servent réellement ces propriétés ? Parce que si on a bataillé, argumenté et convaincu des dizaines de personnes que <em>les tableaux c&rsquo;est mal</em>, c&rsquo;est pas pour simuler des tableaux en CSS ! Justement l&rsquo;auteure nous réponds à ce sujet :</p>
<blockquote><p>L&rsquo;élément table en HTML est une structure sémantique, il décrit des données. Par conséquent, l&rsquo;élément table est à utiliser uniquement pour des données tabulaires, par exemple un tableau mettant en forme des informations financières. Ces informations seraient normalement stockées dans une feuille de calcul sur votre ordinateur, il faudrait probablement un tableau pour les présenter en HTML.</p>
<p>La valeur <em>table</em> de la propriété <em>display</em>, d&rsquo;un autre côté est simplement une indication de la présentation à afficher dans le navigateur &#8211; elle n&rsquo;a pas de signification sémantique. Utiliser un élément <em>table</em> pour votre mise en page donne l&rsquo;information suivante au <em>user-agent</em> : ces données sont tabulaires. Utiliser plusieurs divs qui ont la propriété <em>display</em> avec les valeurs <em>table</em> ou <em>table cell</em>, ne dit rien de plus au <em>user agent</em> que demander de les rendre visuellement d&rsquo;une certaine façon, s&rsquo;il en a la capacité.</p></blockquote>
<p>Donc pas de problème, du moment que notre code html reste sémantique, on peut y aller ?</p>
<p>Quels sont actuellement les moyens dont nous disposons pour mettre notre code html en forme ?</p>
<ol>
<li><strong>Mise en forme <em>à l&rsquo;ancienne </em></strong>
<p>Il y a quelques années (au temps de netscape 4 et IE 5.5), j&rsquo;aurais fait (à peu près) une mise en forme de ce style :</p>
<p><a href="/demos/2008/11/layouts/table-layout.html"> </a></p>
<p><a href="/demos/2008/11/layouts/table-layout.html">Mise en page en tableau</a></li>
<li><strong>Mise en page avec des éléments flottants * </strong>
<p>Pour moi la façon la plus fluide de mettre une page en forme, et qui permet beaucoup de flexibilité.</p>
<p><a href="/demos/2008/11/layouts/float-css-layout.html"> </a></p>
<p><a href="/demos/2008/11/layouts/float-css-layout.html">Mise en page avec des divs flottants</a></li>
<li><strong>Mise en page avec des éléments en absolu * </strong>
<p>Pratique dans certains cas mais je ne la conseillerais pas, trop figée pour des sites qui évoluent en permanence.<a href="/demos/2008/11/layouts/position-css-layout.html"></p>
<p>Mise en page avec des éléments en absolu</a></li>
<li><strong>Mise en page avec des display:table</strong>
<p>L&rsquo;article de Digital web présente cette façon de faire. En lisant l&rsquo;article, ça a l&rsquo;air simple. <q cite="http://www.cineartistes.com/index.php?page=afficher&amp;id=Raymond+Souplex">Bon sang, mais c&rsquo;est bien sur !</q> Pourquoi n&rsquo;avions nous pas pensé à cette façon de faire plus tôt ? Bon, ok, on l&rsquo;oublie à cause d&rsquo;IE6, mais parfois on aime bien se projeter dans le futur et essayer de nouvelles choses, juste pour le sport&#8230; Je reprends donc mon design minimaliste : un header, une colonne de gauche, une colonne de droite et un footer. Simple. Je me base sur mon intégration <em>old school</em> et essaie d&rsquo;appliquer la méthode vue dans l&rsquo;article cité ci-dessus. Pas besoin de reprendre l&rsquo;intégralité du code des tableaux (thead, tbody, tfoot, tr, etc&#8230;) puisque les éléments manquants sont créés virtuellement par le navigateur.</p>
<p><a href="/demos/2008/11/layouts/table-css-layout.html"></a></p>
<p><a href="/demos/2008/11/layouts/table-css-layout.html">Une esquisse de résultat&#8230;</a></li>
</ol>
<p>Essayons maintenant de faire un colspan&#8230; hum, comment fait-on ? Puisque les propriétés du tableau sont définies en CSS et pas en HTML ? Après maintes recherches je déclare forfait. Avez-vous la réponse ?</p>
<p>En reprenant l&rsquo;article, je me rends compte que ce n&rsquo;est pas évoqué. Les seuls cas envisagés sont simples voire simplistes. Ok pour un site perso, mais ce n&rsquo;est vraiment pas adapté pour un environnement professionnel. Loin de révolutionner notre façon d&rsquo;utiliser les CSS, cette démonstration reste pour moi rien de plus qu&rsquo;un exercice de styles&#8230;</p>
<p>On devra certainement attendre longtemps avant de voir arriver des CSS spécialement dédiés à la mise en forme de page web, en attendant vous pouvez toujours aller voir le document de travail <a href="http://www.w3.org/TR/css3-layout/">Advanced Layout</a> du W3C.</p>
<p>*<em> Des tas d&rsquo;exemples de mise en page sur les sites suivants :</em></p>
<p><a href="http://layouts.ironmyers.com/100_percent_Layouts/">http://layouts.ironmyers.com/100_percent_Layouts/</a><br />
<a href="http://blog.html.it/layoutgala/"><span style="text-decoration: underline;">http://blog.html.it/layoutgala/</span></a><br />
<a href="http://sherina.blogsome.com/2008/07/29/10-css-layout-demos/">http://sherina.blogsome.com/2008/07/29/10-css-layout-demos/</a><br />
<a title="http://css-discuss.incutio.com/?page=CssLayouts" href="http://css-discuss.incutio.com/?page=CssLayouts">http://www.smashingmagazine.com/2007/01/12/free-css-layouts-and-templates</a><br />
<a href="http://css-discuss.incutio.com/?page=CssLayouts">http://css-discuss.incutio.com/?page=CssLayouts</a><br />
<a href="http://www.free-css.com/free-css-layouts/page1.php">http://www.free-css.com/free-css-layouts/page1.php</a><br />
<a href="http://www.code-sucks.com/css%20layouts/faux-css-layouts/">http://www.code-sucks.com/css%20layouts/faux-css-layouts/</a><br />
<a href="http://www.free-css.com/free-css-layouts/page1.php">http://www.free-css.com/free-css-layouts/page1.php</a></p>
]]></content:encoded>
					
					<wfw:commentRss>/2008/11/12/quoi-de-neuf-du-cote-des-layout/feed/</wfw:commentRss>
			<slash:comments>5</slash:comments>
		
		
			</item>
		<item>
		<title>Utiliser la propriété display: inline-block</title>
		<link>/2008/06/18/utiliser-la-propriete-displayinline-block/</link>
					<comments>/2008/06/18/utiliser-la-propriete-displayinline-block/#comments</comments>
		
		<dc:creator><![CDATA[Eric Le Bihan]]></dc:creator>
		<pubDate>Wed, 18 Jun 2008 21:55:56 +0000</pubDate>
				<category><![CDATA[Front-end]]></category>
		<category><![CDATA[Astuces]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<guid isPermaLink="false">/?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 « block » à un élément ayant un comportement de type « inline », 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&#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&rsquo;appliquer des styles de type « block » à un élément ayant un comportement de type « inline », 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&rsquo;incomplètement  prise en compte par les différents navigateur, il est possible de l&rsquo;utiliser avec quelques connaissances supplémentaires, démonstration :</p>
<p>Prenons l&rsquo;exemple simple d&rsquo;un formulaire d&rsquo;inscription, où il faut aligner des label à 150px du bord d&rsquo;<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&rsquo;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="/demos/css/inline_block.html"><img loading="lazy" class="align left size-full wp-image-66" title="form-inline-block" src="/wp-content/uploads/2008/06/form-inline-block.png" alt="Formulaire en inline-block" width="343" height="181" srcset="/wp-content/uploads/2008/06/form-inline-block.png 343w, /wp-content/uploads/2008/06/form-inline-block-300x158.png 300w" sizes="(max-width: 343px) 100vw, 343px" /></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&rsquo;est pas possible d&rsquo;avoir des textes sur plusieurs lignes&#8230;</p>
]]></content:encoded>
					
					<wfw:commentRss>/2008/06/18/utiliser-la-propriete-displayinline-block/feed/</wfw:commentRss>
			<slash:comments>11</slash:comments>
		
		
			</item>
		<item>
		<title>Les nouveaux navigateurs débarquent (attention ils mordent)</title>
		<link>/2008/06/12/les-nouveaux-navigateurs-debarquent-attention-ils-mordent/</link>
					<comments>/2008/06/12/les-nouveaux-navigateurs-debarquent-attention-ils-mordent/#comments</comments>
		
		<dc:creator><![CDATA[Pierre Bertet]]></dc:creator>
		<pubDate>Thu, 12 Jun 2008 12:44:25 +0000</pubDate>
				<category><![CDATA[Front-end]]></category>
		<category><![CDATA[Actualité]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Navigateurs]]></category>
		<guid isPermaLink="false">/?p=64</guid>

					<description><![CDATA[Opera 9.5 vient tout juste de sortir dans sa version finale, et la liste des changements est impressionnante (vous pouvez également consulter un article présentant les nouveautés aux développeurs).
La date de sortie de Firefox 3 a été fixée au 17 juin.
Safari 3.1 attend ses nouveaux camarades depuis quelques temps déjà.
Dans quelques jours, les internautes auront à disposition trois navigateurs web d&#8217;excellente qualité.
Javascript
Les performances de Javascript sont plus élevées que jamais, et c&#8217;est loin d&#8217;être fini :
Firefox 4 utilisera le moteur ECMAScript de Flash Player, Tamarin.
Le projet Webkit (le moteur de rendu utilisé par&#160;[&#8230;]]]></description>
										<content:encoded><![CDATA[<p><strong>Opera 9.5</strong> <a href="http://my.opera.com/community/blog/2008/06/10/dear-opera-community">vient tout juste de sortir</a> dans sa version finale, et la <a href="http://www.opera.com/docs/changelogs/windows/950/">liste des changements</a> est impressionnante (vous pouvez également consulter un <a href="http://dev.opera.com/articles/view/opera-9-5-the-next-generation-of-web-s/">article présentant les nouveautés aux développeurs</a>).</p>
<p>La date de sortie de <strong>Firefox 3</strong> a été fixée au <a href="http://developer.mozilla.org/devnews/index.php/2008/06/11/coming-tuesday-june-17th-firefox-3/">17 juin</a>.</p>
<p><strong>Safari 3.1</strong> attend ses nouveaux camarades depuis quelques temps déjà.</p>
<p>Dans quelques jours, les internautes auront à disposition trois navigateurs web <em>d&rsquo;excellente qualité</em>.</p>
<h2>Javascript</h2>
<p>Les performances de Javascript sont plus élevées que jamais, et c&rsquo;est loin d&rsquo;être fini :</p>
<p>Firefox 4 utilisera le moteur ECMAScript de Flash Player, <a href="http://www.mozilla.org/projects/tamarin/">Tamarin</a>.</p>
<p>Le projet Webkit (le moteur de rendu utilisé par Safari) est lui aussi en train de passer à un nouveau moteur Javascript, <a href="http://webkit.org/blog/189/announcing-squirrelfish/">SquirrelFish</a>, qui est extrêmement rapide.</p>
<p>Le nom de code de la prochaine version du navigateur Opera est <a href="http://www.opera.com/products/desktop/next/">Peregrine</a>, « pèlerin » en français, et il n&rsquo;a pas été choisi au hasard :</p>
<blockquote><p>Le faucon pèlerin, ou Falco peregrinus (Tunstall, 1771), est un rapace robuste de taille moyenne, réputé pour être l’oiseau le plus rapide du monde. Les mesures de la vitesse lors de la phase plongeante de l&rsquo;attaque varient généralement entre 130 et 184 km/h. La vitesse maximale mesurée serait de 390 km/h.</p></blockquote>
<h2>CSS</h2>
<p>CSS 2.1 est maintenant correctement supporté dans ces trois navigateurs (Firefox 3 permet <strong>enfin</strong> d&rsquo;utiliser la propriété <code>display:inline-block</code> !), et de plus en plus de propriétés CSS 3 (qui n&rsquo;est pas une recommandation et continue d&rsquo;évoluer) sont d&rsquo;ores et déjà implémentées.</p>
<p>Évidemment, Firefox passe avec succès le <a href="http://www.webstandards.org/files/acid2/test.html">test Acid2</a>.</p>
<h2>HTML</h2>
<p>Certains éléments de la future recommandation HTML5 (encore loin d&rsquo;être finalisé) commencent réellement à être utilisables.</p>
<p>L&rsquo;élément <strong><a href="http://www.whatwg.org/specs/web-apps/current-work/#the-canvas">canvas</a></strong> est en plein explosion. Les exemples suivants utilisent cet élément et fonctionnent sur Firefox 3, Opera 9.5 et Safari 3.1 :</p>
<ul>
<li><a href="http://www.abrahamjoffe.com.au/ben/canvascape/">Canvascape</a>, une démo de moteur 3D de type « Doom-like ».</li>
<li><a href="http://blog.nihilogic.dk/2008/05/8-kilobytes-of-mario.html">Un clone de Mario Bros</a></li>
<li><a href="http://blog.nihilogic.dk/2008/05/javascript-super-mario-kart.html">Un clone de Super Mario Kart</a></li>
<li><a href="http://bomomo.com/">Bomomo</a>, une expérimentation très intéressante<a href="http://bomomo.com/"><br />
</a></li>
<li><a href="http://www.pixastic.com/">Pixastic</a>, un outil de retouche photo</li>
<li><a href="http://www.nihilogic.dk/labs/chess/">Un jeu d&rsquo;échecs en 3D</a></li>
</ul>
<p>Ce n&rsquo;est qu&rsquo;un début : <a href="http://blog.vlad1.com/2007/11/26/canvas-3d-gl-power-web-style/">l&rsquo;élément canvas3D</a> devrait permettre d&rsquo;utiliser l&rsquo;accélération 3D des cartes graphiques.</p>
<p>Le support de <strong>SVG</strong> s&rsquo;améliore encore, et il est maintenant aussi simple d&rsquo;afficher des images vectorielles que d&rsquo;afficher une image bitmap (Jpeg, PNG) dans une page. Les nouvelles versions de Safari et d&rsquo;Opera permettent d&rsquo;utiliser des images SVG dans la propriété CSS background-image.</p>
<p>Des versions expérimentales de Firefox, Opera et Safari permettent d&rsquo;utiliser l&rsquo;élément <a href="http://www.whatwg.org/specs/web-apps/current-work/#video"><strong>video</strong> défini dans HTML5</a>.</p>
<h2>Et Internet Explorer ?</h2>
<p>Il semblerait que plus personne n&rsquo;attende quoi que ce soit de ce navigateur. L&rsquo;innovation sur le web, longtemps paralysée, est enfin repartie à plein régime, laissant de côté ce navigateur.</p>
<p>Internet Explorer 6 est toujours en circulation, et la plupart des sites se doivent encore de le prendre en compte aujourd&rsquo;hui, mais on est très loin des méthodes de conception utilisées il y a quelques années : créer différentes versions d&rsquo;un site par navigateur est non seulement impossible, mais également inadapté au web d&rsquo;aujourd&rsquo;hui, standard et universel.</p>
<p>Les méthodes de travail ont changé : un site est d&rsquo;abord conçu pour les standards, puis adapté pour Internet Explorer, de manière <a href="/2008/04/08/cibler-internet-explorer-dans-une-css-oui-et-sans-hack/">plus</a> ou <a href="/2008/01/08/ie7js-v20-beta/">moins</a> élégante. Des hacks existent pour émuler SVG, l<a href="http://code.google.com/p/explorercanvas/">&lsquo;élément canvas </a>et CSS2.1. Les exigences pour ce navigateur ont été globalement revues à la baisse : l&rsquo;essentiel est que l&rsquo;internaute accède aux informations.</p>
<p>Internet Explorer 8 nous promet de belles choses, mais personne ne l&rsquo;attend plus. <a href="http://standblog.org/blog/post/2005/11/06/93114485-promouvoir-le-choix-et-l-innovation"><strong>Le choix et l&rsquo;innovation sur le web sont définitivement de retour</strong></a>, et ils s&rsquo;en passeront volontiers.</p>
<p>Comment voyez-vous l&rsquo;évolution du web dans les douze prochains mois ?</p>
]]></content:encoded>
					
					<wfw:commentRss>/2008/06/12/les-nouveaux-navigateurs-debarquent-attention-ils-mordent/feed/</wfw:commentRss>
			<slash:comments>4</slash:comments>
		
		
			</item>
		<item>
		<title>Cibler Internet Explorer dans une CSS ? Oui, et sans hack.</title>
		<link>/2008/04/08/cibler-internet-explorer-dans-une-css-oui-et-sans-hack/</link>
					<comments>/2008/04/08/cibler-internet-explorer-dans-une-css-oui-et-sans-hack/#comments</comments>
		
		<dc:creator><![CDATA[Pierre Bertet]]></dc:creator>
		<pubDate>Tue, 08 Apr 2008 21:01:58 +0000</pubDate>
				<category><![CDATA[Front-end]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Internet Explorer]]></category>
		<category><![CDATA[Navigateurs]]></category>
		<guid isPermaLink="false">/?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 « moderne », 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&#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 « moderne », puis on corrige les différents problèmes rencontrés sur Internet Explorer, surtout dans sa version 6, qui commence à sérieusement à s&rsquo;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&rsquo;é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&rsquo;est toujours ça de pris.</p>
<p>Malheureusement ça ne suffit pas toujours, et il n&rsquo;y a parfois d&rsquo;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&rsquo;enfant : <code class="prettyprint">html &gt; body</code></p>
<p>IE6 ne comprend pas le sélecteur « &gt; ». 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&rsquo;est pratique. Seulement IE7 ne corrige pas le bug pour lequel nous devions corriger la propriété margin. Pour le sélecteur d&rsquo;enfants, pas de problème, IE7 l&rsquo;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&rsquo;applique à IE7 <strong>mais pas</strong> à IE6.<br />
Et comment être sûr de ne cibler qu&rsquo;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&rsquo;à Internet Explorer en général, ou à une de ses versions, en utilisant une syntaxe particulière à l&rsquo;intérieur de commentaires HTML.</p>
<p>Ils n&rsquo;ont certainement pas être prévus pour ça au départ, mais ils sont aujourd&rsquo;hui principalement utilisés pour corriger les bugs de ce navigateur.</p>
<p>Il est donc possible d&rsquo;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&rsquo;elle correspond au navigateur utilisé, le code sera tout de même interprété.</p>
<p>Cette solution est fiable, car il n&rsquo;existe aucune raison pour qu&rsquo;un autre navigateur interprète, dans le passé ou l&rsquo;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&rsquo;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 « IE », ou les utiliser de manière globale en prenant le risque d&rsquo;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 « home.css » est corrigée à la ligne 14 du fichier « internet-explorer-6.css », mais aussi à la ligne 8 du fichier « internet-explorer-7.css ».</p>
<p>Il se pourrait aussi qu&rsquo;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&rsquo;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&rsquo;t&rsquo;êt&rsquo; bien, ouais.</p>
<h2>Les commentaires conditionnels, en plus malin</h2>
<p>Il s&rsquo;agit avec cette technique d&rsquo;utiliser les commentaires conditionnels non pas pour appeler une feuille de style, mais pour entourer la page d&rsquo;un conteneur qui prendra comme attribut « id » <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&rsquo;Internet Explorer, dans une CSS « normale ».</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 « normaux » et un outil de validation html, il s&rsquo;agit de commentaires html tout à fait classiques, et sont ignorés.</p>
<p>De cette manière, il est aussi possible d&rsquo;ajouter le support d&rsquo;IE, en ajoutant une balise d&rsquo;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 « n&rsquo;est pas », 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&rsquo;utiliser ces sélecteurs de la même manière qu&rsquo;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&rsquo;exemple est stupide, puisqu&rsquo;il n&rsquo;y a aucune raison de cibler tous ces éléments à la fois.</p>
<p>Les avantages sont nombreux :</p>
<ul>
<li>C&rsquo;est <strong>fiable</strong> : une nouvelle version d&rsquo;Internet Explorer sera considérée comme « standard » (mais attention à l&rsquo;utilisation de #NOTIE, qui ne sera vraisemblablement pas reconnue par les futures version d&rsquo;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&rsquo;est pas utile de commenter ceci : <code>#IE6 .mon_element{margin:-3px;}</code></li>
<li>Lors de la sortie d&rsquo;une nouvelle version d&rsquo;IE, il suffit de lister les bugs qui n&rsquo;ont pas été corrigés, et d&rsquo;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&rsquo;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>/2008/04/08/cibler-internet-explorer-dans-une-css-oui-et-sans-hack/feed/</wfw:commentRss>
			<slash:comments>28</slash:comments>
		
		
			</item>
		<item>
		<title>Faire cohabiter plusieurs versions d&#8217;Internet Explorer</title>
		<link>/2008/03/12/faire-cohabiter-plusieurs-version-dinternet-explorer/</link>
					<comments>/2008/03/12/faire-cohabiter-plusieurs-version-dinternet-explorer/#comments</comments>
		
		<dc:creator><![CDATA[Eric Le Bihan]]></dc:creator>
		<pubDate>Wed, 12 Mar 2008 17:24:04 +0000</pubDate>
				<category><![CDATA[Front-end]]></category>
		<category><![CDATA[Actualité]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Internet Explorer]]></category>
		<category><![CDATA[Navigateurs]]></category>
		<guid isPermaLink="false">/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&rsquo;Internet Explorer 8, se pose la question habituelle aux développeurs et intégrateurs à  chaque sortie d&rsquo;une  nouvelle mouture du navigateur de Microsoft : comment faire cohabiter plusieurs versions d&rsquo;Internet Explorer sur son PC ?</p>
<p>Habituellement faire cohabiter deux versions d&rsquo;IE suffit, mais étant donné qu&rsquo;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="/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&rsquo;est fait le navigateur installé, vous pouvez passer à l&rsquo;étape 2.</p>
<p><strong>2ème étape : Installer les précédentes versions d&rsquo;IE</strong></p>
<p>Il y a une solution que j&rsquo;avais adopté pour la version précédente (la  7) : <a href="http://tredosoft.com/Multiple_IE">multiple IE</a>, le soucis c&rsquo;est que ça ne fonctionne pas avec Windows Vista. Si vous avez Windows XP, c&rsquo;est nickel, mais le problème c&rsquo;est que vous n&rsquo;aurez pas IE7 puisque multiple IE s&rsquo;arrête à IE6.</p>
<p>La deuxième solution consiste à installer IE7 en version standalone. Pour les infos : <a href="/wp-admin/">c&rsquo;est ici</a> ou <a href="http://tredosoft.com/IE7_standalone">encore ici</a>.<a href="/wp-admin/"><br />
</a></p>
<p>Une fois avoir installé IE7, on va essayer d&rsquo;installer multiple IE, mais auparavant on va voir si IE8 et IE7 s&rsquo;entendent&#8230; D&rsquo;après mes tests, ça marche pas trop mal, mais il ne faut pas être gêné par les messages d&rsquo;erreurs. J&rsquo;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&rsquo;après mes test cette solution n&rsquo;est pas pleinement fonctionnelle. Je n&rsquo;ai pas pu accéder au champs de recherche de Google, impossible de prendre le focus&#8230;</p>
<p>Si vous n&rsquo;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&rsquo;ai pas réussi à l&rsquo;installer jusqu&rsquo;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&rsquo;install se passe sans encombre. Il ne  reste plus qu&rsquo;à installer la version native d&rsquo;<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&rsquo;on n&rsquo;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>/2008/03/12/faire-cohabiter-plusieurs-version-dinternet-explorer/feed/</wfw:commentRss>
			<slash:comments>9</slash:comments>
		
		
			</item>
		<item>
		<title>Les pop-ups sont morts</title>
		<link>/2008/01/29/les-pop-ups-sont-morts/</link>
					<comments>/2008/01/29/les-pop-ups-sont-morts/#comments</comments>
		
		<dc:creator><![CDATA[Eric Le Bihan]]></dc:creator>
		<pubDate>Tue, 29 Jan 2008 00:17:34 +0000</pubDate>
				<category><![CDATA[Front-end]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[JavaScript]]></category>
		<guid isPermaLink="false">/2008/01/29/les-pop-ups-sont-morts/</guid>

					<description><![CDATA[Certaines pratiques ont la vie dure… La navigation par pop-up  à l’intérieur d’un site en est une des plus tenaces.
Pourquoi utiliser des pop-up ?
Le raisonnement que j’entends souvent est : « le contenu n’est pas assez important pour une nouvelle page ». Ce raisonnement  aussitôt contredit par des demandes de pop-up de 650px sur 800 px … Pourquoi tant d’acharnement ??!!
Bien sur je ne parle  pas des pop-up non sollicitées qui ne méritent même pas qu’on s’y arrête ne serait-ce qu’un instant, les navigateurs tels que Firefox ou Opéra, nous en débarassent sans que nous ne nous&#160;[&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Certaines pratiques ont la vie dure… La navigation par pop-up  à l’intérieur d’un site en est une des plus tenaces.</p>
<h3>Pourquoi utiliser des pop-up ?</h3>
<p>Le raisonnement que j’entends souvent est : « le contenu n’est pas assez important pour une nouvelle page ». Ce raisonnement  aussitôt contredit par des demandes de pop-up de 650px sur 800 px … Pourquoi tant d’acharnement ??!!</p>
<p>Bien sur je ne parle  pas des pop-up non sollicitées qui ne méritent même pas qu’on s’y arrête ne serait-ce qu’un instant, les navigateurs tels que Firefox ou Opéra, nous en débarassent sans que nous ne nous en rendions même compte.</p>
<p>Alors que la plupart des  sites a abandonné cette habitude d’un autre temps, certains résistent encore  et toujours bien que les arguments contre l’utilisation de ces petites  fenêtres ne manquent pas :</p>
<h3>Ergonomie :</h3>
<ol>
<li>Les utilisateurs en navigant sur leur site préféré ne  s’attendent pas à ce que les liens sur lesquels ils cliquent ouvrent une autre  fenêtre.</li>
<li>Une pop-up peut passer en dessous de la fenêtre  principale si on clique malencontreusement sur cette dernière.</li>
<li>Si une pop-up est ouverte et se trouve sous la fenêtre  principale toutes les pages ouvertes dans la popup (si elle n’est pas nommée ou  porte le même nom dans toutes les fonctions d’ouverture de la popup) demeureront invisibles pour l’internaute qui croira se trouver en présence de liens  non-fonctionnels.</li>
</ol>
<h3>Accessibilité :</h3>
<ol>
<li>L&rsquo;ouverture d&rsquo;une pop up perturbe  la navigation notamment pour les personnes qui utilisent des aides  techniques pour naviguer. En règle générale, l&rsquo;ouverture d&rsquo;une nouvelle fenêtre  est déstabilisant pour les personnes aveugles.<br />
Il est de plus impossible de revenir à la page précédente par l&rsquo;historique du navigateur.</li>
<li> Une popup est  ouverte par une fonction javascript, sans js la popup ne s’ouvre pas à moins  qu’on prenne le soin d’avoir recours à cette technique (ce qui est loin d’être  le cas, le plus souvent) :</li>
</ol>
<p><code class="prettyprint">        &lt;a href="page.htm" onclick="window.open(this.href); return false;"&gt; </code></p>
<p><em>Il existe d’autres solutions beaucoup plus sympa pour  afficher des informations sans changer de page à l’aide de javascripts  non-intrusifs (il suffit de regarder les scripts et plugins proposés par des  bibliothèques comme <a href="http://fr.wikipedia.org/wiki/JQuery" title="Information sur la bibliothèque javascript jQuery" target="_blank">jQuery </a>ou <a href="http://wiki.script.aculo.us/scriptaculous/" title="Informations sur labibliothèque javascript sciptaculous" target="_blank">script.aculo.us</a>) </em></p>
<h3>Crédibilité :</h3>
<ol>
<li>les pop-up nuisent à l&rsquo;image du site qui les utilise et  donnent une impression générale d’amateurisme.</li>
<li>Les pop-up sont dans la plupart des cas associées à de la pub et  bénéficient de moins d’attention de la part des internautes.</li>
</ol>
<h3>Contraintes des navigateurs :</h3>
<p>Dans les navigateurs modernes, et ceci pour éviter les  abus, il n’est plus possible d’intervenir sur les propriétés des popup  (emplacement, redimensionnement, déplacement, etc.)</p>
<p>Conclusion : on ne devrait plus se poser la question, <strong style="font-size: 14px">les popup, c’est NON !</strong></p>
<p>Quelques liens pour poursuivre cette réflexion :</p>
<ul>
<li>The  Jarrett-Zetie Rules of Pop- ups : <a href="http://www.ergologique.com/actualites/actus.php?id_actu=123">http://www.ergologique.com/actualites/actus.php?id_actu=123</a></li>
<li>Interview Jakob Nielsen sur JDN :  <a href="http://www.journaldunet.com/itws/it_nielsen.shtml">http://www.journaldunet.com/itws/it_nielsen.shtml</a></li>
<li>Créer des popup intelligentes : <a href="http://openweb.eu.org/articles/popup/">http://openweb.eu.org/articles/popup/</a></li>
<li>Lazy, stupid and evil design : <a href="http://www.guardian.co.uk/technology/2005/jun/23/columnists.comment">http://www.guardian.co.uk/technology/2005/jun/23/columnists.comment</a></li>
</ul>
]]></content:encoded>
					
					<wfw:commentRss>/2008/01/29/les-pop-ups-sont-morts/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>Internet Explorer 6 : ID, class et background</title>
		<link>/2008/01/25/internet-explorer-6-id-class-et-background/</link>
					<comments>/2008/01/25/internet-explorer-6-id-class-et-background/#comments</comments>
		
		<dc:creator><![CDATA[Pierre Bertet]]></dc:creator>
		<pubDate>Fri, 25 Jan 2008 14:26:08 +0000</pubDate>
				<category><![CDATA[Front-end]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Internet Explorer]]></category>
		<guid isPermaLink="false">/2008/01/25/internet-explorer-6-id-class-et-background/</guid>

					<description><![CDATA[Puisque notre vieil ami ne semble pas décidé à céder sa place de leader, nous avons largement le temps de nous intéresser à certains de ses comportements si&#8230; particuliers.
Internet Explorer 6 ne comprend pas la sélection de classes multiples en CSS : il ne prend en compte que la dernière classe.
Il est néanmoins possible d&#8217;utiliser un ID et une classe combinée sans problème :
.uneclasse.uneautreclasse{
  /* IE6 comprendra : .uneautreclasse{} */
}
#fixe.bonbon{
  /* Pas de problème */
}

Mais, d&#8217;après ce que je crois avoir compris :
Si un sélecteur « id+class » est utilisé, et qu&#8217;un&#160;[&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Puisque notre vieil ami <a title="The IE7 auto-rollout: fact and fiction" href="http://ajaxian.com/archives/the-ie7-auto-rollout-fact-and-fiction">ne semble pas décidé à céder sa place de leader</a>, nous avons largement le temps de nous intéresser à certains de ses comportements si&#8230; particuliers.</p>
<p>Internet Explorer 6 ne comprend pas la sélection de classes multiples en CSS : il ne prend en compte que la dernière classe.</p>
<p>Il est néanmoins possible d&rsquo;utiliser un ID et une classe combinée sans problème :</p>
<pre><code class="prettyprint">.uneclasse.uneautreclasse{
  /* IE6 comprendra : .uneautreclasse{} */
}
#fixe.bonbon{
  /* Pas de problème */
}
</code></pre>
<p><span style="font-size: 24px">Mais,</span> d&rsquo;après ce que je crois avoir compris :</p>
<p>Si un sélecteur « id+class » est utilisé, et qu&rsquo;un autre sélecteur « id+class » définit la propriété background d&rsquo;un élément, alors cette propriétée sera ignorée.</p>
<p>Prenons l&rsquo;élément suivant :</p>
<pre><code class="prettyprint">&lt;div id="fixe" class="bonbon"&gt;&lt;/div&gt;
</code></pre>
<p>En appliquant le code CSS ci-dessous :</p>
<pre><code class="prettyprint">#fixe{background:url(image.png) no-repeat 0 0;}
#fixe.bonbon{background-image:url(image_2.png);}
</code></pre>
<p>L&rsquo;image de fond de l&rsquo;élément sera bien « image_2.png ».</p>
<p>Mais en appliquant le code suivant :</p>
<pre><code class="prettyprint">#fixe{background:url(image.png) no-repeat 0 0;}
#fixe.abc{}
#fixe.bonbon{background-image:url(image_2.png);}
</code></pre>
<p>Ce n&rsquo;est plus le fond « image_2.png » qui s&rsquo;affichera, mais&#8230; « image.png » !</p>
<p><code class="prettyprint">#fixe.bonbon</code> arrive après <code class="prettyprint">#fixe.abc</code>, <strong>il n&rsquo;est plus pris en compte</strong> et le premier background défini est affiché, c&rsquo;est à dire celui de <code class="prettyprint">#fixe</code>.</p>
<p>Il est en revanche tout à fait possible de cibler un élément à l&rsquo;intérieur :</p>
<pre><code class="prettyprint">#fixe div{background:url(image.png) no-repeat 0 0;}
#fixe.abc div{}
#fixe.bonbon div{background-image:url(image_2.png);}
</code></pre>
<p>J&rsquo;ai mis un bon moment à me rendre compte du problème, très particulier <del>et (il me semble) ne portant que sur la propriété background</del>.</p>
<p><strong>Edit : rien à voir avec background, c&rsquo;est juste le sélecteur qui pose problème, quelles que soient les propriétés appliquées.</strong></p>
<p>On en parle ici également : <a href="http://sonspring.com/index.php?id=102">IE6 Multi-Class Bug</a></p>
<p>Si vous connaissez ce problème, ou avez des précisions à apporter, ça m&rsquo;intéresse !</p>
]]></content:encoded>
					
					<wfw:commentRss>/2008/01/25/internet-explorer-6-id-class-et-background/feed/</wfw:commentRss>
			<slash:comments>5</slash:comments>
		
		
			</item>
		<item>
		<title>IE7.js v2.0 (Beta)</title>
		<link>/2008/01/08/ie7js-v20-beta/</link>
					<comments>/2008/01/08/ie7js-v20-beta/#comments</comments>
		
		<dc:creator><![CDATA[Pierre Bertet]]></dc:creator>
		<pubDate>Tue, 08 Jan 2008 11:27:41 +0000</pubDate>
				<category><![CDATA[Front-end]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[JavaScript]]></category>
		<guid isPermaLink="false">/2008/01/08/ie7js-v20-beta/</guid>

					<description><![CDATA[Dean Edwards vient de mettre à jour son célèbre script IE7.js, permettant de corriger un paquet de limitations CSS / HTML sur notre navigateur préféré : Internet Explorer.
Puisque IE7 est sorti, et que certaines limitations sont encore d&#8217;actualités, le script a été scindé en deux parties : IE7.js se limite maintenant aux améliorations d&#8217;IE7 qu&#8217;il apporte à IE5/6, tandis qu&#8217;IE8.js reprend les fonctionnalités d&#8217;IE7.js toujours absentes dans Internet Explorer 7.
Un projet a été créé chez Google Code pour l&#8217;occasion : http://code.google.com/p/ie7-js/
Voici un bon moyen d&#8217;accompagner doucement ce vieux navigateur vers ses derniers instants, tout en profitant des&#160;[&#8230;]]]></description>
										<content:encoded><![CDATA[<p><a href="http://dean.edwards.name/weblog/2008/01/ie7-2/">Dean Edwards vient de mettre à jour</a> son célèbre script IE7.js, permettant de <a href="http://ie7-js.googlecode.com/svn/test/index.html">corriger un paquet de limitations CSS / HTML</a> sur notre navigateur préféré : Internet Explorer.</p>
<p>Puisque IE7 est sorti, et que certaines limitations sont encore d&rsquo;actualités, le script a été scindé en deux parties : IE7.js se limite maintenant aux améliorations d&rsquo;IE7 qu&rsquo;il apporte à IE5/6, tandis qu&rsquo;IE8.js reprend les fonctionnalités d&rsquo;IE7.js toujours absentes dans Internet Explorer 7.</p>
<p>Un projet a été créé chez Google Code pour l&rsquo;occasion : <a href="http://code.google.com/p/ie7-js/">http://code.google.com/p/ie7-js/</a></p>
<p>Voici un bon moyen d&rsquo;accompagner doucement ce vieux navigateur vers ses derniers instants, tout en profitant des sélecteurs (classes multiples, sélecteurs d&rsquo;attributs, :hover sur tous les éléments, &#8230;) et propriétés (min-height, max-height&#8230;) CSS. Sans même utiliser IE8.js, placer IE6 au même niveau que son jeune frérot procure un sacré confort !</p>
<p>Evidemment, cette solution n&rsquo;est pas parfaite : le style de vos pages sera en partie altéré pour un utilisateur d&rsquo;IE6 ayant désactivé javascript. Il faut alors s&rsquo;assurer que chaque page reste bien accessible.</p>
]]></content:encoded>
					
					<wfw:commentRss>/2008/01/08/ie7js-v20-beta/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
	</channel>
</rss>
