<?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>slDesign &#187; SpeedTuts</title>
	<atom:link href="http://sldesign.openwab.com/tag/speedtuts/feed/" rel="self" type="application/rss+xml" />
	<link>http://sldesign.openwab.com</link>
	<description>Web, Dév &#38; More...</description>
	<lastBuildDate>Wed, 13 Oct 2010 10:09:06 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.4</generator>
		<item>
		<title>Speed tuts : local storage ou la sauvegarde locale</title>
		<link>http://sldesign.openwab.com/2010/08/06/speed-tuts-local-storage-ou-la-sauvegarde-locale/</link>
		<comments>http://sldesign.openwab.com/2010/08/06/speed-tuts-local-storage-ou-la-sauvegarde-locale/#comments</comments>
		<pubDate>Fri, 06 Aug 2010 07:42:35 +0000</pubDate>
		<dc:creator>Steve Leherpeux</dc:creator>
				<category><![CDATA[HTML / CSS]]></category>
		<category><![CDATA[Tutoriels]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[HTML 5]]></category>
		<category><![CDATA[localStorage]]></category>
		<category><![CDATA[SpeedTuts]]></category>
		<category><![CDATA[Tutoriel]]></category>

		<guid isPermaLink="false">http://sldesign.openwab.com/?p=780</guid>
		<description><![CDATA[HTML 5 nous apporte de nombreuses et belles surprises dont un fait l&#8217;objet de ce tutoriel : &#171;&#160;localStorage&#160;&#187;. A vrai dire, cette fonctionnalité ne fait pas parti officiellement de HTML 5 mais y est lié indirectement. Le principe est simple, cette fonctionnalité vous permet de sauvegarder l&#8217;ensemble de vos données saisies en locale ; que [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fsldesign.openwab.com%2F2010%2F08%2F06%2Fspeed-tuts-local-storage-ou-la-sauvegarde-locale%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fsldesign.openwab.com%2F2010%2F08%2F06%2Fspeed-tuts-local-storage-ou-la-sauvegarde-locale%2F&amp;style=normal&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>HTML 5 nous apporte de nombreuses et belles surprises dont un fait l&#8217;objet de ce tutoriel : &laquo;&nbsp;localStorage&nbsp;&raquo;. A vrai dire, cette fonctionnalité ne fait pas parti officiellement de HTML 5 mais y est lié indirectement.</p>
<p>Le principe est simple, cette fonctionnalité vous permet de sauvegarder l&#8217;ensemble de vos données saisies en locale ; que vous rafraichissiez la page ou que vous quittiez votre navigateur et le relancez sur la même page, vos données seront sauvegardées.</p>
<p>Nous allons voir dans ce tutoriel la façon d&#8217;implémenter &laquo;&nbsp;localStorage&nbsp;&raquo;.</p>
<p><span id="more-780"></span></p>
<hr class="clear_all" />
<h2>I &#8211; Introduction &amp; prérequis</h2>
<p>Avant de commencer, vous devez connaître le HTML 5 ainsi que l&#8217;utilisation du framework javascript jQuery.</p>
<p>Page de base :</p>
<pre class="brush:html">&lt;!DOCTYPE html&gt;
&lt;html&gt;
 &lt;head&gt;
 &lt;meta name="generator" content="HTML Tidy, see www.w3.org"&gt;
 &lt;meta http-equiv="Content-Type" content= "text/html; charset=UTF-8"&gt;
 &lt;title&gt;Tutoriel local storage&lt;/title&gt;
 &lt;script type="text/javascript" src= "http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"&gt;
 &lt;/script&gt;

 &lt;/head&gt;
 &lt;body&gt;

 &lt;/body&gt;
&lt;/html&gt;</pre>
<p>Vous trouverez ci-dessous la page qui nous servira de base pour ce tutoriel et qui intègre la bibliothèque jQuery</p>
<h2>II &#8211; Création d&#8217;un contenu éditable</h2>
<p>Un des nouveaux attributs de HTML 5 est &laquo;&nbsp;contenteditable&nbsp;&raquo;. Cet attribut vous permet de réaliser des éléments éditables par les utilisateurs. Pour mettre en place cet attribut</p>
<h4>Code HTML &#8211; zone de saisie :</h4>
<pre class="brush:html">	&lt;h5&gt;Todo Liste&lt;/h5&gt;
	&lt;ul class="editable" id="todoListe" contenteditable="true"&gt;
	    &lt;li&gt;
	    &lt;/li&gt;
	&lt;/ul&gt;
	&lt;p&gt;
	    &lt;button id="clearStorage"&gt;
	        Effacer mon localStorage
	    &lt;/button&gt;
	&lt;/p&gt;
</pre>
<div id="attachment_786" class="wp-caption alignnone" style="width: 246px"><img class="size-full wp-image-786" title="Liste éditable" src="http://sldesign.openwab.com/wp-content/uploads/2010/08/2.1-localstorage-content-editable.jpg" alt="Liste éditable" width="236" height="130" /><p class="wp-caption-text">Liste éditable</p></div>
<p>Jusque là, c&#8217;est bien mais lorsque vous quittez votre navigateur ou si vous rafraichissez votre page, le contenu ne sera pas sauvegardé&#8230; Comment faire sans pour autant poster nos données ?</p>
<h2>Utilisation de javascript</h2>
<p>Pour sauvegarder nos données, nous allons utiliser la propriété &laquo;&nbsp;localStorage&nbsp;&raquo; qui nous permettra de sauvegarder nos données en locale sans l&#8217;utilisation de cookies. Vous trouverez ci dessous le code javascript commenté qui nous permettra de réaliser cette opération.</p>
<h4>Code javascript :</h4>
<pre class="brush:js;first-line=14;">&lt;script type="text/javascript"&gt;
$(function(){
	var editable = document.getElementById('todoListe');

	//Action réalisée au focus
	$(editable).blur(function(){
		//Sauvegarde des données saisies dans un variable 'myStorage'
		localStorage.setItem('myStorage', this.innerHTML);
	});

	//Récupération de nos données en cas de chargement...
	if (localStorage.getItem('myStorage')) {
		editable.innerHTML = localStorage.getItem('myStorage');
	};

	//Fonction pour affacer le localStorage
	$('#clearStorage').click(function(){
		localStorage.clear();
		location.reload() ;
	});
});
&lt;/script&gt;
</pre>
<p>Une fois cette opération réalisée, sauvegardez votre fichier puis saisissez plusieurs lignes dans votre liste et sortez du focus. Vous pouvez maintenant fermer votre navigateur et le relancer ou encore rafraichir votre page, les données saisies seront sauvegardées.</p>
<h2>Code complet et ressources :</h2>
<h4>Code complet du tutoriel :</h4>
<pre class="brush:html">&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"&gt;
&lt;html&gt;
    &lt;head&gt;
        &lt;meta name="generator" content="HTML Tidy, see www.w3.org"&gt;
        &lt;meta http-equiv="Content-Type" content= "text/html; charset=UTF-8"&gt;
        &lt;title&gt;Tutoriel local storage&lt;/title&gt;
        &lt;script type="text/javascript" src= "http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"&gt;
        &lt;/script&gt;
        &lt;style type="text/css"&gt;
            .editable {
                background: #f5f5f5;
                border: 1px solid #000;
            }
        &lt;/style&gt;
        &lt;script type="text/javascript"&gt;
            $(function(){
                var editable = document.getElementById('todoListe');
                //Action réalisée au focus
                $(editable).blur(function(){
                    //Sauvegarde des données saisies dans un variable 'myStorage'
                    localStorage.setItem('myStorage', this.innerHTML);
                });

                //Récupération de nos données en cas de chargement...
                if (localStorage.getItem('myStorage')) {
                    editable.innerHTML = localStorage.getItem('myStorage');
                };

                //Fonction pour affacer le localStorage
                $('#clearStorage').click(function(){
                    localStorage.clear();
                    location.reload();
                });
            });
        &lt;/script&gt;
    &lt;/head&gt;
    &lt;body&gt;
    	&lt;h5&gt;Todo Liste&lt;/h5&gt;
            &lt;ul class="editable" id="todoListe" contenteditable="true"&gt;
                &lt;li&gt;
                &lt;/li&gt;
            &lt;/ul&gt;
            &lt;p&gt;
                &lt;button id="clearStorage"&gt;
                    Effacer mon localStorage
                &lt;/button&gt;
            &lt;/p&gt;
    &lt;/body&gt;
&lt;/html&gt;
</pre>
<h3>Compatibilité</h3>
<p>Au moment ou je vous parle, cette implémentation est compatible avec les navigateurs et versions suivantes (windows):</p>
<ul>
<li>Chrome 4 +</li>
<li>Firefox 3.6 +</li>
<li>IE 8 +</li>
<li>Opéra 10 +</li>
<li>Safari 4 +</li>
</ul>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://sldesign.openwab.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://sldesign.openwab.com/2010/08/06/speed-tuts-local-storage-ou-la-sauvegarde-locale/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>SpeedTuts : CSS Image Switcher</title>
		<link>http://sldesign.openwab.com/2010/07/16/speedtuts-css-image-switcher/</link>
		<comments>http://sldesign.openwab.com/2010/07/16/speedtuts-css-image-switcher/#comments</comments>
		<pubDate>Fri, 16 Jul 2010 08:28:36 +0000</pubDate>
		<dc:creator>Steve Leherpeux</dc:creator>
				<category><![CDATA[HTML / CSS]]></category>
		<category><![CDATA[Tutoriels]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[images]]></category>
		<category><![CDATA[SpeedTuts]]></category>

		<guid isPermaLink="false">http://sldesign.openwab.com/?p=595</guid>
		<description><![CDATA[Dans le cadre de ce tutoriel, nous allons voir comment créer un Switcher d&#8217;images uniquement en CSS et sans aucune utilisation de Javascript. Pour cela, nous utiliserons simplement CSS et déclencherons les permutation au survol de lien. Démo 1°) Ce dont nous avons besoin 4 images 1 éditeur de Code HTML  / CSS(j&#8217;utilise Aptana IDE) [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fsldesign.openwab.com%2F2010%2F07%2F16%2Fspeedtuts-css-image-switcher%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fsldesign.openwab.com%2F2010%2F07%2F16%2Fspeedtuts-css-image-switcher%2F&amp;style=normal&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>Dans le cadre de ce tutoriel, nous allons voir comment créer un Switcher d&#8217;images uniquement en CSS et sans aucune utilisation de Javascript. Pour cela, nous utiliserons simplement CSS et déclencherons les permutation au survol de lien.</p>
<p><a title="Démonstration CSS Images Switcher" href="http://samples.openwab.com/css-images-switcher/" target="_blank">Démo</a></p>
<p><span id="more-595"></span></p>
<h2>1°) Ce dont nous avons besoin</h2>
<ul>
<li>4 images</li>
<li>1 éditeur de Code HTML  / CSS(j&#8217;utilise Aptana IDE)</li>
<li>1 fichier HTML</li>
<li>1 fichier CSS</li>
<li>Connaissances de base HTML/CSS</li>
</ul>
<p>2°) Trame html &#8211; création du layout</p>
<p>La première étape consiste à créer un fichier HTML dans lequel nous allons placer nos images et nos liens.J&#8217;ai également lié un fichier CSS à mon document HTML</p>
<p>Code HTML &#8211; Fichier de base HTML</p>
<pre class="brush:html">&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;
&lt;html xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /&gt;
&lt;title&gt;CSS Image Switcher&lt;/title&gt;
&lt;link href="style.css" rel="stylesheet" type="text/css"/&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;h1&gt;CSS Image Switcher&lt;/h1&gt;

&lt;/body&gt;
&lt;/html&gt;</pre>
<p>Il ne reste plus qu&#8217;à insérer mon contenu, c&#8217;est à dire mes images et mes liens ; J&#8217;utilise des blocs &#8216;&lt;div&gt;&#8217; comme conteneur principal. J&#8217;ai ensuite inséré mes liens pour mes 4 images en veillant à les identifier avec des attributs &laquo;&nbsp;ID&nbsp;&raquo;.</p>
<p>Code HTML &#8211; Création des liens dans le conteneur principal</p>
<pre class="brush:html;first-line:10;">&lt;div id="wrapper"&gt;
 &lt;a id="img1" href="#" title="Image 1"&gt;Image 1&lt;/a&gt;
 &lt;a id="img2" href="#" title="Image 2"&gt;Image 2&lt;/a&gt;
 &lt;a id="img3" href="#" title="Image 3"&gt;Image 3&lt;/a&gt;
 &lt;a id="img4" href="#" title="Image 4"&gt;Image 4&lt;/a&gt;
&lt;/div&gt;</pre>
<h2>3°)Edition du CSS</h2>
<p>Nous allons éditer notre code CSS. Je dispose de 4 images qui ont les mêmes dimensions (256&#215;192). L&#8217;idée est de faire en sorte que les liens se chevauches, il faut donc appliquer une position &laquo;&nbsp;absolute&nbsp;&raquo; à nos liens et lier nos images à nos liens et plus particulièrement les attributs &laquo;&nbsp;ID&nbsp;&raquo; de nos liens.</p>
<p>Voici le code CSS de notre CSS Switcher :</p>
<p>Code CSS :</p>
<pre class="brush:css">/** Conteneur principal */
#wrapper{
 width:256px;
 margin:10px auto;
 position:relative;
}

/** Liens **/
#wrapper a{
 display:block;
 width:256px;
 height:192px;
 position:absolute;
}

/** Liaison des liens et des images */
#img1{background-image:url(img/img1.jpg);}
#img2{background-image:url(img/img2.jpg);}
#img3{background-image:url(img/img3.jpg);}
#img4{background-image:url(img/img4.jpg);}</pre>
<p>Vous pouvez voir le résultat obtenu en figure 3.1.1 :</p>
<div id="attachment_600" class="wp-caption alignnone" style="width: 603px"><img class="size-full wp-image-600" title="3.1.1-css-switcher-resultat" src="http://sldesign.openwab.com/wp-content/uploads/2010/07/3.1.1-css-switcher-resultat.jpg" alt="Résultat après édition des liens" width="593" height="277" /><p class="wp-caption-text">Figure 3.1.1 - Résultat après édition des liens</p></div>
<p>Reste à savoir comment nous allons pouvoir donner un effet de switch au survol de nos liens et comment séparer ces différents liens&#8230;</p>
<p>La première étape va consister à modifier nos liens en englobant nos libellés de lien dans des balises &#8216;&lt;span&gt;&#8217; qui vont nous permettre de réaliser des décalages entre nos liens car, comme vous avez pu le remarquer, nos liens se chevauchent et apparaissent au dessus des images.</p>
<p>Code HTML des liens :</p>
<pre class="brush:html;first-line:10;">&lt;div id="wrapper"&gt;
 &lt;a id="img1" href="#" title="Image 1"&gt;&lt;span&gt;Image 1&lt;/span&gt;&lt;/a&gt;
 &lt;a id="img2" href="#" title="Image 2"&gt;&lt;span&gt;Image 2&lt;/span&gt;&lt;/a&gt;
 &lt;a id="img3" href="#" title="Image 3"&gt;&lt;span&gt;Image 3&lt;/span&gt;&lt;/a&gt;
 &lt;a id="img4" href="#" title="Image 4"&gt;&lt;span&gt;Image 4&lt;/span&gt;&lt;/a&gt;
&lt;/div&gt;</pre>
<p>Nous pouvons maintenant décaler nos liens avec notre feuille de style :</p>
<p>Code CSS des élément &#8216;&lt;span&gt;&#8217; :</p>
<pre class="brush:css;first-line:22;">/** Mise en forme des libellés de liens */
#wrapper a span{
 position:absolute;
 text-align:center;
}

