<?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>By Myself &#187; html5</title>
	<atom:link href="http://www.warpdesign.fr/blog/tag/html5/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.warpdesign.fr/blog</link>
	<description>All by Myself</description>
	<lastBuildDate>Sat, 21 Jan 2012 00:18:25 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Un jeu en HTML 5 / JavaScript / CSS</title>
		<link>http://www.warpdesign.fr/blog/2010/07/10/un-jeu-en-html-5-javascript-css/</link>
		<comments>http://www.warpdesign.fr/blog/2010/07/10/un-jeu-en-html-5-javascript-css/#comments</comments>
		<pubDate>Sat, 10 Jul 2010 21:22:05 +0000</pubDate>
		<dc:creator>leo</dc:creator>
				<category><![CDATA[Techno]]></category>
		<category><![CDATA[Xperiments]]></category>
		<category><![CDATA[css3]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[in the mood for life]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[js]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[palm]]></category>
		<category><![CDATA[pixi]]></category>
		<category><![CDATA[pre]]></category>
		<category><![CDATA[safari]]></category>
		<category><![CDATA[transitions]]></category>
		<category><![CDATA[trip-hop]]></category>
		<category><![CDATA[triphop]]></category>
		<category><![CDATA[warpklondike]]></category>
		<category><![CDATA[wax]]></category>
		<category><![CDATA[wax tailor]]></category>
		<category><![CDATA[webkit]]></category>
		<category><![CDATA[webos]]></category>

		<guid isPermaLink="false">http://www.warpdesign.fr/blog/?p=330</guid>
		<description><![CDATA[

Intéressé par le développement sur Palm/webOS, j&#8217;ai commencé par faire un petit POC sur la possibilité de développer un petit Solitaire en HTML 5 / JavaScript. Voici quelques remarques (générales) sur le développement de jeux CSS/Html5/JavaScript.


This or That ?
La principale difficultée réside dans la variable this, qui peut prendre n&#8217;importe quelle valeur en JavaScript. Dans [...]]]></description>
			<content:encoded><![CDATA[<p>
<img src="http://www.warpdesign.fr/blog/images/warpklondike.png" alt="Espion(s)" style="float: left; margin-right: 12px;"/><br />
Intéressé par le développement sur Palm/webOS, j&#8217;ai commencé par faire un petit POC sur la possibilité de développer un petit Solitaire en HTML 5 / JavaScript. Voici quelques remarques (générales) sur le développement de jeux CSS/Html5/JavaScript.
</p>
<p><span id="more-330"></span></p>
<h1>This or That ?</h1>
<p>La principale difficultée réside dans la variable this, qui peut prendre n&#8217;importe quelle valeur en JavaScript. Dans tout autre language (Java, Cpp,&#8230;), this fera toujours référence à l&#8217;objet en cours. En JavaScript, ce n&#8217;est pas aussi simple: this dépend en fait du contexte d&#8217;appel de la méthode, ce contexte pouvant être modifié par l&#8217;utilisation de apply.</p>
<p>Comme je sens que vous commencez à tourner de l&#8217;oeil, prenons un exemple:</p>
<pre><code><span style="color: #003366; font-weight: bold;">function</span> monConstructeur<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>
  <span style="color: #66cc66;">&#123;</span>
     <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #006600;">monAttribut</span> = <span style="color: #3366CC;">'yop !'</span>;
  <span style="color: #66cc66;">&#125;</span>
&nbsp;
  monConstructeur.<span style="color: #006600;">prototype</span> = <span style="color: #66cc66;">&#123;</span>
     maMethode: <span style="color: #003366; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>
     <span style="color: #66cc66;">&#123;</span>
        console.<span style="color: #006600;">log</span><span style="color: #66cc66;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #006600;">monAttribut</span><span style="color: #66cc66;">&#41;</span>;
     <span style="color: #66cc66;">&#125;</span>
  <span style="color: #66cc66;">&#125;</span>
  <span style="color: #003366; font-weight: bold;">var</span> monInstance = <span style="color: #003366; font-weight: bold;">new</span> monConstructeur<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
  <span style="color: #009900; font-style: italic;">// 'yop !'</span>
  monInstance.<span style="color: #006600;">maMethode</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
  <span style="color: #009900; font-style: italic;">// undefined</span>
  setTimeout<span style="color: #66cc66;">&#40;</span>monInstance.<span style="color: #006600;">maMethode</span>, <span style="color: #CC0000;">1000</span><span style="color: #66cc66;">&#41;</span>;</code></pre>
<p>A 1ère vue, les deux appels devraient tous les deux afficher &#8216;Yop !&#8217;, et pourtant, le 2ème appel affichera undefined, parce que this, dans ce cas précis, fera référence à l&#8217;objet global (ie: window), et non pas à notre instance. Mais ?! Pourquoi ?!! La valeur de this dépend en fait de l&#8217;invocation.</p>
<p>Il existe en réalité 4 patterns d&#8217;invocation de méthode en JavaScript, et la valeur de this en dépend:</p>
<p><strong>1. Le pattern d&#8217;invocation de méthode</strong></p>
<p>Dans le cas d&#8217;invocation de méthode, this fait référence à l&#8217;objet contenant la méthode:</p>
<pre><code><span style="color: #003366; font-weight: bold;">var</span> monObjet = <span style="color: #66cc66;">&#123;</span>
     monAttribut: <span style="color: #3366CC;">'yop !'</span>,
     maMethode: <span style="color: #003366; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span> <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #006600;">monAttribut</span>; <span style="color: #66cc66;">&#125;</span>
  <span style="color: #66cc66;">&#125;</span>; 
&nbsp;
 <span style="color: #009900; font-style: italic;">// 'yop !'  </span>
 monObjet.<span style="color: #006600;">maMethode</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;</code></pre>
<p><strong>2. Le pattern d&#8217;invocation de fonction</strong></p>
<p>Dans le cas d&#8217;une invocation de fonction, this ne devrait pas être défini, et fait pourtant référence à l&#8217;objet global. C&#8217;est une erreur de conception du language qui se verra corrigée dans la prochaine version de ECMAscript.</p>
<pre><code><span style="color: #003366; font-weight: bold;">var</span> maFonction = <span style="color: #003366; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span> <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #006600;">location</span>; <span style="color: #66cc66;">&#125;</span>
  <span style="color: #009900; font-style: italic;">// Object</span>
  maFonction<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;</code></pre>
<p><strong>3. Le pattern d&#8217;invocation de constructeur</strong></p>
<pre><code><span style="color: #003366; font-weight: bold;">function</span> monConstructeur<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
  <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #006600;">monAttribut</span> = <span style="color: #CC0000;">0</span>;
<span style="color: #66cc66;">&#125;</span>
&nbsp;
<span style="color: #003366; font-weight: bold;">var</span> monInstance = <span style="color: #003366; font-weight: bold;">new</span> monConstructeur<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;</code></pre>
<p>Lors de l&#8217;appel d&#8217;une fonction construteur préfixé par <i>new</i>, un nouvel objet est créé, avec un lien masqué vers le prototype de la fonction, et this est automatiquement lié à ce nouvel objet.</p>
<p><strong>4. Le pattern d&#8217;invocation avec apply</strong></p>
<p>La valeur de this lors de l&#8217;appel d&#8217;une fonction étant quelque peu aléatoire, il est possible de forcer la valeur de this à l&#8217;aide de apply.</p>
<pre><code><span style="color: #003366; font-weight: bold;">Function</span>.<span style="color: #006600;">apply</span><span style="color: #66cc66;">&#40;</span>valeurThis, ArrayArguments<span style="color: #66cc66;">&#41;</span>;</code></pre>
<p>Les frameworks JavaScript fournissent généralement une méthode permettant de facilement modifier la valeur de this pour l&#8217;appel d&#8217;une fonction. Il est donc facile de régler le problème précédent.</p>
<p>Par exemple, avec le framework Prototype (utilisé dans le framework MVC de Palm: Mojo), on pourrait utiliser bind:</p>
<pre><code>setTimeout<span style="color: #66cc66;">&#40;</span>monInstance.<span style="color: #006600;">maMethode</span>.<span style="color: #006600;">bind</span><span style="color: #66cc66;">&#40;</span>monInstance<span style="color: #66cc66;">&#41;</span>, <span style="color: #CC0000;">1000</span><span style="color: #66cc66;">&#41;</span>;</code></pre>
<p>Ou, en utilisant jQuery (1.4+):</p>
<pre><code>setTimeout<span style="color: #66cc66;">&#40;</span>jQuery.<span style="color: #006600;">proxy</span><span style="color: #66cc66;">&#40;</span>monInstance.<span style="color: #006600;">maMethode</span>, monInstance<span style="color: #66cc66;">&#41;</span>, <span style="color: #CC0000;">1000</span><span style="color: #66cc66;">&#41;</span>;</code></pre>
<h1>Transitions CSS</h1>
<p>Depuis la sortie de l&#8217;iPhone il y a 3 ans Apple a introduit et ne cesse de pousser les transitions CSS, beaucoup plus adaptées à la puissance limitée (tout est relatif <img src='http://www.warpdesign.fr/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> ) des smartphones. Avant l&#8217;arrivée des transitions, pour animer des objets HTML, on utilisait les frameworks tels jQuery. Par exemple, pour déplacer un objet de 100px vers la droite, on peut faire avec jQuery:</p>
<pre><code>$<span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">'#foo'</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">animate</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#123;</span>left: <span style="color: #3366CC;">'100px'</span><span style="color: #66cc66;">&#125;</span>, <span style="color: #CC0000;">1000</span><span style="color: #66cc66;">&#41;</span>;</code></pre>
<p>Le problème, lorsque l&#8217;on se place dans le contexte des smartphones est que tout est effectué par le processeur. La puissance de ces machines étant relativement limitée, et la batterie de courte durée, cette méthode n&#8217;est pas utilisable. Les transitions CSS (disponibles sur <strong>tous</strong> les navigateurs modernes, ce n&#8217;est pas (plus) une exclusivité webKit: Firefox, Opera, webKit) permettent de définir des animations à l&#8217;aide des CSS. Quelle est la différence me direz-vous ? La principale différence est que les animations effectuées via des transitions CSS sont accélérées graphiquement et permettent donc de libérer le processeur et, théoriquement, d&#8217;utiliser moins de batterie.</p>
<p>Les transitions étant encore en plein développement, les spécifications ne sont pas finales et chaque navigateur les implémente donc à l&#8217;aide d&#8217;un préfixe: -o- pour Opera, -moz- pour Firefox et -webkit- pour les navigateurs utilisant webkit (Safari, Chrome, OWB,&#8230;). Plusieurs manières permettent d&#8217;animer un objet à l&#8217;aide des transitions.</p>
<p><strong>1. Animation des propriétés</strong><br />
Pour un sélecteur (CSS) donné, il est possible de choisir quelle(s) propriété(s) sera/seront animée(s). Par exemple, pour animer notre bloc #foo, on utiliserait les CSS suivants:</p>
<pre><code>#foo<span style="color: #66cc66;">&#123;</span>
   -webkit-transition-property:left;
   -webkit-transition-duration:1000ms;
&nbsp;
   -o-transition-property:left;
   -o-transition-duration:1000ms;
&nbsp;
   -moz-transition-property:left;
   -moz-transition-duration:1000ms;
<span style="color: #66cc66;">&#125;</span></code></pre>
<p>La modification de la propriété left de l&#8217;objet #foo sera alors automatiquement animée, et de durée 1000ms.</p>
<p><strong>2. Animation</strong><br />
Il est aussi possible de créer des animations relativement complexes, à l&#8217;aide de keyframes, par exemple (ici pour webkit):</p>
<pre><code>@-webkit-keyframes <span style="color: #3366CC;">'zoomIn'</span> 
	<span style="color: #66cc66;">&#123;</span>
		<span style="color: #CC0000;">0</span>%<span style="color: #66cc66;">&#123;</span>
			opacity:<span style="color: #CC0000;">0</span>;
			-webkit-transform: scale<span style="color: #66cc66;">&#40;</span><span style="color: #CC0000;">1.0</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
		<span style="color: #CC0000;">25</span>%<span style="color: #66cc66;">&#123;</span>
			opacity:<span style="color: #CC0000;">1</span>;
		<span style="color: #66cc66;">&#125;</span>
		<span style="color: #CC0000;">100</span>%<span style="color: #66cc66;">&#123;</span>
			opacity:<span style="color: #CC0000;">0</span>;
			bottom:20px;
			-webkit-transform: scale<span style="color: #66cc66;">&#40;</span><span style="color: #CC0000;">3.0</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
	<span style="color: #66cc66;">&#125;</span></code></pre>
<p>Ici nous définissons une animation nommée &laquo;&nbsp;zoomIn&nbsp;&raquo;, et 3 &laquo;&nbsp;étapes&nbsp;&raquo;. Le passage à ces 3 étapes sera automatiquement animé.</p>
<p>Pour utiliser cette animation, il suffit ensuite de faire:</p>
<pre><code>#foo.<span style="color: #006600;">animate</span><span style="color: #66cc66;">&#123;</span>
   -webkit-animation: zoomIn .4s ease-<span style="color: #000066; font-weight: bold;">in</span>;
<span style="color: #66cc66;">&#125;</span></code></pre>
<p>Lorsque l&#8217;objet #foo aura la classe &#8216;animate&#8217;, il jouera automatiquement l&#8217;animation zoomIn, pendant 0.4sec, en utilisant la fonction ease-in. Cette fonction définit la vitesse de l&#8217;animation au cours du temps: ease-in étant la valeur par défaut.</p>
<p><strong>3. aller plus loin</strong><br />
Il est possible d&#8217;utiliser le JavaScript pour spécifier des fonctions callback à exécuter à la fin d&#8217;une transition. On peut ainsi définir des animations assez complexes, complexes dans tous les sens du terme: le code définir devient vraiment très complexe, et surtout on mélange maintenant simples propriétés d&#8217;affichage avec l&#8217;animation. Je conseille d&#8217;ailleurs, dès le début, de séparer les transitions CSS, des propriétés CSS classiques.</p>
<p>Et j&#8217;attends avec impatience le premier SDK permettant de développer ces animations CSS, parce que actuellement, ces transitions, aussi puissantes soient-elles sont très très difficilement accessibles, et totalement impossibles à débugger&#8230;</p>
<p>Alors: qui sera le 1er ? Adobe ? Apple ? Google ?</p>
<h1>Un WebKit, des WebKit</h1>
<p>WebKit, le moteur utilisé actuellement dans Safari (y-compris la version iPhone), Chrome, le navigateur d&#8217;Android, le futur navigateur de BlackBerry, etc&#8230; n&#8217;a pas (scoop ! <img src='http://www.warpdesign.fr/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ) été créé par Apple mais est basé sur le projet KHTML, du groupe KDE. Ce moteur très performant a été adapté sur de nombreuses plateformes et chaque plateforme apporte ses modifications et restrictions. Ainsi, WebKit utilisé dans Safari 5 supporte des fonctionnalités non présentes dans Chrome (exemple:  <i>-webkit-backface-visibility</i>), le navigateur de Palm/webOS ne supporte pas les box-shadow ni les gradients, etc&#8230;</p>
<p>Contrairement à ce que l&#8217;on pourrait donc croire, l&#8217;utilisation de WebKit simplifie sans aucun doute le travail des développeurs des systèmes, mais en aucun cas celui des développeurs Web, puisque toutes ces différences doivent être prises en compte pour obtenir un site/une application multi-plateformes.</p>
<p>Attention donc: il existe des WebKit, pas un seul <img src='http://www.warpdesign.fr/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  Même si la base est évidemment la même, le résultat final sera probablement différent selon les plateformes.</p>
<p>- Tester et télécharger <a href="http://www.warpdesign.fr/warpklondike">WarpKlondike</a><br />
- Télécharger la version webOS pour votre <a href="http://developer.palm.com/appredirect/?packageid=com.warpdesign.warpklondike.web">Palm Pré ou Pixi</a><br />
- Plus d&#8217;informations sur les transitions: <a href="http://developer.apple.com/safari/library/documentation/internetweb/conceptual/safarivisualeffectsprogguide/Transitions/Transitions.html">Apple Developer Site</a></p>
<p><img src="http://www.warpdesign.fr/blog/images/jaquettes/leaveit.jpg" style="float:left;margin-right:14px;" alt="leave it!" /><a href="http://www.myspace.com/waxtailor" target="_blank">Wax Tailor</a> &nbsp;[ Trip-Hop ]<br />
<b>Ambiance:</b> Zen<br />
<b>Albums:</b> The train, leave it, In the mood for life<br />
<b>A écouter:</b> This Train<br />
</p>
]]></content:encoded>
			<wfw:commentRss>http://www.warpdesign.fr/blog/2010/07/10/un-jeu-en-html-5-javascript-css/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CSS: vertical-align</title>
		<link>http://www.warpdesign.fr/blog/2009/07/22/css-vertical-align/</link>
		<comments>http://www.warpdesign.fr/blog/2009/07/22/css-vertical-align/#comments</comments>
		<pubDate>Wed, 22 Jul 2009 21:11:19 +0000</pubDate>
		<dc:creator>leo</dc:creator>
				<category><![CDATA[Techno]]></category>
		<category><![CDATA[ancient astronauts]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[safari]]></category>
		<category><![CDATA[vertical-align]]></category>
		<category><![CDATA[w3c]]></category>
		<category><![CDATA[we are to answer]]></category>
		<category><![CDATA[web standards]]></category>

		<guid isPermaLink="false">http://www.warpdesign.fr/blog/?p=308</guid>
		<description><![CDATA[M&#8217;étant assez souvent arraché les cheveux pour aligner correctement une simple image contenue dans du texte, je suis récemment tombé sur un article très clair détaillant l&#8217;utilisation de la propriété CSS vertical-align. Voici la traduction française de cet article.

&#160;
Intro
Commencons par un exemple &#8211; un paragraphe contenant une simple ligne de texte et une petite image [...]]]></description>
			<content:encoded><![CDATA[<p><img style="float: left; margin-right: 10px;" src="http://www.warpdesign.fr/blog/images/css2.gif" alt="css2" />M&#8217;étant assez souvent arraché les cheveux pour aligner correctement une simple image contenue dans du texte, je suis récemment tombé sur un article très clair détaillant l&#8217;utilisation de la propriété CSS <em>vertical-align</em>. Voici la traduction française de cet article.</p>
<p><span id="more-308"></span></p>
<div style="clear:both">&nbsp;</div>
<p><strong>Intro</strong><br />
Commencons par un exemple &#8211; un paragraphe contenant une simple ligne de texte et une petite image (le carré bleu ci-dessus).<br />
<img style="margin:0;border:0;padding:0;" src="http://www.warpdesign.fr/blog/images/css/align-image01.gif" alt="" /></p>
<p><strong>Lignes de positionnement</strong><br />
Voyons sans attendre les 6 lignes primaires utilisées lors de l&#8217;alignement vertical.</p>
<p>1. top line &#8211; cette ligne se situe au dessus de tout le contenu</p>
<p><img style="margin:0;border:0;padding:0;" src="http://www.warpdesign.fr/blog/images/css/align-image02.gif" alt="" /></p>
<p>2. ligne text-top &#8211; cette ligne délimite le sommet du texte (en incluant les accents)</p>
<p><img style="margin:0;border:0;padding:0;" src="http://www.warpdesign.fr/blog/images/css/align-image03.gif" alt="" /></p>
<p><strong>NB:</strong> Les lignes “top line” and “text-top” peuvent paraître identiques. Mais ce n&#8217;est pas le cas, dans certains cas la top line (marquée en rouge ci-dessous), est plus haute que le contenu texte &#8211; et par conséquent, plus haute que la ligne text-top (marquée en vert ci-dessous). L&#8217;image suivante, très grande (plus haute que le texte) illustre ce cas particulier:</p>
<p><img style="margin:0;border:0;padding:0;" src="http://www.warpdesign.fr/blog/images/css/align-image04.gif" alt="" /></p>
<p>3. middle line &#8211; cette ligne se situe au milieu de la hauteur de la lettre x</p>
<p><img style="margin:0;border:0;padding:0;" src="http://www.warpdesign.fr/blog/images/css/align-image05.gif" alt="" /></p>
<p>4. baseline &#8211; c&#8217;est la ligne imaginaire sur laquelle reposent toutes les lettres</p>
<p><img style="margin:0;border:0;padding:0;" src="http://www.warpdesign.fr/blog/images/css/align-image06.gif" alt="" /></p>
<p>5. text-bottom line &#8211; cette ligne se situe en dessous de tout caractère (en incluant des lettres comme “j”, “y”, “g” etc&#8230;)</p>
<p><img style="margin:0;border:0;padding:0;" src="http://www.warpdesign.fr/blog/images/css/align-image07.gif" alt="" /></p>
<p>6. bottom line &#8211; cette ligne se situe en dessous de tout le contenu</p>
<p><img style="margin:0;border:0;padding:0;" src="http://www.warpdesign.fr/blog/images/css/align-image08.gif" alt="" /></p>
<p></p>
<p><strong>Alignement vertical par défaut</strong></p>
<p>Par défaut, le bas de l&#8217;image s&#8217;alignera sur la <em>baseline</em> du paragraphe &#8211; à moins que l&#8217;image ait une <em>margin-bottom</em> d&#8217;appliquée. Dans ce cas, le bas de la marge de l&#8217;image s&#8217;alignera sur la <em>baseline</em> du paragraphe. Dans l&#8217;exemple ci-dessous, l&#8217;image a la marge suivante: “margin-bottom: 5px” ce qui fait que le bas de l&#8217;image se placera 5 pixels au dessus de la <em>baseline</em>.</p>
<p><img style="margin:0;border:0;padding:0;" src="http://www.warpdesign.fr/blog/images/css/align-image09.gif" alt="" /></p>
<p><strong>Utilisation des CSS pour modifier l&#8217;alignement vertical</strong></p>
<p>Il est possible de modifier la position verticale des images par rapport au texte l&#8217;entourant en utilisant la propriété CSS <a title="voir la définition officielle de vertical-align" href="http://www.w3.org/tr/css2/visudet.html#propdef-vertical-align">vertical-align</a>.</p>
<p>Cette propriété peut prendre les valeurs suivantes: top, text-top, middle, baseline, text-bottom, bottom, sub, super, percentage et length.</p>
<p><strong>Top</strong></p>
<p>Le haut de l&#8217;image sera aligné avec la <em>top line</em>.</p>
<pre><code>img.class-name { vertical-align: top; }</code></pre>
<p><img style="margin:0;border:0;padding:0;" src="http://www.warpdesign.fr/blog/images/css/align-image11.gif" alt="" /></p>
<p><strong>Text-top</strong></p>
<p>Cela aura pour effet d&#8217;aligner le haut de l&#8217;image avec la <em>top line</em>.</p>
<pre><code>img.class-name { vertical-align: text-top; }</code></pre>
<p><img style="margin:0;border:0;padding:0;" src="http://www.warpdesign.fr/blog/images/css/align-image11.gif" alt="" /></p>
<p><strong>Middle</strong></p>
<p>Ceci alignera le milieu vertical de l&#8217;image avec la <em>baseline</em> plus la moitié de la hauteur de la lettre x du paragraphe.</p>
<pre><code>img.class-name { vertical-align: middle; }</code></pre>
<p><img style="margin:0;border:0;padding:0;" src="http://www.warpdesign.fr/blog/images/css/align-image13.gif" alt="" /></p>
<p><strong>Baseline</strong></p>
<p>Bien que les images soient par défaut alignées par rapport à la <em>baseline</em>, il est possible de spécifier cette option en utilisant les CSS.</p>
<pre><code>img.class-name { vertical-align: baseline; }</code></pre>
<p><img style="margin:0;border:0;padding:0;" src="http://www.warpdesign.fr/blog/images/css/align-image10.gif" alt="" /></p>
<p><strong>Text-bottom</strong></p>
<p>Le bas de l&#8217;image sera aligné par rapport à la <em>bottom line</em>.</p>
<pre><code>img.class-name { vertical-align: text-bottom; }</code></pre>
<p><img style="margin:0;border:0;padding:0;" src="http://www.warpdesign.fr/blog/images/css/align-image12.gif" alt="" /></p>
<p><strong>Sub</strong></p>
<p>Ceci alignera le bas de l&#8217;image avec la <em>baseline</em> du contenu indicé (qu&#8217;il y ait ou non du contenu indicé présent dans le texte).</p>
<pre><code>img.class-name { vertical-align: sub; }</code></pre>
<p><img style="margin:0;border:0;padding:0;" src="http://www.warpdesign.fr/blog/images/css/align-image14.gif" alt="" /></p>
<p><strong>Super</strong></p>
<p>Ceci alignera le bas de l&#8217;image avec la basline du contenu exposant (qu&#8217;il y ait ou non du contenu exposant présent dans le texte).</p>
<pre><code>img.class-name { vertical-align: super; }</code></pre>
<p><img style="margin:0;border:0;padding:0;" src="http://www.warpdesign.fr/blog/images/css/align-image15.gif" alt="" /></p>
<p><strong>Percentage</strong></p>
<p>Ceci décalera vers le haut (valeur positive) ou vers le bas (valeur négative) l&#8217;image par rapport à la <em>baseline</em> de la valeur spécifiée. La valeur ‘0%’ correspond à la <em>baseline</em> inchangée. A noter que le positionnement vertical en pourcentage pourra, une fois n&#8217;est pas coutume, varier légèrement selon le navigateur utilisé.</p>
<pre><code>img.class-name { vertical-align: 30%; }</code></pre>
<p><img style="margin:0;border:0;padding:0;" src="http://www.warpdesign.fr/blog/images/css/align-image16.gif" alt="" /></p>
<pre><code>img.class-name { vertical-align: -30%; }</code></pre>
<p><img style="margin:0;border:0;padding:0;" src="http://www.warpdesign.fr/blog/images/css/align-image17.gif" alt="" /></p>
<p><strong>Taille</strong></p>
<p>Ceci décalera vers le haut (valeur positive) ou vers le bas (valeur négative) l&#8217;image par rapport à la <em>baseline</em> de la valeur spécifiée. La valeur ‘0px’ correspond à la <em>baseline</em> inchangée.</p>
<pre><code>img.class-name { vertical-align: 2px; }</code></pre>
<p><img style="margin:0;border:0;padding:0;" src="http://www.warpdesign.fr/blog/images/css/align-image16.gif" alt="" /></p>
<pre><code>img.class-name { vertical-align: -2px; }</code></pre>
<p><img style="margin:0;border:0;padding:0;" src="http://www.warpdesign.fr/blog/images/css/align-image17.gif" alt="" /></p>
<p>Voila, j&#8217;espère avoir écrit l&#8217;article avant que vous n&#8217;ayez plus de cheveux <img src='http://www.warpdesign.fr/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Vous pouvez retrouver l&#8217;article original, en Anglais, ici: <a title="lire l'article original" href="http://www.maxdesign.com.au/2008/10/05/vertical-align/">http://www.maxdesign.com.au/2008/10/05/vertical-align/</a></p>
<p>Le petit coup de coeur du moment nous vient d&#8217;Allemagne et s&#8217;appelle Ancient Astronauts, extrait:</p>
<p><img style="float:left;margin-right:14px;" src="http://www.warpdesign.fr/blog/images/jaquettes/aa_sample.jpg" alt="" /><a href="http://www.myspace.com/ancientastronautsswitch" target="_blank">Ancient Astronauts</a> [ Funk, Hip-Hop ]<br />
<strong>Ambiance:</strong> Funk<br />
<strong>Albums:</strong> We Are To Answer<br />
<strong>A écouter:</strong> Tout <img src='http://www.warpdesign.fr/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<div style="clear:both;">&nbsp;</div>
<p></p>
]]></content:encoded>
			<wfw:commentRss>http://www.warpdesign.fr/blog/2009/07/22/css-vertical-align/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

