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

<channel>
	<title>Clearideaz</title>
	<atom:link href="http://clearideaz.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://clearideaz.com</link>
	<description>webdesigner et intégrateur XHTML / CSS</description>
	<lastBuildDate>Mon, 19 Jul 2010 08:19:56 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>jQuery.eventManager, un plugin de gestion d&#8217;évènements</title>
		<link>http://clearideaz.com/2010/07/jquery-eventmanager-un-plugin-de-gestion-devenements/</link>
		<comments>http://clearideaz.com/2010/07/jquery-eventmanager-un-plugin-de-gestion-devenements/#comments</comments>
		<pubDate>Fri, 16 Jul 2010 08:06:07 +0000</pubDate>
		<dc:creator>Olivier G.</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[delegate]]></category>
		<category><![CDATA[évènements]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[plugins]]></category>

		<guid isPermaLink="false">http://clearideaz.com/?p=400</guid>
		<description><![CDATA[La méthode $.delegate de jQuery fonctionne sur le principe de la délégation d&#8217;évènements. La délégation permet notamment de pouvoir ajouter de nouveaux éléments dans le DOM dynamiquement (via Ajax par exemple) sans pour autant leur ré-attacher d&#8217;évènements préalablement défini. Elle assure également de meilleures performances.
Sur la plupart des projets, je m&#8217;amusais à déléguer des évènements [...]]]></description>
			<content:encoded><![CDATA[<p>La méthode <code>$.delegate</code> de jQuery fonctionne sur le principe de la délégation d&#8217;évènements. La délégation permet notamment de pouvoir ajouter de nouveaux éléments dans le DOM dynamiquement (via Ajax par exemple) sans pour autant leur ré-attacher d&#8217;évènements préalablement défini. Elle assure également de meilleures performances.</p>
<p>Sur la plupart des projets, je m&#8217;amusais à déléguer des évènements à des objets globaux. C&#8217;est ensuite au moment de l&#8217;appel à l&#8217;évènement que je filtrais le type d&#8217;action à effectuer. C&#8217;est un exercice plutôt fastidieux&#8230;</p>
<p>J&#8217;ai donc décidé de créer un plugin jQuery permettant de faciliter la gestion d&#8217;évènement via delegate. Il suffit pour cela de créer un objet recensant les objets globaux, les évènements attachés, le filtre, puis l&#8217;action a effectuer.</p>

<p>Voici un exemple d&#8217;objet :</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> eventList <span style="color: #339933;">=</span> <span style="color: #009900;">&#123;</span>
 <span style="color: #3366CC;">'div'</span> <span style="color: #339933;">:</span> <span style="color: #009900;">&#123;</span>
   <span style="color: #3366CC;">'mouseover'</span> <span style="color: #339933;">:</span> <span style="color: #009900;">&#123;</span>
     <span style="color: #3366CC;">'.sidebar'</span> <span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span> <span style="color: #009900;">&#40;</span>elem<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
       $<span style="color: #009900;">&#40;</span>elem<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">addClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'over'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
     <span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span>
     <span style="color: #003366; font-weight: bold;">default</span> <span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>elem<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
       $<span style="color: #009900;">&#40;</span>elem<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">css</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'background-color'</span><span style="color: #339933;">:</span><span style="color: #3366CC;">'red'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
     <span style="color: #009900;">&#125;</span>
   <span style="color: #009900;">&#125;</span>
   <span style="color: #3366CC;">'mouseout'</span> <span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
      $<span style="color: #009900;">&#40;</span>elem<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">css</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'background-color'</span><span style="color: #339933;">:</span><span style="color: #3366CC;">'transparent'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   <span style="color: #009900;">&#125;</span>
 <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>En clair, je délègue des évènements à un ou plusieurs objets de type <code>div</code>. Je lui attribue un évènement de type <code>mouseover</code>. Par défaut, au passage de la souris sur cette <code>div</code>, le fond de cet objet sera rouge. Si la div possède la classe <code>.sidebar</code>, alors je lui ajoute une classe <code>.over</code>. Enfin, lorsque je quitte un objet de type <code>div</code>, je lui affecte un fond transparent.</p>
<p>Une fois cet objet créé, il ne reste plus qu&#8217;à l&#8217;insérer dans un appel au plugin eventManager :</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#wrapper'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">eventManager</span><span style="color: #009900;">&#40;</span>eventList<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Dans cet appel, seules les div placées dans un objet ayant pour ID #wrapper seront affectés par les évènements à déléguer.</p>
<p>Je vous propose d&#8217;accèder à la démo pour vous faire une idée des possibilités offertes. Vous pourrez ensuite, si vous le souhaitez, télécharger le plugin sur <a href="http://github.com/clearideaz/jQuery.eventManager">mon espace Github</a>.</p>
<p><em>Édité le 19 juillet : <strong>Nouveauté sur le plugin,</strong> le code a été nettoyé, on peut se passer de &#8216;default&#8217; lorsqu&#8217;il n&#8217;y a pas de sélecteur filtre. Autre nouveauté, on peut désormais utiliser &laquo;&nbsp;this&nbsp;&raquo; au lieu de &laquo;&nbsp;elem&nbsp;&raquo; dans les fonctions de l&#8217;objet contenant les évènements. Merci beaucoup à <a title="Sunfox.org, le site qui te donne des tâches de rousseur" href="http://sunfox.org">Sunny</a> pour son aide !</em></p>
<ul class="demo">
<li><a title="Visualiser la démo du plugin jQuery.eventManager" href="http://clearideaz.com/demo/jQuery.eventManager/">Accéder à la démonstration</a></li>
<li><a title="Télecharger le plugin jQuery.eventManager sur Github" href="http://github.com/clearideaz/jQuery.eventManager/downloads">Télécharger le plugin</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://clearideaz.com/2010/07/jquery-eventmanager-un-plugin-de-gestion-devenements/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Internet Explorer 9 sur la bonne voie</title>
		<link>http://clearideaz.com/2010/06/internet-explorer-9-sur-la-bonne-voie/</link>
		<comments>http://clearideaz.com/2010/06/internet-explorer-9-sur-la-bonne-voie/#comments</comments>
		<pubDate>Thu, 24 Jun 2010 04:31:18 +0000</pubDate>
		<dc:creator>Olivier G.</dc:creator>
				<category><![CDATA[CSS3]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[explorer]]></category>
		<category><![CDATA[ie]]></category>
		<category><![CDATA[standards]]></category>

		<guid isPermaLink="false">http://clearideaz.com/2010/06/internet-explorer-9-sur-la-bonne-voie/</guid>
		<description><![CDATA[Des débuts (très) difficiles
Internet Explorer a (très) souvent été la cible de critiques passionnées. En cause, son moteur de rendu (Trident) non conforme aux standards du web définis par le W3C et ses nombreux bugs.
La version 6 s&#8217;imposait de nombreuses années au sein du système Windows XP.
Microsoft décide de publier la version 7 de son [...]]]></description>
			<content:encoded><![CDATA[<h3>Des débuts (très) difficiles</h3>
<p><img class="alignright size-full wp-image-377 bgless" src="http://clearideaz.com/wp-content/uploads/2010/06/ie.png" alt="Internet Explorer 9, the fucking browser" width="220" height="213" />Internet Explorer a (très) souvent été la cible de critiques passionnées. En cause, son moteur de rendu (Trident) non conforme aux standards du web définis par le W3C et ses nombreux bugs.<br />
La version 6 s&#8217;imposait de nombreuses années au sein du système Windows XP.</p>
<p>Microsoft décide de publier la version 7 de son navigateur qui sera en série sur le tout nouveau système, Windows Vista. Les améliorations sont nombreuses mais la firme Redmond persiste dans sa volonté d&#8217;imposer ses &laquo;&nbsp;standards&nbsp;&raquo;. Il intègre toutefois de nouveaux pseudo-sélecteurs CSS (IE6 ne supportant que les pseudo-sélecteurs affectés aux liens) et supporte enfin le format PNG alpha.<br />
Problème, la plupart des utilisateurs de Windows XP ne migrent pas vers Vista, le système ayant une mauvaise réputation en terme de stabilité et d&#8217;ergonomie. Le passage vers IE7 prendra beaucoup de temps et encore aujourd&#8217;hui, IE6 dispose d&#8217;une part importante dans le pourcentage des navigateurs utilisés. Cette lente migration s&#8217;explique également par le fait qu&#8217;Internet Explorer 6 ne dispose d&#8217;aucun système de mise à jour automatique (à contrario de Firefox par exemple).</p>

<h3>Un semblant de renouveau</h3>
<p>IE8 succède à la version 7. Les effets d&#8217;annonce de cette version n&#8217;attenueront pas les critiques de la communauté web. Microsoft fait encore une fois cavalier seul. Son navigateur, en dépit de quelques améliorations ergonomiques, ne parvient pas à séduire le public de connaisseurs.<br />
Ce navigateur met en place un nouveau principe : la définition du mode de rendu. <a title="Les standards selon la firme Redmond" href="http://clearideaz.com/2008/02/les-standards-selon-la-firme-redmond/">Il est possible en effet de choisir entre le mode de rendu IE7 et celui d&#8217;IE8 via une balise meta</a>. Ce principe va à l&#8217;encontre du concept d&#8217;amélioration progressive. On ne devrait pas choisir de développer pour un ancien navigateur.<br />
Autre problème, le support du PNG pourtant bien géré sur IE7 est défaillant sur cette version.</p>
<h3>Une lueur d&#8217;espoir</h3>
<p>Intervient le projet IE9 mené par une équipe renouvelée et des consultants plus jeunes ! À l&#8217;heure où je publie cet article, cette version est encore à l&#8217;état de développement.<br />
Première nouveauté : Microsoft communique largement sur le projet et encourage fortement la communauté à effectuer des retours.<br />
Seconde nouveauté : IE9 se veut respectueux des standards du web. <a title="Interview: Paul Cotton on Microsoft Participation in the W3C HTML Working Group" href="http://www.w3.org/QA/2010/03/interview_paul_cotton_on_micro.html">Microsoft se retrouve désormais contributeur actif du W3C</a>. Ils insistent sur l&#8217;obligation de rendu unique sur l&#8217;ensemble des navigateurs.<br />
Troisième et dernière nouveauté : L&#8217;équipe d&#8217;IE9 a fait beaucoup d&#8217;efforts pour améliorer les performances de son navigateur. Il dispose aujourd&#8217;hui d&#8217;un des plus puissants moteur Javascript (en comparaison avec les moteurs en version définitive et publiés avec des navigateurs stable, hein !).</p>
<p>Mais ce qui est surtout le plus excitant, c&#8217;est le support de nouvelles technologies web. La liste est longue : support de CSS3 (on peut enfin utiliser border-radius, ouais !), moteur de rendu capable d&#8217;interpréter HTML5 ainsi que son API (balise video, audio, geolocalisation, webworkers&#8230;), implémentation de font-face, mise en conformité de l&#8217;interpréteur javascript avec les standards, support de SVG&#8230;<br />
Et dernièrement, <a title="HTML5, Native: Third IE9 Platform Preview Available for Developers" href="http://blogs.msdn.com/b/ie/archive/2010/06/23/html5-native-third-ie9-platform-preview-available-for-developers.aspx">le blog du navigateur Microsoft a annoncé le support de canvas</a> ainsi que la prise en charge du format libre WOFF, on y croyait vraiment plus !</p>
<p>Chose étonnante, le futur navigateur suscite l&#8217;enthousiasme des professionnels (<a title="Internet Explorer 9 is on the boil" href="http://www.stuffandnonsense.co.uk/blog/about/internet_explorer_9_in_on_the_boil/">Andy Clarke</a>, <a title="IE9 preview" href="http://www.zeldman.com/2010/03/16/ie9-preview/">Zeldman</a> ou encore <a title="Five Things IE9 is (Actually) Doing Right" href="http://sixrevisions.com/web-development/five-things-ie9-is-actually-doing-right/">Jason Cube</a> de Six Revision).</p>
<h3>Et finalement&#8230;</h3>
<p>C&#8217;est donc une grande avancée et on s&#8217;imagine déjà développer des sites internet sans avoir à le tester sur 36 navigateurs ! Mais malgré tout, ne fantasmons pas trop vite, le chemin sera encore long et il faudra je pense attendre encore 10 ans avant de pouvoir utiliser pleinement les nouvelles possibilités offertes par HTML5 et CSS3.</p>
<p><em>Edité le 25 juin 2010 à 9 h 33 min : Ajout d&#8217;une petite phrase au sujet de l&#8217;intérêt suscité par le navigateur auprès de professionnels</em><br />
<!--more--></p>
<h3>Un semblant de renouveau</h3>
<p>IE8 succède à la version 7. Les effets d&#8217;annonce de cette version n&#8217;attenueront pas les critiques de la communauté web. Microsoft fait encore une fois cavalier seul. Son navigateur, en dépit de quelques améliorations ergonomiques, ne parvient pas à séduire le public de connaisseurs.<br />
Ce navigateur met en place un nouveau principe : la définition du mode de rendu. <a title="Les standards selon la firme Redmond" href="http://clearideaz.com/2008/02/les-standards-selon-la-firme-redmond/">Il est possible en effet de choisir entre le mode de rendu IE7 et celui d&#8217;IE8 via une balise meta</a>. Ce principe va à l&#8217;encontre du concept d&#8217;amélioration progressive. On ne devrait pas choisir de développer pour un ancien navigateur.<br />
Autre problème, le support du PNG pourtant bien géré sur IE7 est défaillant sur cette version.</p>
<h3>Une lueur d&#8217;espoir</h3>
<p>Intervient le projet IE9 mené par une équipe renouvelée et des consultants plus jeunes ! À l&#8217;heure où je publie cet article, cette version est encore à l&#8217;état de développement.<br />
Première nouveauté : Microsoft communique largement sur le projet et encourage fortement la communauté à effectuer des retours.<br />
Seconde nouveauté : IE9 se veut respectueux des standards du web. <a title="Interview: Paul Cotton on Microsoft Participation in the W3C HTML Working Group" href="http://www.w3.org/QA/2010/03/interview_paul_cotton_on_micro.html">Microsoft se retrouve désormais contributeur actif du W3C</a>. Ils insistent sur l&#8217;obligation de rendu unique sur l&#8217;ensemble des navigateurs.<br />
Troisième et dernière nouveauté : L&#8217;équipe d&#8217;IE9 a fait beaucoup d&#8217;efforts pour améliorer les performances de son navigateur. Il dispose aujourd&#8217;hui d&#8217;un des plus puissants moteur Javascript (en comparaison avec les moteurs en version définitive et publiés avec des navigateurs stable, hein !).</p>
<p>Mais ce qui est surtout le plus excitant, c&#8217;est le support de nouvelles technologies web. La liste est longue : support de CSS3 (on peut enfin utiliser border-radius, ouais !), moteur de rendu capable d&#8217;interpréter HTML5 ainsi que son API (balise video, audio, geolocalisation, webworkers&#8230;), implémentation de font-face, mise en conformité de l&#8217;interpréteur javascript avec les standards, support de SVG&#8230;<br />
Et dernièrement, <a title="HTML5, Native: Third IE9 Platform Preview Available for Developers" href="http://blogs.msdn.com/b/ie/archive/2010/06/23/html5-native-third-ie9-platform-preview-available-for-developers.aspx">le blog du navigateur Microsoft a annoncé le support de canvas</a> ainsi que la prise en charge du format libre WOFF, on y croyait vraiment plus !</p>
<p>Chose étonnante, le futur navigateur suscite l&#8217;enthousiasme des professionnels (<a title="Internet Explorer 9 is on the boil" href="http://www.stuffandnonsense.co.uk/blog/about/internet_explorer_9_in_on_the_boil/">Andy Clarke</a>, <a title="IE9 preview" href="http://www.zeldman.com/2010/03/16/ie9-preview/">Zeldman</a> ou encore <a title="Five Things IE9 is (Actually) Doing Right" href="http://sixrevisions.com/web-development/five-things-ie9-is-actually-doing-right/">Jason Cube</a> de Six Revision).</p>
<h3>Et finalement&#8230;</h3>
<p>C&#8217;est donc une grande avancée et on s&#8217;imagine déjà développer des sites internet sans avoir à le tester sur 36 navigateurs ! Mais malgré tout, ne fantasmons pas trop vite, le chemin sera encore long et il faudra je pense attendre encore 10 ans avant de pouvoir utiliser pleinement les nouvelles possibilités offertes par HTML5 et CSS3.</p>
<p><em>Edité le 25 juin 2010 à 9 h 33 min : Ajout d&#8217;une petite phrase au sujet de l&#8217;intérêt suscité par le navigateur auprès de professionnels</em><br />
<!--more--></p>
<h3>Un semblant de renouveau</h3>
<p>IE8 succède à la version 7. Les effets d&#8217;annonce de cette version n&#8217;attenueront pas les critiques de la communauté web. Microsoft fait encore une fois cavalier seul. Son navigateur, en dépit de quelques améliorations ergonomiques, ne parvient pas à séduire le public de connaisseurs.<br />
Ce navigateur met en place un nouveau principe : la définition du mode de rendu. <a title="Les standards selon la firme Redmond" href="http://clearideaz.com/2008/02/les-standards-selon-la-firme-redmond/">Il est possible en effet de choisir entre le mode de rendu IE7 et celui d&#8217;IE8 via une balise meta</a>. Ce principe va à l&#8217;encontre du concept d&#8217;amélioration progressive. On ne devrait pas choisir de développer pour un ancien navigateur.<br />
Autre problème, le support du PNG pourtant bien géré sur IE7 est défaillant sur cette version.</p>
<h3>Une lueur d&#8217;espoir</h3>
<p>Intervient le projet IE9 mené par une équipe renouvelée et des consultants plus jeunes ! À l&#8217;heure où je publie cet article, cette version est encore à l&#8217;état de développement.<br />
Première nouveauté : Microsoft communique largement sur le projet et encourage fortement la communauté à effectuer des retours.<br />
Seconde nouveauté : IE9 se veut respectueux des standards du web. <a title="Interview: Paul Cotton on Microsoft Participation in the W3C HTML Working Group" href="http://www.w3.org/QA/2010/03/interview_paul_cotton_on_micro.html">Microsoft se retrouve désormais contributeur actif du W3C</a>. Ils insistent sur l&#8217;obligation de rendu unique sur l&#8217;ensemble des navigateurs.<br />
Troisième et dernière nouveauté : L&#8217;équipe d&#8217;IE9 a fait beaucoup d&#8217;efforts pour améliorer les performances de son navigateur. Il dispose aujourd&#8217;hui d&#8217;un des plus puissants moteur Javascript (en comparaison avec les moteurs en version définitive et publiés avec des navigateurs stable, hein !).</p>
<p>Mais ce qui est surtout le plus excitant, c&#8217;est le support de nouvelles technologies web. La liste est longue : support de CSS3 (on peut enfin utiliser border-radius, ouais !), moteur de rendu capable d&#8217;interpréter HTML5 ainsi que son API (balise video, audio, geolocalisation, webworkers&#8230;), implémentation de font-face, mise en conformité de l&#8217;interpréteur javascript avec les standards, support de SVG&#8230;<br />
Et dernièrement, <a title="HTML5, Native: Third IE9 Platform Preview Available for Developers" href="http://blogs.msdn.com/b/ie/archive/2010/06/23/html5-native-third-ie9-platform-preview-available-for-developers.aspx">le blog du navigateur Microsoft a annoncé le support de canvas</a> ainsi que la prise en charge du format libre WOFF, on y croyait vraiment plus !</p>
<p>Chose étonnante, le futur navigateur suscite l&#8217;enthousiasme des professionnels (<a title="Internet Explorer 9 is on the boil" href="http://www.stuffandnonsense.co.uk/blog/about/internet_explorer_9_in_on_the_boil/">Andy Clarke</a>, <a title="IE9 preview" href="http://www.zeldman.com/2010/03/16/ie9-preview/">Zeldman</a> ou encore <a title="Five Things IE9 is (Actually) Doing Right" href="http://sixrevisions.com/web-development/five-things-ie9-is-actually-doing-right/">Jason Cube</a> de Six Revision).</p>
<h3>Et finalement&#8230;</h3>
<p>C&#8217;est donc une grande avancée et on s&#8217;imagine déjà développer des sites internet sans avoir à le tester sur 36 navigateurs ! Mais malgré tout, ne fantasmons pas trop vite, le chemin sera encore long et il faudra je pense attendre encore 10 ans avant de pouvoir utiliser pleinement les nouvelles possibilités offertes par HTML5 et CSS3.</p>
<p><em>Edité le 25 juin 2010 à 9 h 33 min : Ajout d&#8217;une petite phrase au sujet de l&#8217;intérêt suscité par le navigateur auprès de professionnels</em></p>
]]></content:encoded>
			<wfw:commentRss>http://clearideaz.com/2010/06/internet-explorer-9-sur-la-bonne-voie/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Créer une galerie photo grâce à CSS3</title>
		<link>http://clearideaz.com/2010/05/creer-une-galerie-photo-grace-a-css3/</link>
		<comments>http://clearideaz.com/2010/05/creer-une-galerie-photo-grace-a-css3/#comments</comments>
		<pubDate>Mon, 31 May 2010 13:20:38 +0000</pubDate>
		<dc:creator>Olivier G.</dc:creator>
				<category><![CDATA[CSS3]]></category>
		<category><![CDATA[cross-browser]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[démonstration]]></category>
		<category><![CDATA[galerie]]></category>

		<guid isPermaLink="false">http://clearideaz.com/?p=327</guid>
		<description><![CDATA[Avec l&#8217;arrivée des nouvelles propriétés CSS3 (dont la spécification n&#8217;est toujours pas finalisée&#8230;), il est devenu assez facile de créer des sites internet attrayants sans pour autant avoir recours à Flash ou à JavaScript.
Dans la démonstration associée à cet article, vous aller pouvoir visualiser quelques possibilités offertes par CSS3, voici celles que j&#8217;ai utilisées :
Le [...]]]></description>
			<content:encoded><![CDATA[<p><a title="CSS3 Highlight, une galerie photo full CSS" href="http://clearideaz.com/demo/CSS-Highlight/"><img class="alignright size-thumbnail wp-image-330" title="css3highlight" src="http://clearideaz.com/wp-content/uploads/2010/05/css3highlight1-e1275308478674-200x200.jpg" alt="" width="200" height="200" /></a>Avec l&#8217;arrivée des nouvelles propriétés CSS3 (dont la spécification n&#8217;est toujours pas finalisée&#8230;), il est devenu assez facile de créer des sites internet attrayants sans pour autant avoir recours à Flash ou à JavaScript.</p>
<p>Dans la <a title="CSS3 Highlight, une galerie photo full CSS" href="http://clearideaz.com/demo/CSS-Highlight/">démonstration associée à cet article</a>, vous aller pouvoir visualiser quelques possibilités offertes par CSS3, voici celles que j&#8217;ai utilisées :</p>
<h3>Le pseudo-selecteur :target</h3>
<p>:target est un pseudo-sélecteur permettant d&#8217;accéder à un élément du DOM possédant l&#8217;id du lien référent.<br />
En clair, si je clique sur un lien dont l&#8217;attribut href est égal à #test, la propriété de style a:target { background-color:red; } affectera un fond de couleur rouge à l&#8217;élément ayant pour ID #test.</p>
<p>C&#8217;est de cette manière que j&#8217;obtiens la méthode de sélection des images agrandie dans la démo. Pour IE qui ne supporte par cette propriété, j&#8217;ai bidouillé grâce à l&#8217;overflow. En clair, le cadre conteneur des images agrandies a pour attribut overflow, la valeur hidden. Il dispose en outre des dimensions exactes d&#8217;une de ces images. Au clic sur le lien de la miniature, l&#8217;image cible est directement appelée par le hash du lien.</p>

<h3>Les ombres</h3>
<p>Pour la démo, j&#8217;ai utilisé la propriété box-shadow afin de mettre en valeur l&#8217;image miniature survolée. La syntaxe est simple :</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;">-moz-box-shadow<span style="color: #00AA00;">:</span><span style="color: #cc66cc;">0</span> <span style="color: #cc66cc;">0</span> <span style="color: #cc66cc;">0</span> rgba<span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0.5</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span>
-webkit-box-shadow<span style="color: #00AA00;">:</span><span style="color: #cc66cc;">0</span> <span style="color: #cc66cc;">0</span> <span style="color: #cc66cc;">0</span> rgba<span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0.5</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span></pre></div></div>

<p>Il est à noter que cette propriété à été retiré pour le moment de la spécification CSS3.</p>
<h3>La propriété transform</h3>
<p>Cette propriété permet d&#8217;agir sur la forme d&#8217;un élément, qu&#8217;il s&#8217;agisse d&#8217;une image ou de toute autre balise standard.</p>
<p>Il est par exemple possible d&#8217;effectuer une rotation sur un objet via cette syntaxe :</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;">img <span style="color: #00AA00;">&#123;</span>
  transform<span style="color: #00AA00;">:</span>rotate<span style="color: #00AA00;">&#40;</span>20deg<span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div>

<p>Il vous sera également possible de mettre à l&#8217;échelle certains élements. Voici un exemple :</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;">div<span style="color: #cc00cc;">#button</span> <span style="color: #00AA00;">&#123;</span>
  transform<span style="color: #00AA00;">:</span>scale<span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">0.8</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* réduira la div de 20% */</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div>

<p>Sur la démonstration, je m&#8217;en suis servi pour agrandir les miniatures au survol de la souris.</p>
<h3>Les transitions</h3>
<p>J&#8217;ai également utilisé les <em>transitions</em> (qui ne fonctionnent qu&#8217;avec la version 3.7 de Firefox et avec les dernières versions de Safari).  Les transitions CSS permettent de modifier les  valeurs de propriétés CSS progressivement, sur une durée déterminée. On construit la valeur en spécifiant d&#8217;abord la ou les propriétés sur lesquelles on souhaite agir (background-color par exemple ou all pour toute les propriétés liées au sélecteur), on indique ensuite une durée d&#8217;animation (en secondes ou millisecondes), puis le type d&#8217;effet de transition (default, linear, ease-in, ease-out, ease-in-out ou cubic-bezier).<br />
Voici un exemple de propriété :</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;">transition<span style="color: #00AA00;">:</span> all 1s ease-in-out<span style="color: #00AA00;">;</span></pre></div></div>

<p>Les animations de la galerie CSS3 utilisent pleinement les possibilités offertes par les transitions.</p>
<p>Dernière astuce liées à cette propriétés : pour donner cette impression d&#8217;image tournoyante lorsqu&#8217;une miniature est sélectionnée, j&#8217;ai juste initialisée la rotation de l&#8217;image à -360 degrés. Une fois l&#8217;image sélectionnée, l&#8217;image cible (:target) subit une rotation de 0 degré.</p>
<h3>La démonstration</h3>
<p>Voici donc <a title="CSS3 Highlight, une galerie photo full CSS" href="http://clearideaz.com/demo/CSS-Highlight/">la démonstration d&#8217;une galerie full-CSS</a>. Pour le fun, visualisez cette galerie sur différents navigateurs (IE 6, Firefox 3.6, Safari). Vous verrez ainsi que la galerie utilise le concept d&#8217;<a title="La définition WIkipédia de l'amélioration progressive" href="http://fr.wikipedia.org/wiki/Am%C3%A9lioration_progressive">amélioration progressive</a>.</p>
<ul class="demo">
<li><a title="Visualiser la démo de CSS3 Highlight, une galerie photo full CSS" href="http://clearideaz.com/demo/CSS-Highlight/">Accéder à la démonstration</a></li>
<li><a title="Télecharger la démo de CSS3 Highlight, une galerie photo full CSS" href="http://clearideaz.com/demo/CSS-Highlight/CSS-Highlight.zip">Télécharger la démo</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://clearideaz.com/2010/05/creer-une-galerie-photo-grace-a-css3/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Astuce pour HTML5</title>
		<link>http://clearideaz.com/2010/05/astuce-html5/</link>
		<comments>http://clearideaz.com/2010/05/astuce-html5/#comments</comments>
		<pubDate>Wed, 26 May 2010 12:37:37 +0000</pubDate>
		<dc:creator>Olivier G.</dc:creator>
				<category><![CDATA[HTML5]]></category>
		<category><![CDATA[astuce]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[html]]></category>

		<guid isPermaLink="false">http://clearideaz.com/?p=322</guid>
		<description><![CDATA[Comme vous avez surement pu le constater, il est possible en HTML5 d&#8217;encadrer des balises de type bloc par une balise de type lien inline de cette manière :

&#60;a href=&#34;http://www.smashingmagazine.com&#34;&#62;
  &#60;h1&#62;Smashing Magazine&#60;/h1&#62;
  &#60;h2&#62;online magazine dedicated to designers and developers.&#60;/h2&#62;
&#60;/a&#62;

Le lien devient ainsi actif sur l&#8217;ensemble des balises bloc. Ceci évite d&#8217;insérer plusieurs fois [...]]]></description>
			<content:encoded><![CDATA[<p>Comme vous avez surement pu le constater, il est possible en HTML5 d&#8217;encadrer des balises de type bloc par une balise de type lien inline de cette manière :</p>

<div class="wp_syntax"><div class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://www.smashingmagazine.com&quot;</span>&gt;</span>
  <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">h1</span>&gt;</span>Smashing Magazine<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">h1</span>&gt;</span>
  <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">h2</span>&gt;</span>online magazine dedicated to designers and developers.<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">h2</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;</span></pre></div></div>

<p>Le lien devient ainsi actif sur l&#8217;ensemble des balises bloc. Ceci évite d&#8217;insérer plusieurs fois le même lien.</p>
<p>Ce balisage marche sur la plupart des navigateurs dont IE6 seulement voilà, sur ce dernier, le curseur n&#8217;est pas correct au survol des balises de type bloc. A la place du pointeur, on à le curseur de type de texte.</p>
<p>Voici ce que l&#8217;on peut ajouter dans la feuille de style pour corriger celà :</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;">a <span style="color: #00AA00;">*</span> <span style="color: #00AA00;">&#123;</span> <span style="color: #000000; font-weight: bold;">cursor</span><span style="color: #00AA00;">:</span><span style="color: #993333;">pointer</span><span style="color: #00AA00;">;</span> <span style="color: #00AA00;">&#125;</span></pre></div></div>

<p>Et miracle, le curseur par défaut des liens fonctionne également sur les balises type bloc.</p>
]]></content:encoded>
			<wfw:commentRss>http://clearideaz.com/2010/05/astuce-html5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Détecter le support HTML5 du navigateur via Jquery</title>
		<link>http://clearideaz.com/2010/05/detecter-le-support-html5-du-navigateur-via-jquery/</link>
		<comments>http://clearideaz.com/2010/05/detecter-le-support-html5-du-navigateur-via-jquery/#comments</comments>
		<pubDate>Thu, 20 May 2010 18:05:35 +0000</pubDate>
		<dc:creator>Olivier G.</dc:creator>
				<category><![CDATA[HTML5]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[support]]></category>

		<guid isPermaLink="false">http://clearideaz.com/?p=313</guid>
		<description><![CDATA[Le site Dive into HTML5 a publié récemment un article détaillant les différentes méthodes de détection de fonctionnalités HTML5 sur les navigateurs via Javascript.
Utilisateur régulier de jQuery, j&#8217;ai décidé de porter ces scripts au sein de la fonction $.support.
Voici la liste des tests possibles : audio, audioMp3, audioVorbis, audioWav, audioAAC, canvas, canvasTxt, command, datalist, details, [...]]]></description>
			<content:encoded><![CDATA[<p>Le site <a title="Dive into HTML5 par Mark Pilgrim" href="http://diveintohtml5.org/everything.html" lang="en">Dive into HTML5</a> a publié récemment un article détaillant les différentes méthodes de détection de fonctionnalités HTML5 sur les navigateurs via Javascript.</p>
<p>Utilisateur régulier de <a href="http://jquery.com" title="Site officiel de la librairie Javascript jQuery" lang="en">jQuery</a>, j&#8217;ai décidé de porter ces scripts au sein de la fonction <a href="http://api.jquery.com/jQuery.support/" title="Documentation de la fonction support de jQuery" lang="en">$.support</a>.</p>
<p>Voici la liste des tests possibles : audio, audioMp3, audioVorbis, audioWav, audioAAC, canvas, canvasTxt, command, datalist, details, device, formConstraints, iframeSandbox, iframeSrcDoc, autofocus, placeholder, color, email, number, range, search, tel, url, date, time, datetime, datetime-local, month, week, meter, output, progress, time, video, videoCaptions, videoPoster, videoWebM, videoH264, videoTheora, contentEditable, dragAndDrop, fileAPI, geoLocation, history, localStorage, microdata, applicationCache, eventSource, sessionStorage, svg, svgInHtml, webSimpleDb, webSocket, openDatabase, webWorkers, undo.</p>
<p>Vous trouverez une démonstration des possibilités offertes par le script sur cette <a href="http://clearideaz.com/demo/jquerySupportHTML5/" title="HTML5 detection with jQuery Support" lang="en">page de test du support HTML5 de votre navigateur</a>.</p>
<p>Si vous souhaitez par exemple tester le support du SVG, insérez la ligne suivante au sein de votre fichier Javascript :</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">$.<span style="color: #660066;">support</span>.<span style="color: #660066;">svg</span> <span style="color: #006600; font-style: italic;">// retourne false sur IE et true sur les versions récentes de Firefox</span></pre></div></div>

<p>Le script est léger : 8ko en version source et 3ko en version minifiée.</p>
<p>Vous pouvez télécharger l&#8217;extend jQuery sur <a href="http://github.com/clearideaz/jquerySupportHTML5" title="Espace Github de Clearideaz" lang="en">mon espace Github</a> </p>
<p>N&#8217;hésitez pas à me signaler le moindre bug.</p>
<p>Édit : correction d&#8217;un lien</p>
]]></content:encoded>
			<wfw:commentRss>http://clearideaz.com/2010/05/detecter-le-support-html5-du-navigateur-via-jquery/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Analyse de la nouvelle version de Duoh.com</title>
		<link>http://clearideaz.com/2008/11/analyse-de-la-nouvelle-versiond-e-duohcom/</link>
		<comments>http://clearideaz.com/2008/11/analyse-de-la-nouvelle-versiond-e-duohcom/#comments</comments>
		<pubDate>Sun, 16 Nov 2008 17:48:00 +0000</pubDate>
		<dc:creator>Olivier G.</dc:creator>
				<category><![CDATA[HTML / CSS]]></category>
		<category><![CDATA[Webdesign]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[duoh]]></category>
		<category><![CDATA[graphisme]]></category>
		<category><![CDATA[pieters]]></category>
		<category><![CDATA[veerle]]></category>

		<guid isPermaLink="false">http://www.clearideaz.com/?p=22</guid>
		<description><![CDATA[<p>Après un petit congé billet, je me redécide à écrire un billet à l’occasion de la publication récente de la nouvelle version du site <a hreflang="en" href="http://www.duoh.com/?rel=http://www.weblogr.fr">Duoh</a>. Pourquoi ce site&#160;? Parce qu’il est un exemple d’innovation en matière de webdesign. </p> <p>Trop de sites sont réalisés par des designers qui n’ont pas de réelle vision web et il ne faut en aucun cas les blâmer mais il serait grand temps d’avancer et de laisser le webdesign à des gens qui ont été formés pour ça et de ce fait, proposer enfin, de vrai formation dans ce domaine. Le webdesign répond à des contraintes d’ergonomie, d’accessibilité, de sémantique et d’intégration. L’art est secondaire (troll&#160;?). La maquette web est au service du contenu et non pas l’inverse.</p>]]></description>
			<content:encoded><![CDATA[<p>Après un petit congé billet, je me redécide à écrire un billet à l’occasion de la publication récente de la nouvelle version du site <a hreflang="en" href="http://www.duoh.com/?rel=http://www.weblogr.fr">Duoh</a>. Pourquoi ce site ? Parce qu’il est un exemple d’innovation en matière de webdesign.</p>
<p>Trop de sites sont réalisés par des designers qui n’ont pas de réelle vision web et il ne faut en aucun cas les blâmer mais il serait grand temps d’avancer et de laisser le webdesign à des gens qui ont été formés pour ça et de ce fait, proposer enfin, de vrai formation dans ce domaine. Le webdesign répond à des contraintes d’ergonomie, d’accessibilité, de sémantique et d’intégration. L’art est secondaire (troll ?). La maquette web est au service du contenu et non pas l’inverse.</p>

<p>Revenons donc à Duoh.com. Définissons d’abord ce qu’ils font. C’est une agence de design web et print qui existe depuis 1992 et composée de deux personnes : Geert Leyseele, le directeur de projet et Veerle Pieters au secteur de l’illustration et ’intégration. Duoh produit essentiellement de l’interface web mais également des logos, des illustrations, des icones et enfin du print.</p>
<p>Nous allons étudier dans un premier temps l’aspect graphique puis nous nous concentrerons sur l’aspect technique.</p>
<h3>Une grille peu conventionnelle</h3>
<p>Réalisée sous Illustrator, la maquette du site Duoh.com a pris un certain nombre de liberté graphique. Il ne s’agissait pas ici de s’enfermer dans les contraintes d’une grille.</p>
<p>Pourtant la tentation aurait été grande. On sait à quel point le design suisse (design que voulais évoque le nouveau Duoh) est très cubique et il aurait été évident de se caler précisément sur une grille régulière. Mais ici, il fallait du mouvement, de la vie. Comme on peut le voir sur l’image ci-dessous, certains éléments sont délibérement décalés par rapport à la grille de base.</p>
<p><a class="zoom" href="http://clearideaz.com/wp-content/uploads/2008/11/duohGrid.jpg"><img src="http://clearideaz.com/wp-content/uploads/2008/11/duohGrid-981x1024.jpg" alt="" title="duohGrid" width="282" height="295" class="alignleft size-large wp-image-77" /></a></p>
<p>Cela créé une certaine dynamique dans la mise en page. L’idée est également d’avoir un aspect différent à chaque scroll dans la page.</p>
<p>Concernant le choix des couleurs, là aussi, l’originalité était de mise. La maquette est un vrai arc-en-ciel. Une dizaine de couleurs ont été utilisées (rien que ça !). Mais c’est surtout leur utilisation qui est intéressante. On peut observer en fond de page, une gris très foncé (#3e373c) et dans la zone principale de contenu du blanc. En termes de contraste, on ne peut pas faire mieux. Et sur cette structure monochrome, viennent s’ajouter des couleurs <span lang="en">« flashy »</span> qui donnent force et vivacité.</p>
<p>Chaque maquette de page se présente comme une surprise pour le visiteur. Le fond de page change en permanence. En voici quelques exemples ci-dessous :</p>
<p><img class="alignnone size-full wp-image-83" title="Illustrations dans le fond de page du site Duoh" src="http://clearideaz.com/wp-content/uploads/2008/11/graphDuoh.jpg" alt="Illustrations dans le fond de page du site Duoh" width="390" height="499" /></p>
<p>Il en est de même pour la sidebar…</p>
<p><img class="alignnone size-full wp-image-84" title="Illustration de la sidebar du site Duoh" src="http://clearideaz.com/wp-content/uploads/2008/11/sidebarDuoh.jpg" alt="Illustration de la sidebar du site Duoh" width="390" height="228" /></p>
<h3>L’innovation dans l’intégration</h3>
<p>Si l’on met de côté un instant l’aspect graphique, on pourra remarquer un certain nombre de techniques d’intégration assez intéressantes et qui peuvent être aussi contestables.</p>
<p>Pour ce qui est des remplacements de texte par des images dans le menu principal, il y a un choix d’utiliser des balises span vides. A première vue, ça peut faire enrager les adeptes de la validité stricte ! Mais là, il est question d’accessibilité. En effet, contrairement aux techniques de remplacements d’image utilisées largement (text-indent :-9999px ou top :-9999px), il n’y aura aucun de souci lors de la lecture de la page si la CSS est activée et si les images ne sont pas chargées. L&#8217;astuce est de placer les span avec pour fond l&#8217;image au dessus (en position absolue) du texte.</p>
<p>Il peut paraitre également surprenant de trouver parfois des remplacements de texte par des images qui n’ont pas du tout le même contenu. Il y a par exemple sur la page Contact us, un titre de niveau 2 qui contient le texte <span lang="en">« Contact us for an estimate? »</span> et qui sous forme d’image est remplacé par <span lang="en">« Want a site that beautiful and brainy too ? »</span> ou le texte sur la <span lang="en">homepage</span> <span lang="en">« Who we are »</span> qui est tout bonnement remplacé par une image de séparation. J’argumenterais qu’ici on différencie l’aspect que le site aura lorsqu’il sera chargé avec tous les éléments graphique et son aspect dans aucune illustration. Aucun aspect n’est handicapé par ces pratiques et l’utilisateur ne manque aucune informations d’un coté comme de l’autre.</p>
<p>Ce qui a le plus perturbé les utilisateurs au premier coup d’œil sur ce site est l’utilisation de l’espace par la mise en page. Le site a été pensé de manière à ce qu’il soit agréable à lire autant sur des petites résolutions que sur des énormes résolutions (type iMac).Ce qui a rebuté plus d’un utilisateur est le fait qu’on ne puisse pas avoir accès sur les résolutions 1024*768 aux citations. D’autres qui avaient des résolutions intermédiaires se lamentaient d’avoir des citations coupées.</p>
<p>Ce genre de commentaires sont anti-productifs et ne feront jamais avancer le web. Il faut replacer le projet dans un contexte. Ici on parle de la vitrine d’un site de création web et print et pas d’un site destiné à un client. Ici, l’aspect novateur est qu’aucune résolution ne souffre de la mise en page. Le site s’adapte très bien à tout type d’écran. Il est enfin plaisant pour des personnes<span> </span>ayant des résolutions de type 1900*1200 de naviguer sur des sites web.</p>
<p>On notera également l’utilisation de la police de caractère Corbel (police distribuée avec Vista) et qui est remplacée par l’Helvetica au cas où cette dernière n’est pas disponible.</p>
<h3>Au rang de la technique</h3>
<p>Le site utilise le CMS <a hreflang="en" href="http://www.expressionengine.com/index.php?affiliate=veerlesblog&amp;page=/overview/"><span lang="en">Expression Engine</span></a> et est hébergé chez <a hreflang="en" href="http://enginehosting.com/"><span lang="en">Engine Hosting</span></a> qui met à disposition ce CMS de base. Je ne connais pas encore totalement cet outil, je suis dans la découverte mais il semble qu’il soit très souple et offre grand nombre de fonctionnalités.</p>
<p>Les pages pèse en moyenne 200 ko, les fichiers les plus lourds étant les images de fonds bien évidemment mais on a rien sans rien <img src='http://clearideaz.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Coté javascript, Duoh a fait le choix « tendance » de la librairie <a hreflang="en" href="http://www.mootools.net"><span lang="en">Mootools</span></a>. Ce qui est dommage, c’est d’avoir utilisé une librairie javascript uniquement pour les effets d’images sur la homepage et pour les tooltips de la <span lang="en">sidebar</span>. Là encore, ça se discute…</p>
<p>Le site est strictement valide W3C sur le code XHTML. Seule la CSS ne valide pas mais est-ce bien grave ?</p>
<h3>Conclusion</h3>
<p>Veerle qui a réalisé la maquette et l’intégration html de Duoh propose sans cesse ses idées en matière d’illustrations ou de réalisations web et Duoh.com constitue, une fois de plus, une nouvelle source d’inspiration.</p>
<p>Je vous invite à consulter ces liens pour plus d’informations :</p>
<ul>
<li><a hreflang="en" href="http://veerle.duoh.com/blog/comments/new_duoh_dot_com_has_launched/">New Duoh! dot com has launched</a></li>
<li><a hreflang="en" href="http://veerle.duoh.com/blog/comments/tweaks_to_duoh_dot_com/">Tweaks to Duoh! dot com</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://clearideaz.com/2008/11/analyse-de-la-nouvelle-versiond-e-duohcom/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Du Parallax avec jQuery et CSS</title>
		<link>http://clearideaz.com/2008/06/du-parallax-avec-jquery-et-css/</link>
		<comments>http://clearideaz.com/2008/06/du-parallax-avec-jquery-et-css/#comments</comments>
		<pubDate>Fri, 06 Jun 2008 09:12:00 +0000</pubDate>
		<dc:creator>Olivier G.</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[parallax]]></category>

		<guid isPermaLink="false">http://www.clearideaz.com/?p=15</guid>
		<description><![CDATA[<p>Le <a href="http://fr.wikipedia.org/wiki/D%C3%A9filement" title="Voir la définition de Scrolling Parallax sur Wikipédia">scrolling parallax</a> est une technique qui consiste a créer un pseudo-effet de 3D sur un environnement en 2D. Si vous avez déjà pu jouer aux premières versions de Sonic The Hedgehog, vous comprendrez de quoi je parle. Je me suis amusé, encore une fois avec JQuery, a créer un effet parallax sur une page d’accueil d’un site existant.</p> <p>J’ai repris la page d’accueil de <a href="http://www.silverbackapp.com" title="Se rendre sur le site SilverBack.com">SilverBackApp.com</a> qui utilise déjà un effet Parallax au redimensionnement du navigateur. La technique très subtile consiste a placer les différentes couches de fonds avec des background-position en pourcentage. En jouant justement sur ces valeurs relatives, on peut de ce fait créer un effet intéressant lorsque l’utilisateur redimensionne sa fenêtre.</p> <p>En partant de cette base, j’ai décidé de rajouter une couche Javascript. Le but est de changer la position du fond en fonction de la position de l’image. Pour cela, on va juste récupérer les positions du pointeur et utiliser ces valeurs pour déterminer le positionnement (en pixel cette fois) des différentes images.</p>]]></description>
			<content:encoded><![CDATA[<p>Le <a title="Voir la définition de Scrolling Parallax sur Wikipédia" href="http://fr.wikipedia.org/wiki/D%C3%A9filement">scrolling parallax</a> est une technique qui consiste a créer un pseudo-effet de 3D sur un environnement en 2D. Si vous avez déjà pu jouer aux premières versions de Sonic The Hedgehog, vous comprendrez de quoi je parle. Je me suis amusé, encore une fois avec JQuery, a créer un effet parallax sur une page d’accueil d’un site existant.</p>
<p>J’ai repris la page d’accueil de <a title="Se rendre sur le site SilverBack.com" href="http://www.silverbackapp.com">SilverBackApp.com</a> qui utilise déjà un effet Parallax au redimensionnement du navigateur. La technique très subtile consiste a placer les différentes couches de fonds avec des background-position en pourcentage. En jouant justement sur ces valeurs relatives, on peut de ce fait créer un effet intéressant lorsque l’utilisateur redimensionne sa fenêtre.</p>
<p>En partant de cette base, j’ai décidé de rajouter une couche Javascript. Le but est de changer la position du fond en fonction de la position de l’image. Pour cela, on va juste récupérer les positions du pointeur et utiliser ces valeurs pour déterminer le positionnement (en pixel cette fois) des différentes images.</p>

<p>On obtiendra avec jQuery ce type de code pour la div #frontvines</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;body&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">mousemove</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>event<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
   $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#frontvines&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">css</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span> 
      backgroundPosition<span style="color: #339933;">:</span> <span style="color: #009900;">&#40;</span>event.<span style="color: #660066;">clientX</span> <span style="color: #339933;">*</span> <span style="color: #CC0000;">1.1</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #3366CC;">'px 0px'</span>
   <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Sur la première ligne, on cherche l’évènement qui indique que l’utilisateur bouge sa souris sur la page. Dans la partie fonction, on place en paramètre la position du curseur pour la réutiliser ensuite pour modifier les propriétés de styles associées à la balise comportant l&#8217;id #frontvines. Pour observer le résultat, rendez-vous sur la page dédié à cette démonstration <a title="Accéder à la première démonstration" href="http://clearideaz.com/demo/05062008/">disponible ici</a>.</p>
<p>Pour aller plus loin, je me suis amusé, dans une <a title="Accéder à la seconde démonstration" href="http://clearideaz.com/demo/06062008/">seconde démonstration</a>, à réutiliser une photo de paysage pour y introduire du parallax. Le principe reste le même, je vous laisse le soin de télécharger le script sur <a title="Accéder à la seconde démonstration" href="http://clearideaz.com/demo/06062008/">la page de la seconde démonstration</a>, vous y trouverez la manière de procéder dans les commentaires du fichier Javascript.</p>
<h3>Quelques liens en rapport avec Parallax :</h3>
<h4>Effet parallax à l’aide de CSS ou de Javascript</h4>
<ul>
<li><a title="Se rendre sur le site Dumago.net" href="http://dumago.net/">Le futur site de service Dumago.net (CSS)</a></li>
<li><a title="Visiter le site Umaghetzeggen.nl" href="http://www.umaghetzeggen.nl/">Effet parallax aux mouvements de la souris sur Umaghetzeggen.nl (Javascript)</a></li>
<li><a title="Accéder au site Dromaeo.com" href="http://dromaeo.com/">Le site des tests de performances Javascript Dromaeo (CSS)</a></li>
<li><a title="Voir la demo sur le site Dvessel.com" href="http://www.dvessel.com/">Démo expérimentale de footer avec effet de vagues (CSS)</a></li>
</ul>
<h4>Utilisation de parallax sous Flash</h4>
<ul>
<li><a title="Se rendre sur le site ff0000.com" href="http://www.ff0000.com/">Une démo assez bluffante en Flash</a></li>
<li><a title="Se rendre sur le site EffectsCod.com" href="http://www.effectscode.com/ImageEffects/DepthField/XML/">Effet de rotation rendu grâce à parallax</a></li>
<li><a title="Aller sur le site de Aviary" href="http://a.viary.com/">Un header construit en parallax</a></li>
<li><a title="Visiter le site Freedent White" href="http://www.freedentwhite.com/index.php/page/fr">Le site Freedent White</a></li>
</ul>
<h4>Tutorial</h4>
<ul>
<li><a title="Voir le tutos à propos de parallax via CSS " href="http://www.sitepoint.com/blogs/2008/01/18/in-the-lab-doing-strange-things-to-css-backgrounds/">Un tutos sur Sitepoint.com sur les effet parallax en CSS</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://clearideaz.com/2008/06/du-parallax-avec-jquery-et-css/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Une carte Vélib grâce à l&#8217;API Google</title>
		<link>http://clearideaz.com/2008/05/carte-velib-grace-a-lapi-google-et-jquery/</link>
		<comments>http://clearideaz.com/2008/05/carte-velib-grace-a-lapi-google-et-jquery/#comments</comments>
		<pubDate>Fri, 02 May 2008 15:55:00 +0000</pubDate>
		<dc:creator>Olivier G.</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[map]]></category>
		<category><![CDATA[vélib]]></category>

		<guid isPermaLink="false">http://www.clearideaz.com/?p=14</guid>
		<description><![CDATA[Si vous habitez Paris ou si vous ne faites qu&#8217;y travailler (comme moi), vous avez surement déjà eu l&#8217;occasion d&#8217;utiliser le service Vélib. Le site officiel ou d&#8217;autres sites indépendants comme Roulib.fr proposent des cartes permettant d&#8217;afficher le nombre de vélos disponibles ou encore le nombre d&#8217;emplacements restants. Je vous propose de faire la même [...]]]></description>
			<content:encoded><![CDATA[<p>Si vous habitez Paris ou si vous ne faites qu&#8217;y travailler (comme moi), vous avez surement déjà eu l&#8217;occasion d&#8217;utiliser le service Vélib. Le <a href="http://www.velib.paris.fr/" title="Se rendre sur le site officiel du service Vélib">site officiel</a> ou d&#8217;autres sites indépendants comme <a href="http://www.roulib.fr" title="Visiter le site Roulib.fr">Roulib.fr</a> proposent des cartes permettant d&#8217;afficher le nombre de vélos disponibles ou encore le nombre d&#8217;emplacements restants. Je vous propose de faire la même chose grâce à l&#8217;<a href="http://code.google.com/apis/maps/documentation/" title="Voir la page de documentation concernant l'API de Google Maps">API de Google Map</a>.</p>
<p>Le principe est simple. On génère en local un fichier XML à partir du fichier distant présent sur le site officiel Vélib via <abbr title="Hypertext Preprocessor">PHP</abbr>. Une fois cette étape effectuée, on a plus qu&#8217;à charger le fichier xml à l&#8217;aide de <a href="http://fr.wikipedia.org/wiki/JavaScript" title="Se rendre sur la page Wikipédia concernant la définition du Javascript">Javascript.</a></p>
<p><a href="http://clearideaz.com/demo/04062008/" title="Se rendre sur la page de démo du script de la carte Vélib">La page de démonstration du script</a> utilise le framework <a href="http://www.jquery.com" title="Se rendre sur le site officiel de jQuery">jQuery</a> mais vous pourrez trouver dans l&#8217;<a href="http://clearideaz.com/demo/04062008/gmap-velib.zip" title="télécharger directement l'archive depuis cette page">archive</a> une version en javascript pur et une autre version associée à l&#8217;autre framework <a href="http://www.prototypejs.org/" title="Visiter le site officiel du framework Prototype">Prototype</a> (Merci d&#8217;ailleurs à <a href="http://www.sunfox.org/" title="Voir le fabuleux blog de mon escroc de collègue Sunny">Sunny</a> pour son aide <img src='http://clearideaz.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  )</p>
<p>Vous trouverez toutes les informations nécessaires dans les commentaires des différents fichiers javascript. N&#8217;oubliez pas d&#8217;aller <a href="http://code.google.com/apis/maps/signup.html" title="Se rendre sur le site Google Map pour obtenir une clé API">générer une clé API Google Map</a> sur le site dédié.</p>
<p>Pour pouvoir accéder à la carte et télécharger le script associé, rendez-vous sur <a href="http://clearideaz.com/demo/04062008/" title="Se rendre sur la page de démo du script de la carte Vélib">la page de démo du script de carte Vélib</a>. L&#8217;archive contient le script php pour générer les fichiers xml de la carte Vélib et des informations associées à chaque borne, les fichiers Javascript correspondants, la feuille de style <abbr title="Cascading Style Sheet">CSS</abbr> et les images requises.</p>
]]></content:encoded>
			<wfw:commentRss>http://clearideaz.com/2008/05/carte-velib-grace-a-lapi-google-et-jquery/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Les hacks c&#8217;est pas bien !</title>
		<link>http://clearideaz.com/2008/04/les-hacks-cest-pas-bien/</link>
		<comments>http://clearideaz.com/2008/04/les-hacks-cest-pas-bien/#comments</comments>
		<pubDate>Thu, 24 Apr 2008 13:35:00 +0000</pubDate>
		<dc:creator>Olivier G.</dc:creator>
				<category><![CDATA[HTML / CSS]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[htc]]></category>
		<category><![CDATA[ie]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[navigateurs]]></category>

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

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

		<guid isPermaLink="false">http://www.clearideaz.com/?p=26</guid>
		<description><![CDATA[<p>Après avoir achevé la maquette définitive du site, je suis ensuite passé au travail le plus intéressant, celui de l’intégration. J’ai commencé par comprendre mon document. Qu’est-ce que ma page raconte&#160;? Qu’est-ce qu’elle laisse transparaitre. Je peux ainsi mettre des noms sur les différents éléments présents dans la page&#160;: menu général du haut, titre de niveau 1, menu latéral des rubriques… Cette étape va me permettre de visualiser les différentes balises les plus adaptées aux différentes parties du document et délimiter les différentes zones (header, footer…).</p>]]></description>
			<content:encoded><![CDATA[<p>Après avoir achevé la maquette définitive du site, je suis ensuite passé au travail le plus intéressant, celui de l’intégration. J’ai commencé par comprendre mon document. Qu’est-ce que ma page raconte ? Qu’est-ce qu’elle laisse transparaitre. Je peux ainsi mettre des noms sur les différents éléments présents dans la page : menu général du haut, titre de niveau 1, menu latéral des rubriques… Cette étape va me permettre de visualiser les différentes balises les plus adaptées aux différentes parties du document et délimiter les différentes zones (header, footer…).</p>
<p><span id="more-26"></span><br />
<img class="alignnone size-full wp-image-99" title="La mises en balise et la délimitation des différentes parties" src="http://www.clearideaz.com/wp-content/uploads/2008/03/demobalisage.jpg" alt="demobalisage" width="390" height="444" /></p>
<p>On peut avoir plusieurs interprétations d’une mise en page et toutes sont contestables. Chacun peut avoir son idée sur la question mais la démarche de conception du document XHTML de manière sémantique est déjà une grande étape. Le travail d’intégration n’est pas un simple collage du travail graphique mais une interprétation sémantique de la maquette graphique.</p>
<p>Comme le dit si bien <a title="Voir l'article de Molly E. Holzschlag sur la sémantique dans les document XHTML" href="http://www.peachpit.com/articles/article.aspx?p=369225">Molly E. Holzschlag</a> :</p>
<blockquote><p>Dans le balisage, la sémantique traite du sens d’un élément et de la manière dont celui-ci est décrit dans son contenu.</p></blockquote>
<p>Une fois cette réflexion effectuée, je me suis mis à la première mise en application de mon schéma de balises. J’ai construis mon document sans penser une seule fois à l’apparence qu’il pourra avoir ensuite. Je me suis contenté de reprendre les balises et de les organiser de manière logique. Cette méthode permettra à votre document d’avoir du sens avec ou sans style. La mise en forme graphique sera l’affaire des feuilles de style.</p>
<p>Voici un extrait du schéma adopté :</p>

<div class="wp_syntax"><div class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">h1</span>&gt;</span>Ecole primaire et maternelle Notre Dame<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">h1</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">h2</span>&gt;</span>Faches-Thumesnil<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">h2</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">ul</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">li</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;#&quot;</span>&gt;</span>Accueil<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">li</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">li</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;#&quot;</span>&gt;</span>A propos<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">li</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">li</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;#&quot;</span>&gt;</span>Contact<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">li</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">ul</span>&gt;</span>
&nbsp;
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">h3</span>&gt;</span>Vivre ensemble<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">h3</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">p</span>&gt;</span>A l’école Notre-Dame située à Faches-Thumesnil, <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">strong</span>&gt;</span>l’épanouissement de votre enfant est pour nous un devoir.<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">strong</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">br</span> <span style="color: #66cc66;">/</span>&gt;</span>
Au cours de sa scolarité, l’enfant aura accès à de nombreuses activités favorisant ainsi son bien-être au sein de l’école.<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">p</span>&gt;</span></pre></div></div>

<p>Vous aurez sans-doute remarqué l’ajout d’une balise H2 qui n’était pas présente sur la maquette. Elle servira uniquement de balise utile au référencement et qui sera masquée sur le document visible par l’utilisateur.</p>
<p>Il est important d’éviter de surcharger le document en balisage superflu uniquement pour satisfaire ses besoins graphiques. On peut souvent se passer de calques (div). La balise UL peut être également utilisable pour créer un fond autour des différentes puces. L’objectif est d’avoir un document HTML qui se charge rapidement. Sur cette maquette, j’ai pu obtenir une mise en page comptant 124 lignes de balises XHTML là où j’aurais pu en faire le double si j’avais multiplié les DIV. En clair, il faut éviter tout balisage superflu.</p>
<p>Pendant l’étape de mise en code, j’ai régulièrement passé mon code au validateur W3C, on est jamais à l’abri d’une petite erreur.</p>
<p>Une fois mon code XHTML établi, j’ai pu me lancer dans la création de la feuille de style. Je me suis efforcé de bien organiser les différentes parties du document. Ainsi les propriétés relatives au header, corps de page, footer sont regroupées afin d’améliorer la lecture de la feuille CSS. Je n’utilise jamais de hacks dans mes feuilles de style. Au pire des cas (et vraiment en dernier recours), j’insère une feuille supplémentaire avec un commentaire conditionnel dans la page. Je pars du principe que toute mise en page peut être réalisée sans bidouilles. Cette démarche pose toutefois quelques limitations : L’absence de pseudo-classe :focus, la mise à disposition de la pseudo-classe :hover avec des possibilités réduites, l’utilisation d’images au format PNG transparentes.</p>
<p>Ces limitations, je les dépasse souvent à l’aide de JavaScript. On me reprochera de ce fait d’alourdir la page en scripts supplémentaires pour palier aux limitations de certains navigateurs et je répondrais que l’utilisation de fichier *.htc pour ajouter le :hover ou le :focus est aussi du JavaScript injecté différemment. Je profiterais même de cette évocation du fichier .*htc pour préciser que l’utilisation de cette méthode dans les feuilles de style pour intégrer des PNG lisibles sous Internet Explorer est une aberration. Cette pratique non-valide W3C va à l’encontre du principe même de la feuille CSS qui est sensée appliquer un style au document et non pas destinée à lancer des fonctions JavaScripts.</p>
<p>Vers la fin de l’intégration de ma maquette, je me suis permis quelques petites « folies » JavaScript sur la page afin de la rendre plus animée. Il faut toutefois éviter de devenir gadget !</p>
<p>Au final, je suis parvenu à réaliser une mise en page lisible sur l’ensemble des navigateurs couramment utilisés tout en ayant un code propre et une feuille de style dépourvue de hacks en tout genre.</p>
<p>Vous pouvez visualiser l’intégration de la maquette en vous rendant sur <a title="Voir le résultat de l'intégration XHTML / CSS" href="demo/24032007/">cette page</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://clearideaz.com/2008/03/recit-dune-creation-de-site-internet-2eme-partie/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