/** Positionnement des libellés de liens */
#img1 span{left:0;top:200px;}
#img2 span{left:128px;top:200px;} /** Décalage 'left' à la moitié du div Wrapper */
#img3 span{left:0;top:225px;}
#img4 span{left:128px;top:225px;} /** Décalage 'left' à la moitié du div Wrapper */</pre>
<p>Notre Switcher prend forme comme vous pouvez le voir en figure 3.1.2 :</p>
<div id="attachment_599" class="wp-caption alignnone" style="width: 566px"><img class="size-full wp-image-599" title="3.1.2-css-switcher-resultat-2" src="http://sldesign.openwab.com/wp-content/uploads/2010/07/3.1.2-css-switcher-resultat-2.jpg" alt="Résultat après édition CSS des libellés de liens" width="556" height="324" /><p class="wp-caption-text">Figure 3.1.2 - Résultat après édition CSS des libellés de liens</p></div>
<p>Reste la dernière étape&#8230; celle qui va déclencher l&#8217;effet de switch  au survol des liens ; pour cela, il existe une propriété CSS très pratique, la propriété &laquo;&nbsp;z-index&nbsp;&raquo;.</p>
<blockquote><p>La propriété de feuille de style css <strong>z-index</strong> permet de spécifier la  position d&#8217;empilement d&#8217;un bloc par rapport aux autres (notion de  profondeur).<br />
La propriété de feuille de style css<strong>z-index</strong> est généralement utilisée pour  la création de calques (Layer).<br />
Le bloc ayant la plus grande valeur est au dessus.</p></blockquote>
<p>Nous avons juste à appliquer cette propriété à l&#8217;attribut CSS :hover de nos liens</p>
<pre class="brush:css;first-line:34;">/** Appliquer le z-index pour l'affichage des images */
a:hover{z-index:1;}</pre>
<p>Le résultat final vous permettra de permuter vos images au survol du lien (figure 3.1.3). Vous pouvez encore améliorer la présentation si vous le souhaitez <img src='http://sldesign.openwab.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<div id="attachment_603" class="wp-caption alignnone" style="width: 503px"><img class="size-full wp-image-603" title="3.1.3-css-switcher-resultat-final" src="http://sldesign.openwab.com/wp-content/uploads/2010/07/3.1.3-css-switcher-resultat-final.jpg" alt="Résultat final" width="493" height="320" /><p class="wp-caption-text">Figure 3.1.3 - Résultat Final</p></div>
<h2>4°) Conclusion</h2>
<p>Vous venez de voir comment créer une permutation d&#8217;images en CSS. Il est vrai que JavaScript se démocratise et que de nombreuses bibliothèques permettent de mettre en place facilement ce type d&#8217;effet. Cela dit, cette méthode CSS reste légére et vous permet de voir en pratique l&#8217;utilisation de la propriété z-index.</p>
<h2>5°) Ressources</h2>
<p><a title="Zone CSS - Propriété z-index" href="http://www.zonecss.fr/style_css/feuille_css_z_index.html" target="_blank">Propriété z-index sur zone CSS</a></p>
<p>Ressource du tutoriel (Images + fichiers HTML et CSS) &#8211; <a title="Archive .zip - Ressources tutoriel" href="http://sldesign.openwab.com/wp-content/uploads/2010/07/css-images-switcher.zip">css-images-switcher.zip</a></p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://sldesign.openwab.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://sldesign.openwab.com/2010/07/16/speedtuts-css-image-switcher/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

