<?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>pixenjoy - webdesign &#187; Intégration web</title>
	<atom:link href="http://www.pixenjoy.com/category/integration/feed" rel="self" type="application/rss+xml" />
	<link>http://www.pixenjoy.com</link>
	<description>Blog professionnel de Gilles Vauvarin, webdesigner freelance ...</description>
	<lastBuildDate>Thu, 20 May 2010 14:02:49 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Utiliser les sprites</title>
		<link>http://www.pixenjoy.com/utiliser-les-sprites</link>
		<comments>http://www.pixenjoy.com/utiliser-les-sprites#comments</comments>
		<pubDate>Sat, 14 Feb 2009 14:06:30 +0000</pubDate>
		<dc:creator>pixenjoy</dc:creator>
				<category><![CDATA[Intégration web]]></category>

		<guid isPermaLink="false">http://www.pixenjoy.com/?p=904</guid>
		<description><![CDATA[La performance d&#8217;affichage des pages web dépend de différents facteurs. La technique des sprites peut vous aider, grâce à une astucieuse utilisation des CSS, à améliorer la vitesse de chargement de vos pages.
Les sprites, c&#8217;est quoi ?
L&#8217;utilisation des sprites pour le web est une technique permettant d&#8217;afficher plusieurs vues d&#8217;une seule et même image à [...]]]></description>
			<content:encoded><![CDATA[<p>La performance d&#8217;affichage des pages web dépend de différents facteurs. La technique des sprites peut vous aider, grâce à une astucieuse utilisation des CSS, à améliorer la vitesse de chargement de vos pages.<span id="more-904"></span></p>
<h2>Les sprites, c&#8217;est quoi ?</h2>
<p>L&#8217;utilisation des sprites pour le web est une technique permettant d&#8217;afficher plusieurs vues d&#8217;une seule et même image à l&#8217;aide des feuilles de style CSS.</p>
<p>Cette technique est issue des anciens jeux vidéos qui utilisaient des <a href="http://fr.wikipedia.org/wiki/Sprite_(jeu_vid%C3%A9o)">petits personnages pixelisés</a> appelés &laquo;&nbsp;sprites&nbsp;&raquo; qui étaient tous dessinés sur une seule image pour des raisons de performances.</p>
<p>Il s&#8217;agit donc d&#8217;utiliser une image sur laquelle est réunie soit plusieurs instances de l&#8217;état d&#8217;un objet, par exemple un menu, un bouton soit un ensemble d&#8217;autres images comme des icônes par exemple.</p>
<p><img src="http://farm4.static.flickr.com/3347/3276323975_af790f2782_o.png" width="600" height="396" alt="blog_120209_imgSprite1" /></p>
<p>La technique des sprites permet, grâce aux CSS, de ne montrer qu&#8217;une partie (une vue) de l&#8217;image globale. Selon le cas, en modifiant les paramètres de positionnement dans la feuille de style CSS, il est possible de déplacer la vue sur l&#8217;image globale sans montrer le reste de l&#8217;image. Nous utiliserons donc une seule image pour simuler l&#8217;affichage de plusieurs images (en réalité différentes vues de l&#8217;image globale) sur les pages web d&#8217;un site internet.</p>
<p><img src="http://farm4.static.flickr.com/3481/3277143806_2635f15a45_o.png" width="600" height="396" alt="blog_120209_imgSprite2" /></p>
<h2>Quels intérêts d&#8217;utiliser les sprites ?</h2>
<p>Si vous travaillez dans le secteur internet, vous savez que lors du chargement d&#8217;une page web, il y a autant de requêtes http effectuées sur le serveur qu&#8217;il y a d&#8217;images dans la page. En utilisant qu&#8217;une seule image globale, vous réduisez à une requête http le chargement des images (puisqu&#8217;en réalité on ne charge qu&#8217;une image). </p>
<p>De plus, l&#8217;image globale est bien souvent moins lourde que la somme des poids des images individuelles. Cela permet de gagner en performance sur la vitesse d&#8217;affichage de la page et en consommation de bande passante dans certains cas.</p>
<p>Donc tout l&#8217;intérêt des sprites est de gagner en performance de chargement des pages. Du point de vue du graphiste, il y a un autre avantage : avoir moins de découpes à faire pour l&#8217;étape d&#8217;intégration.</p>
<h2>Comment mettre en place les sprites ?</h2>
<p>Comme un exemple, vaut mieux qu&#8217;un long discours, nous allons réaliser un bouton image avec effet rollover utilisant la technique des sprites. </p>
<p>Notre bouton aura trois états : un état &laquo;&nbsp;initial&nbsp;&raquo; lorsque le bouton n&#8217;est pas activé ou survolé, un état &laquo;&nbsp;survolé&nbsp;&raquo; lorsque l&#8217;utilisateur passe sa souris sur le bouton et un état &laquo;&nbsp;enfoncé&nbsp;&raquo; lorsque l&#8217;utilisateur clique sur le bouton. </p>
<p>La première chose à faire est de dessiner dans un logiciel de traitement d&#8217;images les trois états du bouton puis de les réunir sur une seule image.<br />
<img src="http://farm4.static.flickr.com/3304/3277143486_c538005136_o.png" width="600" height="80" alt="blog_121109_etatsBouton" /></p>
<p>Ensuite, il va falloir implémenter le code XHTML/CSS.</p>
<p>Voici le code XHTML qui affiche le bouton :</p>
<pre class="code"><code >&lt;a id="container" href="#" title="Exemple de bouton sprite"&gt;&lt;/a&gt;</code></pre>
<p><em>Remarque : Le code utilisé dans cet exemple est simple pour vous transmettre la technique mais c&#8217;est un très mauvais exemple à suivre sur le plan sémantique et accessibilité. Voir la conclusion.</em></p>
<p>Il ne nous reste plus qu&#8217;à définir le fichier CSS qui va nous permettre notamment grâce à la propriété &laquo;&nbsp;background&nbsp;&raquo; de positionner notre vue sur l&#8217;état du bouton qui convient en fonction de l&#8217;action de l&#8217;utilisateur. </p>
<p>Le calcul du positionnement de la vue est la partie la plus fastidieuse. Vous pouvez déterminer &laquo;&nbsp;à la main&nbsp;&raquo; les coordonnées du positionnement en mesurant la position des états du bouton sur l&#8217;image globale. Mais si vous ne voulez pas vous embêter à faire ces mesures, vous pouvez utiliser un générateur de sprites pour faire le travail à votre place.</p>
<p>Il y a quelques bogues avec les navigateurs Opéra et Safari à prendre en compte lors de la création de Sprites CSS :</p>
<p>Opéra, pour les versions inférieur ou égale à 9.0, ne reconnait pas une position de fond supérieure à 2042px ou inférieure à -2042px et utilise ces limites à la place en cas de dépassement. Ceci dit 2024px, ça vous laisse pas mal de marge.</p>
<p>Safari a <a href="http://creativebits.org/webdev/safari_background_repeat_bug_fix">un problème</a> avec la répétition des images de fond. Cela peut être résolu en spécifiant une valeur d&#8217;espacement vertical plus large.</p>
<p>Je vous conseille d&#8217;utiliser par exemple <a href="http://spritegen.website-performance.org/">le générateur de sprites en ligne de &laquo;&nbsp;Project Fondue&nbsp;&raquo;</a>. Ce générateur prend en compte les bugs des navigateurs Opéra et Safari. Utilisez le comme suit :</p>
<p>1. Réunissez toutes vos images dans un fichier .zip, le nom donné aux images sera repris dans la feuille CSS générée.</p>
<p>2. Uploadez votre fichier .zip via le formulaire du générateur de sprites.</p>
<p>3. Définissez vos paramètres. Dans mon exemple, j&#8217;ai gardé le paramétrage par défaut proposé sur la page du générateur. Pour plus de détails sur le paramétrage, <a href="http://spritegen.website-performance.org/section/tool-help">lisez l&#8217;aide en ligne</a>.</p>
<p>4. Validez le formulaire.</p>
<p>Le générateur de sprites construit alors une image globale  :<br />
<img src="http://farm4.static.flickr.com/3489/3277143568_de8fe5988e_o.png" width="600" height="280" alt="blog_121109_imgSprites" /></p>
<p>&#8230; et le code CSS correspondant :</p>
<pre class="code"><code >.sprite-enfonce { background-position: 0 -30px; }
.sprite-initial { background-position: 0 -108px; }
.sprite-survole { background-position: 0 -186px; } 

#container li {
   background: url(monImageGlobale.png) no-repeat top left;
}</code></pre>
<p>Le code implémenté pour mon bouton donnera :</p>
<pre class="code"><code >&lt;!-- Code CSS --&gt;
a#container {
   background:url(MonImageSprite.png) no-repeat 0px -108px;  /* initial */
   width: 180px;
   height: 40px;
   display: block;
}
a#container:hover { background-position: 0 -186px; } /* survolé */
a#container:active { background-position: 0 -30px; }  /* enfoncé */

&lt;!-- Code XHTML --&gt;
&lt;a id="container" href="#" title="Exemple de bouton sprite"&gt;&lt;/a&gt;</code></pre>
<p>Résultat :</p>
<style>
a#container {
   background:url(http://farm4.static.flickr.com/3497/3276401027_9db68612bd_o.png) no-repeat 0px -108px;
   width: 180px;
   height: 40px;
   display: block;
}
a#container:hover { background-position: 0 -186px; } 
a#container:active { background-position: 0 -30px; }  
</style>
<p><a id="container" href="#" title="Exemple de bouton sprite"></a></p>
<h2>Conclusion</h2>
<p>Comme nous l&#8217;avons vue dans cet article, l&#8217;utilisation des sprites permet de gagner en performance au niveau de la vitesse d&#8217;affichage des pages web en réduisant le nombre de requêtes http effectuées sur le serveur. Quelques secondes de gagnées sur le chargement de vos pages peut vous rapporter gros car c&#8217;est du temps d&#8217;attente en moins pour les internautes et donc moins de perte potentielle d&#8217;audience.</p>
<p>Pour les graphistes, travailler avec un intégrateur qui utilise les sprites permet de regrouper plusieurs images dans un seul fichier png et d&#8217;éviter de fastidieuses découpes.</p>
<p>Cependant, l&#8217;utilisation des sprites peut causer quelques inconvénients si ils sont utilisés de manière inappropriée.</p>
<p>Par exemple, laissez suffisamment d&#8217;espace entre vos motifs sur l&#8217;image globale pour permettre aux utilisateurs de grossir le texte des pages web sans risquer de démasquer les autres motifs. Trouvez un bon compromis entre l&#8217;espacement des motifs et la taille de l&#8217;image globale car plus votre image globale sera grande, plus il faudra de mémoire à l&#8217;agent utilisateur pour la décompresser.</p>
<p>Les sprites peuvent également causer des problèmes de sémantique et d&#8217;accessibilité. Mon exemple de bouton est un mauvais exemple sur le plan sémantique car j&#8217;utilise une balise html &laquo;&nbsp;A&nbsp;&raquo; pour afficher un bouton au lieu d&#8217;une balise &laquo;&nbsp;INPUT&nbsp;&raquo; ou &laquo;&nbsp;BUTTON&nbsp;&raquo;. De plus ma balise &laquo;&nbsp;A&nbsp;&raquo; ne comporte pas d&#8217;intitulé texte. J&#8217;ai donc détourné la balise &laquo;&nbsp;A&nbsp;&raquo; à des fins esthétiques au détriment de la sémantique et de l&#8217;accessibilité. Bien que graphiste, je pense qu&#8217;il ne faut jamais céder à ce type de compromis.</p>
<p>Il est donc fortement conseillé d&#8217;utiliser les sprites pour les images de décorations uniquement (fond d&#8217;illustration, icônes &#8230;) et pas sur des images de contenu ou des images qui aident à la compréhension du contenu. En effet, si pour une raison ou pour une autre, les CSS sont désactivées, ou si une personne handicapée utilise un navigateur texte, vous perdez l&#8217;affichage de vos images. Si il s&#8217;agit uniquement d&#8217;images de décorations, leur disparition est génante sur le plan graphique mais la page conserve une accessibilité aux informations. </p>
<p>Pour conclure, utilisez les images sprites pour gagner en performance mais ne les utilisez pas dans un contexte où elles réduisent la sémantique et l&#8217;accessibilité.</p>
<p><strong>Sources :</strong></p>
<ul>
<li>
- <a href="http://www.pompage.net/pompe/sprites/">Sprites CSS : Meurs, découpe d’images, meurs !</a> &#8211; Traduction française, sur le site Pompage.net <a href="http://www.alistapart.com/articles/sprites/">d&#8217;un article de Dave Shea</a> parue sur A List Apart.</li>
<li>- <a href="http://performance.survol.fr/2008/06/des-sprites-jusqua-plus-soif/">Des sprites jusqu&#8217;à plus soif</a> &#8211; Eric Daspet</li>
<li>- <a href="http://css-tricks.com/css-sprites-what-they-are-why-theyre-cool-and-how-to-use-them/">CSS Sprites: What They Are, Why They’re Cool, and How To Use Them</a> &#8211; Chris Coyer</li>
<li><a href="http://nettuts.com/videos/screencasts/exactly-how-to-use-css-sprites/">- Exactly How to Use CSS Sprites</a> &#8211; Nettuts</li>
</ul>
<p><strong>Générateurs de sprites :</strong></p>
<ul>
<li>- Application Java ou PHP à télécharger : <a href="http://smartsprites.osinski.name/">SmartSprites</a></li>
<li>- Générateur de sprites en ligne : <a href="http://spritegen.website-performance.org/">Project Fondue</a></li>
<li>-  Générateur de sprites en ligne : <a href="http://www.csssprites.com/">CSSSprites</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.pixenjoy.com/utiliser-les-sprites/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Positionnement absolu et relatif</title>
		<link>http://www.pixenjoy.com/positionnement-absolu-et-relatif</link>
		<comments>http://www.pixenjoy.com/positionnement-absolu-et-relatif#comments</comments>
		<pubDate>Fri, 14 Sep 2007 07:48:04 +0000</pubDate>
		<dc:creator>pixenjoy</dc:creator>
				<category><![CDATA[Intégration web]]></category>

		<guid isPermaLink="false">http://www.pixenjoy.com/positionnement-absolu-et-relatif</guid>
		<description><![CDATA[La mise en forme d&#8217;une page web, autrefois réalisée à l&#8217;aide des tableaux, dispose aujourd&#8217;hui, grâce aux CSS, d&#8217;outils tel que le flottement et le positionnement. Nous ne parlerons pas du flottement dans cet article mais uniquement du positionnement et plus particulièrement du positionnement de type absolu et relatif.
Le positionnement, quelques rappels
Le positionnement est une [...]]]></description>
			<content:encoded><![CDATA[<p>La mise en forme d&#8217;une page web, autrefois réalisée à l&#8217;aide des tableaux, dispose aujourd&#8217;hui, grâce aux CSS, d&#8217;outils tel que le flottement et le positionnement. Nous ne parlerons pas du flottement dans cet article mais uniquement du positionnement et plus particulièrement du positionnement de type absolu et relatif.<span id="more-59"></span></p>
<h2>Le positionnement, quelques rappels</h2>
<p>Le positionnement est une notion assez simple qui permet d&#8217;indiquer précisément où des boîtes d&#8217;éléments apparaitront par rapport à leur bloc conteneur qui peut être l&#8217;élément racine (élément <code >html</code>), un élément parent ou un autre élément.</p>
<h3>Le bloc conteneur</h3>
<p>Dans le cas d&#8217;un élément flottant le bloc conteneur est l&#8217;élément parent de type bloc le plus proche. Avec le positionnement la notion de conteneur est un peu plus complexe.</p>
<ul>
<li>
<p>- Le bloc conteneur racine est dans la plupart des navigateurs matérialisé par un rectangle de la taille de la zone d&#8217;affichage. En HTML, l&#8217;élément racine est l&#8217;élément <code >html</code>.</p>
</li>
<li>
<p>- Pour les éléments non-racine positionnés de façon <code >relative</code> ou <code >static</code>, le bloc conteneur est matérialisé par le bord du contenu de la boîte parent de type bloc ou en ligne, de table ou cellule, la plus proche.</p>
</li>
<li>
<p>- Pour les éléments non-racine positionnés de façon <code >absolu</code>, le bloc conteneur est matérialisé par le parent le plus proche (de toute sorte) dont la propriété <code >position</code> a une valeur autre que <code >static</code> de la façon suivante :</p>
</li>
<li>
<ul>
<li>
<p>* Si le parent est de type bloc, le bloc conteneur est matérialisé par le bord de l&#8217;espacement de cet élément, il s&#8217;agit donc de la zone délimitée par une bordure.</p>
</li>
<li>
<p>* Si le parent est de type en-ligne, le bloc conteneur est matérialisé par le bord du contenu du parent.</p>
</li>
<li>
<p>* Si il n&#8217;y a pas de parent, le bloc conteneur de l&#8217;élément est le bloc conteneur racine.</p>
</li>
</ul>
</li>
</ul>
<p>Il est a noter que les éléments peuvent être positionnés hors de leur bloc conteneur en utilisant des valeurs négatives.</p>
<h3>Propriétés de décalage</h3>
<p>Le positionnement utilise la propriété <code >position</code> qui peut prendre les valeurs : <code >static</code> (valeur par défaut), <code >relative, absolute, fixed</code> et <code >inherit</code>. Les positionnements de type <code >relative, absolute</code> et <code >fixed</code> utilisent les propriétés <code >top, right, bottom</code> et <code >left</code> pour décrire le décalage des côtés d&#8217;un élément positionné par rapport à son bloc conteneur.</p>
<p><img src="http://farm2.static.flickr.com/1031/1365222899_621501e162_o.png" alt="Modèle de boîte CSS" class="img-left"  /></p>
<p>Ces propriétés décrivent le décalage à partir du bord le plus proche du bloc conteneur. Par exemple, <code >top</code> indique à quelle distance le bord de la marge haute de l&#8217;élément positionné doit être placé depuis le bord supérieur de son bloc conteneur. </p>
<p>Les valeurs assignées à ces propriétés peuvent être positives ou négatives.</p>
<p>Notez que les valeurs positives provoquent un décalage vers l&#8217;intérieur, déplaçant les bords vers le centre du bloc conteneur, et que les valeurs négatives provoquent un décalage vers l&#8217;extérieur.</p>
<p><img src="http://farm2.static.flickr.com/1416/1365420879_e926a7cc98_o.png" alt="positionnement d'un élément par rapport à son conteneur" class="img-left" />Il faut également comprendre que ces propriétés définissent le décalage depuis le côté analogue du bloc conteneur et non depuis son coin supérieur gauche. </p>
<p>Par exemple, <code >left</code> définit un décalage par rapport au côté gauche. </p>
<p>Sur le schéma ci-joint, le bord externe gauche de l&#8217;élément positionné est placé à 90 px du bord gauche du bloc conteneur.</p>
<h3>Largeur et hauteur</h3>
<p>Les propriétés <code >width</code> et <code >height</code> permettent de fixer respectivement la largeur et la hauteur d&#8217;un élément positionné. Si il est important parfois de fixer ces propriétés, on s&#8217;aperçoit que ce n&#8217;est pas toujours nécessaire. En effet le placement des quatre côtés d&#8217;un élément à l&#8217;aide de <code >top, right, bottom, left</code> peuvent fixer implicitement largeur et hauteur par les décalages qu&#8217;ils induisent.</p>
<p>Si par nécessité il faut limiter la largeur et la hauteur d&#8217;un élément, CSS2 met à disposition les propriétés <code >min-width</code> et <code >min-height</code> qui donne une dimension minimum à la zone de contenu d&#8217;un élément, et les propriétés <code >max-width</code> et <code >max-height</code> qui, vous l&#8217;aurez deviné, donne une dimension maximum à la zone de contenu d&#8217;un élément.</p>
<h3>Débordement</h3>
<p>Si le contenu d&#8217;un élément est trop important pour la taille de ce dernier, il risque de déborder de l&#8217;élément lui-même. Cette situation peut être contrôlé à l&#8217;aide de la propriété <code >overflow</code> dont les valeurs possibles sont <code >visible</code> (par defaut), <code >hidden, scroll, auto, inherit</code>.</p>
<ul>
<li>
<p>- La valeur <code >visible</code> signifie que le contenu de l&#8217;élément reste visible hors de la boîte d&#8217;élément.</p>
</li>
<li>
<p>- La valeur <code >scroll</code> signifie que le contenu est rogné sur les côtés de la boîte d&#8217;élément mais on laisse à l&#8217;utilisateur la possibilité de lire le contenu supplémentaire à l&#8217;aide de scroll par exemple.</p>
</li>
<li>
<p>- La valeur <code >hidden</code> signifie que le contenu est rogné sur les côtés de la boîte d&#8217;élément mais le contenu supplémentaire est caché à l&#8217;utilisateur.</p>
</li>
<li>
<p>- La valeur <code >auto</code> signifie que c&#8217;est au navigateur de déterminer le comportement à employer.</p>
</li>
</ul>
<h3>Visibilité</h3>
<p>La propriété <code >visibility</code> contrôle la visibilité d&#8217;un élément. Les valeurs possibles sont <code >visible</code> (par defaut), <code >hidden, collapse, inherit</code>.</p>
<ul>
<li>
<p>- La valeur <code >visible</code> signifie que l&#8217;élément est visible.</p>
</li>
<li>
<p>- La valeur <code >hidden</code> signifie que le contenu est rendu invisible mais l&#8217;élément affecte toujours la mise en page du document comme si il était visible. Notez la différence avec <code >display:none</code> où l&#8217;élément disparaît complètement y compris du document si bien qu&#8217;il n&#8217;a plus aucun effet sur la mise en page.</p>
</li>
<li>
<p>- La valeur <code >collapse</code> est employé dans l&#8217;affichage des tables CSS.</p>
</li>
</ul>
<h3>Placement sur l&#8217;axe z</h3>
<p>Lorsque plusieurs éléments positionnés se chevauchent ou veulent coexister au même endroit, il se peut qu&#8217;un élément soit caché par un autre de superficie supérieure. </p>
<p>L&#8217;ordre d&#8217;empilement naturel des éléments est déterminé par la position de l&#8217;élément dans le flux. Le dernier élément affiché dans le flux se trouvera au dessus des autres.</p>
<p>Cet ordre peut être contrôlé par la propriété <code >z-index</code>, en effet, un élément dont la valeur numérique de <code >z-index</code> est élevée se trouve en avant par rapport à un élément dont la valeur de <code >z-index</code> est faible. L&#8217;élément dont la valeur est la plus élevée se trouve donc au dessus des autres éléments.</p>
<h2>Positionnement absolu</h2>
<p>Un élément positionné de manière absolue est retiré du flux puis positionné par rapport à son bloc conteneur. L&#8217;élément positionné de façon absolue peut chevaucher d&#8217;autres éléments ou être chevauché. </p>
<p>Le bloc conteneur d&#8217;un élément positionné de manière absolue est l&#8217;élément parent le plus proche dont la valeur de <code >position</code> est différente de <code >static</code>. Il est courant de choisir un élément qui servira de bloc conteneur à un élément positionné de manière absolue en lui assignant une position relative sans préciser de décalage. Si il n&#8217;y a pas de parent dont la valeur de <code >position</code> est différente de <code >static</code>, le bloc conteneur de l&#8217;élément positionné de manière absolue est le bloc conteneur racine.</p>
<p>Exemple :</p>
<pre class="code"><code >
&lt;html&gt;
&lt;head&gt;
&lt;style type="text/css"&gt;

.main {
    margin:100px 0 0 100px;
    border:1px solid #d0d0d0;
    width:30%;
}

.conteneur {
    position:relative;
    background:#ff5555;
}

b {
    position:absolute;
    background:#fff888;
    top:50px;
    left:50px;
}

&lt;/style&gt;
&lt;/head&gt;

&lt;body&gt;

&lt;div class="main"&gt;
&lt;p&gt;
Ce paragraphe ne joue pas le rôle de conteneur à l'élément
&lt;br /&gt;
&lt;b&gt;en gras&lt;/b&gt; positionné de manière absolue.
&lt;/p&gt;

&lt;p class="conteneur"&gt;
Ce bloc établit un conteneur pour l'élément
&lt;br /&gt;
&lt;b&gt;en gras très gras&lt;/b&gt; positionné de manière absolue.
&lt;/p&gt;
&lt;/div&gt;

&lt;/body&gt;
&lt;/html&gt;
</code></pre>
<p><img src="http://farm2.static.flickr.com/1141/1372233802_f8d20fc060_o.png" alt="Positionnement absolu" /></p>
<p>Si vous souhaitez contrôler le bloc conteneur initial plutôt que de laisser le navigateur s&#8217;en charger, il suffit d&#8217;assigner par exemple au <code >body</code><br />
 de votre document une position relative :</p>
<p><code >body {position:relative;}</code></p>
<p>Il est important de comprendre aussi que lorsqu&#8217;un élément est positionné de manière absolue, il définit un bloc conteneur pour ses éléments enfants.</p>
<h2>Positionnement relatif</h2>
<p>Dans le cas d&#8217;un positionnement relatif, l&#8217;élément reste dans le flux. Le décalage s&#8217;opère de la même manière que pour le positionnement absolu mais l&#8217;élément laisse un espace blanc à l&#8217;endroit où il aurait dû se trouver dans le flux normal de la page. Un élément positionné de manière relative établit un nouveau bloc conteneur pour ses enfants à l&#8217;endroit où l&#8217;élément a été positionné.</p>
<p>Je rappel que pour les éléments non-racine positionnés de façons <code >relative</code>, le bloc conteneur est matérialisé par le bord du contenu de la boîte parent de type bloc ou en ligne, de table ou cellule, la plus proche.</p>
<p>Reprenons notre exemple mais en positionnant l&#8217;élément <code >&lt;b&gt;</code> de manière <code >relative</code>.</p>
<pre class="code"><code >
&lt;html&gt;
&lt;head&gt;
&lt;style type="text/css"&gt;

.main {
    margin:100px 0 0 100px;
    border:1px solid #d0d0d0;
    width:30%;
    z-index:0;
}

.conteneur {
    position:relative;
    background:#ff5555;
    z-index:1;
}

b {
    position:relative;
    background:#fff888;
    top:50px;
    left:50px;
    z-index:2;
}

&lt;/style&gt;
&lt;/head&gt;

&lt;body&gt;

&lt;div class="main"&gt;
&lt;p&gt;
Ce paragraphe joue le rôle de conteneur à l'élément
&lt;br /&gt;
&lt;b&gt;en gras&lt;/b&gt; positionné de manière relative.
&lt;/p&gt;

&lt;p class="conteneur"&gt;
Ce bloc établit un conteneur pour l'élément
&lt;br /&gt;
&lt;b&gt;en gras très gras&lt;/b&gt; positionné de manière relative.
&lt;/p&gt;
&lt;/div&gt;

&lt;/body&gt;
&lt;/html&gt;
</code></pre>
<p><img src="http://farm2.static.flickr.com/1086/1372564491_da9d4091ff_o.png" alt="Positionnement relative" /></p>
<p>On observe sur la copie d&#8217;écran les espaces vides laissés par les éléments <code >&lt;b&gt;</code> positionnés de manière relative. Nous avons rajouté des <code >z-index</code> pour que tous les blocs soient visibles et que les plus grand ne masquent pas les plus petits.</p>
<p>Ici les deux bloc parents <code >&lt;p&gt;</code> jouent un rôle de conteneur pour l&#8217;élément <code >&lt;b&gt;</code>.</p>
<h2>Conclusion</h2>
<p>La mise en page par flottement est plus populaire auprès des designer et intégrateurs web que la mise en page par positionnement. Cela est probablement dû au fait que la mise en page par flottement est plus simple à appréhender que celle par positionnement. </p>
<p>Cependant, l&#8217;utilisation des blocs flottant pose parfois problème, ce système étant très sensible aux dépassements de longueur, et de largeur. L&#8217;utilisation du positionnement absolu et relatif peut être une solution alternative beaucoup plus robuste si elle est utilisée avec habilité. Je pense que cette technique vaut la peine qu&#8217;on y accorde quelques gouttes de sueurs.</p>
<p>Une dernière remarque :  pour que le positionnement ne pose pas de problème lors d&#8217;un changement de résolution de l&#8217;écran, il est conseillé de d&#8217;attribuer des valeurs en % ou en em aux propriétés <code >width</code> et <code >height</code>.</p>
<p><strong>Mes sources</strong></p>
<p>Ouvrage : </p>
<p>L&#8217;essentiel de cet article a été rédigé à partir du livre &laquo;&nbsp;CSS, La référence&nbsp;&raquo; écrit par Eric A. Meyer, traduit par Hervé Soulard aux éditions O&#8217;Reilly.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pixenjoy.com/positionnement-absolu-et-relatif/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Présentation des microformats</title>
		<link>http://www.pixenjoy.com/presentation-des-microformats</link>
		<comments>http://www.pixenjoy.com/presentation-des-microformats#comments</comments>
		<pubDate>Sat, 18 Aug 2007 12:26:03 +0000</pubDate>
		<dc:creator>pixenjoy</dc:creator>
				<category><![CDATA[Intégration web]]></category>

		<guid isPermaLink="false">http://www.pixenjoy.com/presentation-des-microformats</guid>
		<description><![CDATA[La première fois que j&#8217;ai entendu parler des microformats, c&#8217;était à l&#8217;occasion du concours de design du thème Wordpress « Sandbox » qui s&#8217;est déroulé cet été 2007. En effet, une des particularités du thème Sandbox est qu&#8217;il intègre des microformats. Sur ce sujet, Bruno Bichet a rédigé un excellent article que je vous invite [...]]]></description>
			<content:encoded><![CDATA[<p>La première fois que j&#8217;ai entendu parler des microformats, c&#8217;était à l&#8217;occasion du concours de design du thème Wordpress « <a href="http://www.sndbx.org/">Sandbox</a> » qui s&#8217;est déroulé cet été 2007. En effet, une des particularités du thème Sandbox est qu&#8217;il intègre des microformats. <span id="more-43"></span>Sur ce sujet, Bruno Bichet a rédigé <a href="http://www.css4design.com/blog/index.php/2007/06/05/97-sandbox-un-theme-wordpress-pour-integrateurs-html-chic-qui-aiment-les-microformats">un excellent article</a> que je vous invite à lire sur son blog css4design. Pourtant le balbutiement des microformats débute dès 2003 avec la naissance du XHTML Friends Network (XFN) (microformat utilisé dans les relations entre vous-même et les personnes de votre blogroll). Le véritable lancement des microformats commencera en 2005 avec la mise en ligne du <a href="http://microformats.org">site officiel microformats.org</a></p>
<p>Je ne parlerai pas ici du thème Sandbox mais bien des microformats. Avant d&#8217;entamer le sujet, j&#8217;aimerai définir le mot « sémantique ». </p>
<h2>La sémantique</h2>
<p>La définition du mot « sémantique » est complexe. Ce mot est abondamment utilisé chez les linguistes. En informatique, on l&#8217;utilise généralement pour exprimer le fait de « donner du sens ».</p>
<p>Prenons un exemple : ma grand mère. Si elle me donne une mixture dans un récipient sans aucune autre précision, je reste sceptique sur la nature de la chose. Par contre, si elle colle une étiquette et y indique « Confiture de fraise – avril 2007 – jardin de Normandie » je sais immédiatement qu&#8217;il s&#8217;agit d&#8217;une mixture sucrée à base de fraise, encore comestible car datant de cette année et que c&#8217;est sans conservateur car provenant directement de son jardin Normand. En quelque sorte, ma grand mère, grâce aux indications portées sur son étiquette, à donné du sens à cette mixture rougeâtre. Ma grand mère fait de la sémantique sans le savoir ! </p>
<p>Prenons maintenant l&#8217;exemple du HTML. La balise <code >&lt;H1&gt;</code> est plus sémantique que la balise <code >&lt;DIV&gt;</code>. En effet, la balise  <code >&lt;H1&gt;</code> m&#8217;indique, si elle est bien utilisée, que son contenu est un titre et que ce titre est de niveau 1 alors que la balise <code >&lt;DIV&gt;</code> ne m&#8217;indique pas grand chose sur la nature de son contenu. Je sais seulement que ce contenu se comportera dans ma feuille de style comme un élément bloc.</p>
<h2>C&#8217;est quoi les microformats ?</h2>
<p>Pour aller droit au but, je dirai que les microformats sont des étiquettes que l&#8217;on rajoute au HTML pour le rendre plus sémantique que ce qu&#8217;il est actuellement par le biais uniquement de ses balises. Comment ? En utilisant des éléments et attributs déjà existant dans le HTML. Il s&#8217;agit de l’élément « meta », des attributs « rel » et « rev » et de l’attribut « class »</p>
<pre class="code">
<code >
&lt;meta name="description" content="Site sur les microformats"/&gt;
&lt;link href="/css/feuille.css" rel="stylesheet"/&gt;
&lt;span class="name"&gt;Durand&lt;/span&gt;
</code>
</pre>
<p>Son implémentation est donc très simple et se base sur les possibilités préexistantes du HTML 4.0. En effet, les initiateurs des microformats ont souhaité mettre en place plus de sémantique dans le HTML sans avoir à réinventer la roue et sans avoir à attendre l&#8217;élaboration d&#8217;une interminable spécification.</p>
<p>Les microformats ont été mis en place par des passionnés qui avaient besoin de structurer d&#8217;avantage les données publiés sur le web. Ils ont donné naissance à une communauté ouverte qui met en place le processus de standardisation. Tout le monde peut participer à faire évoluer les microformats, ils ne sont la propriété de personne et leur évolution ne dépend ni d&#8217;un organisme ni d&#8217;intérêts privées.</p>
<p>Vous pouvez retrouver cette communauté sur <a href="http://microformats.org/ ">le site officiel</a>. Il existe également <a href="http://www.elanceur.org/microformats/">une communauté francophone</a>. </p>
<h2>Ca sert à quoi les microformats ?</h2>
<p>Comme indiqué dans le chapitre précédent, les microformats permettent de structurer d&#8217;avantage les données des pages web en rajoutant de la sémantique dans le code HTML. C&#8217;est en quelque sorte une façons de tagger les données d&#8217;un contenu web.</p>
<p>Oui mais dans quel but ?</p>
<p>Dans le but de pouvoir partager de l&#8217;information en facilitant son extraction du code HTML.</p>
<p>Prenons un exemple :</p>
<p>Si dans une page web je trouve le code </p>
<pre class="code">
<code >&lt;span&gt;20070112&lt;/span&gt;</code>
</pre>
<p>s&#8217;agit il d&#8217;une référence produit, d&#8217;un numéro de téléphone, du nombre total d&#8217;un produit en stock ?</p>
<p>Si je rajoute une information à l&#8217;aide de l&#8217;attribut class</p>
<pre class="code">
<code >&lt;span class= "date"&gt;20070112&lt;/span&gt;</code>
</pre>
<p>je peux en déduire par la valeur de l&#8217;attribut class qu&#8217;il s&#8217;agit en fait d&#8217;une date.</p>
<p>Pour aller plus loin je peux aussi écrire</p>
<pre class="code">
<code >&lt;span class= "date  naissance" &gt;20070112&lt;/span&gt;</code>
</pre>
<p>pour indiquer qu&#8217;il s&#8217;agit d&#8217;une date de naissance.</p>
<p>Ce qui fait la force des microformats c&#8217;est qu&#8217;ils sont facilement lisibles et compréhensibles pour l&#8217;être humain mais aussi lisibles par les applications informatiques comme les navigateurs, des moteurs de recherche, des clients mail, des logiciels d&#8217;agenda etc. Ainsi les données peuvent aisément être partagées ou traitées et stockées dans des bases de données distantes.</p>
<p>Par exemple, l&#8217;extension Firefox <a href="https://addons.mozilla.org/firefox/4106/">Opérator</a> permet à l&#8217;utilisateur de détecter dans une page web la présence de microformats, de les extraire et de les exporter dans un format compatible avec des gestionnaires de contacts ou des calendriers. </p>
<p>Imaginez, vous êtes à la recherche de clients potentiels. Vous vous rendez sur le site d&#8217;un prospect. Opérator détecte sur la page contact un microformat qui vous permet d&#8217;extraire les coordonnées de votre prospect. Il vous suffit alors de l&#8217;extraire et de l&#8217;importer dans votre application bureautique qui gère une liste de clients potentiels que vous contacterez ultérieurement pour proposer vos services.</p>
<p>Pour en savoir plus sur l&#8217;utilité des microformats vous pouvez aussi lire la page wiki intitulée « <a href="http://microformats.org/wiki/what-can-you-do-with-microformats-fr ">Que pouvez-vous faire avec les microformats ?</a> »  </p>
<h2>Standardisation des microformats</h2>
<p>Pour que tout le monde parle le même langage et utilise les mêmes conventions, les microformats sont d&#8217;abord discutés puis validés avant d&#8217;être utilisés. C&#8217;est le rôle de la communauté dont nous avons déjà parlé. Les microformats ne sont pas figés mais en constante évolution selon les besoins des utilisateurs. Il existe aujourd&#8217;hui plusieurs familles de microformats en fonction du type de donnée à traiter. Vous pouvez vous même proposer un microformat à l&#8217;étude de la communauté pour un type d&#8217;information non abordé par les familles de microformats actuelles.</p>
<p>Voici pour exemple quelques une des familles de microformats parmi les plus connus :</p>
<p><a href="http://microformats.org/wiki/hcard-fr">hCard</a> &#8211; pour les informations de contact<br />
<a href="http://microformats.org/wiki/hcalendar-fr">hCalendar</a> &#8211; pour les événements<br />
<a href="http://microformats.org/wiki/rel-nofollow-fr">rel-nofollow</a> &#8211; pour combattre les spams<br />
<a href="http://gmpg.org/xfn/">XFN</a> &#8211; pour les relations sociales </p>
<h2>Conclusion</h2>
<p>Il s&#8217;agissait ici de présenter succinctement et simplement les microformats. Je vous laisse le soin d&#8217;approfondir l&#8217;aspect technique de leur implémentation.  Vous trouverez quelques références à la fin de cet article pour approfondir le sujet. Un prochain article plus technique fera peut être son apparition sur ce blog.</p>
<p>Les microformats progressent sur le web mais sont encore en construction. De grandes entreprises comme Yahoo ou Flickr les utilisent déjà. De nombreuses familles de microformats sont en gestation et d&#8217;autres feront leur apparition dans un futur proche. Le grand intérêt de cette technologie est qu&#8217;elle permet facilement d&#8217;extraire des données web pour être converties en n&#8217;importe quel autre format ou type de fichier exploitables par de nombreuses applications. </p>
<p>Alors qu&#8217;avec le XML chacun définie le vocabulaire sémantique qui va structurer son document, les microformats reposent sur une standardisation des propriétés et l&#8217;accord sur une terminologie commune permettant l&#8217;interopérabilité et le transfert des informations. </p>
<p><strong>Mes sources et quelques liens en plus</strong></p>
<p>Site officiel :<br />
- <a href="http://microformats.org ">microformats.org </a></p>
<p>Sites web francophones :<br />
- <a href="http://www.elanceur.org/microformats">http://www.elanceur.org/microformats</a>/<br />
- <a href="http://microformateurs.org">http://microformateurs.org</a><br />
- <a href="http://microformats.org/wiki/Main_Page-fr">Microformats wiki </a></p>
<p>Ouvrages :<br />
- <a href="http://www.oreilly.fr/catalogue/2354020031">Utiliser les microformats – Edition O&#8217;Reilly – Focus – Brian Suda</a><br />
- <a href="http://www.friendsofed.com/book.html?isbn=1590598148">Microformats: Empowering Your Markup for Web 2.0 &#8211; John Allsopp</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.pixenjoy.com/presentation-des-microformats/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Réinitialisation des éléments HTML</title>
		<link>http://www.pixenjoy.com/reinitialisation-des-elements-html</link>
		<comments>http://www.pixenjoy.com/reinitialisation-des-elements-html#comments</comments>
		<pubDate>Mon, 25 Jun 2007 11:14:44 +0000</pubDate>
		<dc:creator>pixenjoy</dc:creator>
				<category><![CDATA[Intégration web]]></category>

		<guid isPermaLink="false">http://www.pixenjoy.com/reinitialisation-des-elements-html</guid>
		<description><![CDATA[Quel webdesigner ne s&#8217;est pas arraché les cheveux à rendre la présentation de son site web à peu près identique sur l&#8217;ensemble des navigateurs ? Malgrès les recommandations du W3C, les constructeurs de navigateurs web ont développé  des applications dont le rendu des sites est spécifique. Les styles attribués par défaut aux balises sont [...]]]></description>
			<content:encoded><![CDATA[<p>Quel webdesigner ne s&#8217;est pas arraché les cheveux à rendre la présentation de son site web à peu près identique sur l&#8217;ensemble des navigateurs ? Malgrès les recommandations du <a href="http://www.w3.org">W3C</a>, les constructeurs de navigateurs web ont développé  <span id="more-40"></span>des applications dont le rendu des sites est spécifique. Les styles attribués par défaut aux balises sont différents d&#8217;un navigateur à l&#8217;autre. Ainsi, les marges par défaut appliquées aux listes <code >&lt;ol&gt; &lt;ul&gt; &lt;li&gt;</code> sont différentes par exemple dans Firefox et Internet Explorer.</p>
<h2>Valeurs par défaut des balises HTML</h2>
<p>Le <a href="http://www.w3.org">W3C</a> a préconisé <a href="http://www.w3.org/TR/CSS21/sample.html">une feuille de style</a> pour attribuer des valeurs par défaut aux éléments HTML. Malheureusement pour les webdesigner, l&#8217;ensemble des navigateurs ne respectent pas à la lettre cette feuille de style et ont leur propre CSS de valeurs par défaut.<br />
Vous trouverez sur le sujet d&#8217;excellents articles sur le site Alsacréations : <a href="http://css.alsacreations.com/Bases-et-indispensables/Le-rendu-par-defaut-des-elements-HTML">Le rendu par défaut des éléments HTML</a> et sur le site OpenWeb : <a href="http://openweb.eu.org/articles/lacher_prise/">Styles auteur, utilisateur et agent utilisateur : 3 raisons de lâcher prise sur votre design</a>.<br />
Pour observer les différences de valeurs par défaut des éléments HTML appliquées dans les navigateurs, Julien Royer d&#8217;<a href="http://www.alsacreations.com">Alsacréations</a>, a développé un outil intéressant que vous trouverez disponible à cette <a href="http://css.alsacreations.com/xmedia/exemples/rendu/rendu-css-elements.html">adresse</a>.</p>
<h2>Méthode du &laquo;&nbsp;Reset CSS&nbsp;&raquo;</h2>
<p>Certains webdesigners, pour contourner ces différences de valeurs par défaut entre navigateurs, choisissent de réinitialiser eux mêmes les éléments HTML à zéro. Cela peut être obtenu de façons très simple avec les lignes de code suivantes :</p>
<pre class="code">
<code >* {
    margin:0;
    padding:0;
    border:0:
    }</code>
</pre>
<p>Le sélecteur &laquo;&nbsp;*&nbsp;&raquo; étant le sélecteur désignant tous les éléments HTML.</p>
<p>A charge ensuite au webdesigner de redéfinir les éléments selon ses besoins.</p>
<p>Cependant, cette façons de réinitialiser les éléments HTML est un peu brutale car elle détruit totalement le rendu de certains éléments comme par exemple ceux des formulaires. Il est plus judicieux de choisir les balises que l&#8217;on souhaite initialiser et de leur donner des valeurs prédéfinies. Cette méthode est appelée par les anglo-saxons le méthode du &laquo;&nbsp;Reset CSS&nbsp;&raquo;</p>
<p>Pour mieux comprendre de quoi il s&#8217;agit, voici quelques exemples de CSS mettant en application la méthode du &laquo;&nbsp;Reset CSS&nbsp;&raquo; :</p>
<h3><a href="http://www.crucialwebhost.com/blog/master-stylesheet-the-most-useful-css-technique/">Feuille &laquo;&nbsp;Reset CSS&nbsp;&raquo;</a> proposée sur le site Crucial Web Hosting.</h3>
<pre class="code">
<code >/***** Global Settings *****/

html, body {
border:0;
margin:0;
padding:0;
}

body {
font:100%/1.25 arial, helvetica, sans-serif;
}

/***** Common Formatting *****/

h1, h2, h3, h4, h5, h6 {
margin:0;
padding:0;
font-weight:normal;
}

h1 {
padding:30px 0 25px 0;
letter-spacing:-1px;
font:2em arial, helvetica, sans-serif;
}

h2 {
padding:20px 0;
letter-spacing:-1px;
font:1.5em arial, helvetica, sans-serif;
}

h3 {
font:1em arial, helvetica, sans-serif;
font-weight:bold;
}

p, ul, ol {
margin:0;
padding:0 0 18px 0;
}

ul, ol {
list-style:none;
padding:0 0 18px 40px;
}

blockquote {
margin:22px 40px;
padding:0;
}

small {
font-size:0.85em;
}

img {
border:0;
}

sup {
position:relative;
bottom:0.3em;
vertical-align:baseline;
}

sub {
position:relative;
bottom:-0.2em;
vertical-align:baseline;
}

acronym, abbr {
cursor:help;
letter-spacing:1px;
border-bottom:1px dashed;
}

/***** Links *****/

a, a:visited {
text-decoration:none;
}

/***** Forms *****/

form {
margin:0;
padding:0;
display:inline;
}

input, select, textarea {
font:1em arial, helvetica, sans-serif;
}

textarea {
line-height:1.25;
}

label {
cursor:pointer;
}

/***** Tables *****/

table {
border:0;
margin:0 0 18px 0;
padding:0;
}

        table tr td {
        padding:2px;
        }

/***** Wrapper *****/

#wrap {
width:960px;
margin:0 auto;
}

/***** Global Classes *****/

.clear                  { clear:both; }

.float-left     { float:left; }
.float-right    { float:right; }

.text-left              { text-align:left; }
.text-right     { text-align:right; }
.text-center    { text-align:center; }
.text-justify   { text-align:justify; }

.bold                   { font-weight:bold; }
.italic                 { font-style:italic; }
.underline              { border-bottom:1px solid; }
.highlight              { background:#ffc; }

.wrap                   { width:960px;margin:0 auto; }

.img-left               { float:left;margin:4px 10px 4px 0; }
.img-right              { float:right;margin:4px 0 4px 10px; }

.nopadding              { padding:0; }
.noindent               { margin-left:0;padding-left:0; }
.nobullet               { list-style:none;list-style-image:none; }both</code>
</pre>
<h3><a href="http://meyerweb.com/eric/thoughts/2007/05/01/reset-reloaded/">Feuille &laquo;&nbsp;Reset CSS&nbsp;&raquo;</a> proposée par Eric Meyer.</h3>
<pre class="code">
<code >html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, font, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td {
        margin: 0;
        padding: 0;
        border: 0;
        outline: 0;
        font-weight: inherit;
        font-style: inherit;
        font-size: 100%;
        font-family: inherit;
        vertical-align: baseline;
}
/* remember to define focus styles! */
:focus {
        outline: 0;
}
body {
        line-height: 1;
        color: black;
        background: white;
}
ol, ul {
        list-style: none;
}
/* tables still need 'cellspacing="0"' in the markup */
table {
        border-collapse: separate;
        border-spacing: 0;
}
caption, th, td {
        text-align: left;
        font-weight: normal;
}
blockquote:before, blockquote:after,
q:before, q:after {
        content: "";
}
blockquote, q {
        quotes: "" "";
}</code>
</pre>
<h3><a href="http://lab.christianmontoya.com/initial-css/initial.css">Feuille &laquo;&nbsp;Reset CSS&nbsp;&raquo;</a> proposée par Christian Montoya.</h3>
<pre class="code">
<code >/* =INITIAL
   v2.1, by Faruk Ates - www.kurafire.net
   Addendum by Robert Nyman - www.robertnyman.com
   Addition by Christian Montoya - www.christianmontoya.net */

/* Neutralize styling:
   Elements we want to clean out entirely: */
html, body, form, fieldset {
        margin: 0;
        padding: 0;
        font: 100%/120% Verdana, Arial, Helvetica, sans-serif;
}

/* Neutralize styling:
   Elements with a vertical margin: */
h1, h2, h3, h4, h5, h6, p, pre,
blockquote, ul, ol, dl, address {
        margin: 1em 0;
        padding: 0;
}

/* Apply left margin:
   Only to the few elements that need it: */
li, dd, blockquote {
        margin-left: 1em;
}

/* Miscellaneous conveniences: */
form label {
        cursor: pointer;
}
fieldset {
        border: none;
}
input, select, textarea {
        font-size: 100%;
                font-family: inherit;
}</code>
</pre>
<h2>Pour ou contre la méthode &laquo;&nbsp;Reset CSS&nbsp;&raquo;</h2>
<p>La méthode du &laquo;&nbsp;Reset CSS&nbsp;&raquo; est utilisée par de nombreux webdesigner dont je fais partie, cependant, elle ne fait pas l&#8217;unanimité. C&#8217;est le cas notamment du collectif Alsacréations qui à ce propos dit dans son article <a href="http://css.alsacreations.com/Bases-et-indispensables/Le-rendu-par-defaut-des-elements-HTML">Le rendu par défaut des éléménts HTML</a> :</p>
<blockquote><p>&laquo;&nbsp;Cette méthode impose de repréciser, dans la feuille de style, des marges et padding pour tous les éléments qui le nécessitent, sous peine d&#8217;obtenir un document peu lisible. Une opération qui non seulement prend du temps, mais en plus n&#8217;est pas fiable : on risque d&#8217;oublier de redonner des marges à certains éléments, et de se retrouver avec un rendu problématique sur telle ou telle page du site.<br />
Mais surtout, cette technique est largement inutile ! Car, le plus souvent, les différences de rendu et le caractère « imprévisible » des marges par défaut ne sont pas liés aux styles par défaut, mais plutôt :<br />
à des bugs des navigateurs ;<br />
à une incompréhension, du côté du concepteur web, de certains mécanismes de base comme la fusion des marges entre un élément et son bloc parent.<br />
&#8230;&nbsp;&raquo;</p></blockquote>
<p>Le collectif Alsacréations préconise donc d&#8217;identifier les différences d&#8217;affichage des navigateurs qui sont peux nombreuses et de d&#8217;en tenir compte dans le développement. Pour cela Julien Royer a développé un <a href="http://css.alsacreations.com/xmedia/exemples/rendu/rendu-css-elements.html">outil</a> qui permet d&#8217;observer les différences de rendu par défaut des navigateurs.</p>
<p>Pour ma part j&#8217;utilise la méthode du &laquo;&nbsp;Reset CSS&nbsp;&raquo;. Je redéfinie les éléments XHTML en reprenant la <a href="http://www.w3.org/TR/CSS21/sample.html">feuille CSS</a> de rendu initial préconisé par le W3C pour les développeurs de navigateurs.</p>
<p>Je mets en commentaires certaines lignes de cette feuille de style et redéfinie les éléments qui m&#8217;intéressent.</p>
<p>Je ne prendrais pas position sur le bien fondé de l&#8217;une où l&#8217;autre des ces méthodes, à vous de voir la solution qui semble la plus adapté à votre façons de travailler.<br />
Par contre je n&#8217;hésite pas à dénoncer des navigateurs comme Internet Explorer qui respectent peu les préconisations du W3C et pourrissent la vie des webdesigner. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.pixenjoy.com/reinitialisation-des-elements-html/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Lisibilité des feuilles CSS</title>
		<link>http://www.pixenjoy.com/lisibilite-des-feuilles-css</link>
		<comments>http://www.pixenjoy.com/lisibilite-des-feuilles-css#comments</comments>
		<pubDate>Fri, 22 Jun 2007 20:56:51 +0000</pubDate>
		<dc:creator>pixenjoy</dc:creator>
				<category><![CDATA[Intégration web]]></category>

		<guid isPermaLink="false">http://www.pixenjoy.com/lisibilite-des-feuilles-css</guid>
		<description><![CDATA[Utiliser les feuilles de style c&#8217;est bien, les organiser c&#8217;est encore mieux ! En effet, la lisibilité d&#8217;une feuille de style peut vite devenir fastidieuse au fur et à mesure qu&#8217;elle prend de l&#8217;ampleur. Pour s&#8217;y retrouver plus facilement dans un fichier CSS lors du développement où de la maintenance, j&#8217;ai pris connaissance sur internet [...]]]></description>
			<content:encoded><![CDATA[<p>Utiliser les feuilles de style c&#8217;est bien, les organiser c&#8217;est encore mieux ! En effet, la lisibilité d&#8217;une feuille de style peut vite devenir fastidieuse au fur et à mesure qu&#8217;elle prend de l&#8217;ampleur. Pour s&#8217;y retrouver plus facilement dans un fichier CSS<span id="more-38"></span> lors du développement où de la maintenance, j&#8217;ai pris connaissance sur internet des techniques que d&#8217;autres webdesigner utilisaient. Voici celles que j&#8217;ai choisi de retenir pour mes futurs développements.</p>
<h2>Utiliser plusieurs fichiers CSS</h2>
<p>Plutôt que de réunir tous vos styles dans un seul méga-fichier, utiliser plusieurs feuilles de style. Attention, ne pas abuser du nombre car chaque feuille crée sera autant d&#8217;appels au serveur. Je pense que 4 où 5 feuilles sont un maximum. </p>
<p>Pour ma part, j&#8217;en utilise 4 :</p>
<p>- une feuille principale (style.css)<br />
- une feuille pour réinitiliser les balises (reset.css)<br />
- une feuille pour ie6 (ie6.css)<br />
- une feuille pour ie7 (ie7.css)</p>
<p>Les feuilles CSS pour Internet Explorer sont appelées à l&#8217;aide d&#8217;instructions conditionnelles qui sont considérées comme des commentaires par les autres navigateurs.</p>
<pre class="code"><code >&lt;!--[if IE 6] &gt;
&lt; link rel="stylesheet" href="http://www.pixenjoy.com/xx/css/ie6.css"
type="text/css" media="screen" / &gt;
&lt; ![endif]--&gt;

&lt;!--[if IE 7] &gt;
&lt; link rel="stylesheet" href="http://www.pixenjoy.com/xx/css/ie7.css"
type="text/css" media="screen" / &gt;
&lt; ![endif]--&gt;</code></pre>
<h2>Abuser des commentaires</h2>
<p>Ne pas hésiter à utiliser les commentaires pour organiser la mise en page de votre feuille de style. Pour ma part j&#8217;utilise les commentaires pour décrire :</p>
<p>- une table des matières<br />
- noter des informations utiles<br />
- mettre à disposition un pense bête des principales couleurs<br />
- diviser mon document en plusieurs grandes partie (HTML, Head, Main, Foot &#8230;)</p>
<p>Voici ce que cela peut donner :</p>
<pre class="code"><code >/* --------------------------------------------*/
/* ---------- TABLE DES MATIERES -----------*/
/* ------------------------------------------*/
/*
	- Informations
	- Pense bête couleurs
	- Balises &lt;HTML&gt;
	- #Main
	- #Head
		- Styles pour la partie blog
		- Styles pour la partie CMS
	 - #Wrap
	     - #Wrap_LeftBloc
			- Styles pour la partie blog
			- Styles pour la partie CMS
	- #RightBloc
		- Styles pour la partie blog
		- Styles pour la partie CMS
	- #Foot
	- .class globales
	- Debug

*/

/* ---------- Informations -----------*/
/*
	&gt; Les propriétés sont rangées dans
         l'ordre alphabéthique
	&gt; Les propriétés des balises HTML sont
         ré-initialisés dans la feuille CSS ../css/reset.css
	&gt; Des feuilles de styles séparées ont
        été mises en place pour ie6 et ie7
        ../css/ie6.css et ../css/ie7.css
*/
/* ---------- Pense bête couleurs -----------*/
/*
	Marron foncé (menu principal) : 	#312e2b
	Blanc cassé (fond bas de page) :	#f9f4ef
	Vert Olive (titres blog + Art. prec.)	#6aaf4d
	Vert désaturé (titre blog hover)	#82a474
	Gris (texte)				#686665
	Gris claire (texte footer)		#afacaa
*/

/* ---------- Balises &lt;HTML&gt; (début) -----------*/
/* ---------- Balises &lt;HTML&gt; (fin) -----------*/ 

/* ---------- Balises Head (début) -----------*/
/* ---------- Balises Head (fin) -----------*/
</code></pre>
<h2>Fixer des conventions d&#8217;écriture</h2>
<p>Se fixer des conventions d&#8217;écriture permets de s&#8217;y retrouver plus facilement dans sa feuille de style pour les futurs relectures. Au début cela demande un peu de discipline mais avec l&#8217;habitude l&#8217;écriture devient instinctive.</p>
<p>J&#8217;utilise les conventions d&#8217;écriture suivantes :</p>
<p>- Rangement des propriétés dans l&#8217;ordre alphabéthique</p>
<pre class="code"><code >pre.code {
		background-color:#fafafa;
		border:1px dotted #d0d0d0;
		clear:both;
		margin:2px 0 0 20px;
		overflow:auto;
		padding:10px;
		}</code></pre>
<p>- Les ID commencent par une majuscule, les class par une minuscule</p>
<pre class="code"><code >#Wrap {}
.foot_adresse {}</code></pre>
<p>- Répéter dans le nom des class, le nom des ancêtres</p>
<pre class="code"><code >#Wrap_leftBlock {}
.wrap_leftBlock_texte {}</code></pre>
<p>- Ecrire ses règles toujours de la même façons</p>
<pre class="code"><code >.wrap_leftBlock_texte {1 seule propriété ...}

.wrap_leftBlock_texte {
     plusieurs propriétes ...
     }</code></pre>
<h2>Conclusion</h2>
<p>Vous forcer à suivre des règles d&#8217;écriture pour vos feuilles CSS peut paraître ennuyeux au début. Mais avec la pratique, vous le ferez instinctivement. Mais surtout vous y gagnerez en lisibilité ce qui vous fera gagner du temps.<br />
Les techniques décrites ci-dessus ne sont que des exemples et choix personnels. A vous d&#8217;établir vos propres règles. Vous trouverez dans la source cité ci-après d&#8217;autres astuces que vous adopterez peut être.</p>
<p><strong>Mes sources</strong></p>
<p>-  Smashing magazine, <a href="http://www.smashingmagazine.com/2007/05/10/70-expert-ideas-for-better-css-coding/">70 Expert ideas for better css coding</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pixenjoy.com/lisibilite-des-feuilles-css/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Les standards web (III)</title>
		<link>http://www.pixenjoy.com/les-standards-web-iii</link>
		<comments>http://www.pixenjoy.com/les-standards-web-iii#comments</comments>
		<pubDate>Mon, 14 May 2007 08:35:32 +0000</pubDate>
		<dc:creator>pixenjoy</dc:creator>
				<category><![CDATA[Intégration web]]></category>

		<guid isPermaLink="false">http://www.pixenjoy.com/les-standards-web-iii</guid>
		<description><![CDATA[Suite et fin de la série d&#8217;articles consacrés aux standards du web. Nous terminerons dans cet article par des explications sur des notions un peu barbares à première vue que sont le DOCTYPE, l&#8217;espace de nom, le type de contenu et l&#8217;encodage des caractères.
Début d&#8217;un document xhtml
Un document xhtml standard commence généralement de la façons [...]]]></description>
			<content:encoded><![CDATA[<p>Suite et fin de la série d&#8217;articles consacrés aux standards du web. Nous terminerons dans cet article par des explications sur des notions un peu barbares à première vue que sont le DOCTYPE, l&#8217;espace de nom, le type de contenu et l&#8217;encodage des caractères.<span id="more-28"></span></p>
<h2>Début d&#8217;un document xhtml</h2>
<p>Un document xhtml standard commence généralement de la façons suivante :</p>
<pre class="code"><code >&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&gt;

&lt;HTML lang="fr-FR" 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;
Titre de ma page
&lt;/title&gt;

&lt;/head&gt;</code></pre>
<p>Qu&#8217;est ce que cela signifie ?</p>
<h2>Doctype</h2>
<pre class="code"><code >&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&gt;</code></pre>
<p>Lorsque l&#8217;on écrit un document XHTML on doit respecter des règles qui sont spécifiées dans un texte appelé &laquo;&nbsp;définition de type de document&nbsp;&raquo; ou DTD. Comme il existe plusieurs DTD, le DOCTYPE nous permet d&#8217;indiquer aux navigateurs de quelle DTD nous avons choisit que notre document dépende. Ces règles sont des spécifications XHTML de la façons dont notre balisage doit être construit. Elles indiquent aux navigateurs la façons dont les pages doivent être affichées et aux services de validations si le codage de la page est valide. </p>
<p>XHTML 1.0 propose 3 DTD :</p>
<p>- Transitional : règles peux restrictives, ferme les yeux sur des éléments, structures, attributs caducs (ex: attributs &laquo;&nbsp;target&nbsp;&raquo; de href, bgcolor &#8230;), permet une transition douce vers les standards.</p>
<p>- Strict : règles rigides, pour les plus aguéris des standards.</p>
<p>- Frameset : règles permettant d&#8217;inclure des cadres dans votre design.</p>
<h2>L&#8217;espace de noms ou xmlns (xml name space)</h2>
<pre class="code"><code >&lt;html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="fr"&gt;</code></pre>
<p>Un espace de nom est un ensemble de type d&#8217;éléments et de noms d&#8217;attributs associés à une DTD. La déclaration d&#8217;espace de noms se fait dans la balise <code >&lt;html&gt;</code> et indique son emplacement en ligne.<br />
<code >xml:lang="en"</code> indique que la version de XML utilisée est écrite en anglais<br />
<code >lang="fr"</code> indique que le document est écrit en français</p>
<h2>Le type de contenu  (type MIME )</h2>
<p>Un document XHTML doit indiquer le type d&#8217;encodage de caractères qu&#8217;il va utiliser pour être correctement interprété par les navigateurs et réussir les tests de validation du balisage. </p>
<p>Il existe plusieurs manières de l&#8217;indiquer :</p>
<p>- le w3c recommande l&#8217;utilisation d&#8217;un prologue XML en tous début de page
<pre class="code"><code >&lt;?xml version="1.0" encoding="ISO-8859-1" ?&gt;</code></pre>
<p>Ce prologue indique la version XML utilisé et le type d&#8217;encodage. Mais IE ne gère pas les &laquo;&nbsp;?&nbsp;&raquo; utilisés dans la syntaxe de ce prologue.<br />
- Utilisation d&#8217;une balise <code>&lt;meta&gt;</code> à l&#8217;intérieur d&#8217;une balise <code>&lt;head&gt;</code> avec l&#8217;élément Content-Type<br />
Si l&#8217;on veut être puriste, le type MIME pour un document XHTML est le même que celui que l&#8217;on utilise pour un document XML à savoir</p>
<pre class="code"><code >&lt;meta http-equiv="Content-Type" content="application/xhtml+xml; charset=ISO-8859-1" /&gt;</code></pre>
<p> mais cela suppose que votre DOCTYPE indique que vous utilisez le XHTML 1.1 Le problème est que seul les navigateurs modernes reconnaisse ce type MIME.<br />
Pour un document HTML, le type MIME par défaut est <code>"text/html"</code></p>
<pre class="code"><code >&lt;meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /&gt;</code></pre>
<p>Ce type est aussi supporté avec XHTML 1.0 Transitional et XHTML 1.0 Strict si vous désirez offrir une rétrocompatibilité.<br />
En attendant que tous les navigateurs sachent reconnaître le type MIME <code>"application/xhtml+xml"</code> il vaut mieux se contenter du type<code> "text/html"</code></p>
<pre class="code"><code >&lt;meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /&gt;</code></pre>
<h2>L&#8217;encodage de caractères et sa déclaration Unicode</h2>
<p>Le jeu de caractères par défaut des documents XML, XHTML est Unicode. C&#8217;est un jeu de caractères exhaustif qui fournit un numéro unique à chaque caractère quels que soient la plate-forme, le programme, la langue. </p>
<p>ISO-8859</p>
<p>Il existe d&#8217;autres jeu de caractères plus spécifique adapté à certaines langues. ISO-8859 est conçus pour les langues alphabétiques. Il en existe plusieurs. Par exemple ISO-8859-1 est utilisé pour établir une correspondance entre les caractères de langues d&#8217;Europe de l&#8217;ouest et Unicode. ISO-8859-2 est utilisé pour les langues d&#8217;Europe de l&#8217;est (turc, grec, hébreu et langues nordiques)<br />
La déclaration de l&#8217;encodage permet d&#8217;établir la correspondance entre le jeu de caractères choisi et le standard Unicode. </p>
<p>Les sites peuvent faire cette déclaration de 3 manières :</p>
<p>- Sur le serveur en définissant l&#8217;encodage des caractères dans les en-têtes HTTP renvoyé par le serveur. Recommandé par le W3C.<br />
- Pour les documents XML donc XHTML, dans le prologue XML. Mal supporté par IE.<br />
- Dans une balise <meta> de type Content-Type</p>
<p><strong>Mes sources</strong></p>
<p>- &laquo;&nbsp;Design Web : utilisez les standards&nbsp;&raquo; &#8211; Jeffrey Zeldman &#8211; Eyrolles</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pixenjoy.com/les-standards-web-iii/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Les standards web (II)</title>
		<link>http://www.pixenjoy.com/les-standards-web-ii</link>
		<comments>http://www.pixenjoy.com/les-standards-web-ii#comments</comments>
		<pubDate>Wed, 18 Apr 2007 15:59:05 +0000</pubDate>
		<dc:creator>pixenjoy</dc:creator>
				<category><![CDATA[Intégration web]]></category>

		<guid isPermaLink="false">http://www.pixenjoy.com/les-standards-web-ii</guid>
		<description><![CDATA[Après avoir définie ce qu&#8217;était les standards,leur utilité et leurs avantages dans l&#8217;article &#171;&#160;Les standards web (I)&#160;&#187; nous aborderons ici  la syntaxe d&#8217;un document XHTML et l&#8217;utilisation du balisage sémantique.
Les 10 règles de la synthaxe XHTML
- Commencez votre page XHTML par l&#8217;indication du DOCTYPE
&#60;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&#62;
- Indiquez l&#8217;espace de noms [...]]]></description>
			<content:encoded><![CDATA[<p>Après avoir définie ce qu&#8217;était les standards,leur utilité et leurs avantages dans l&#8217;article &laquo;&nbsp;Les standards web (I)&nbsp;&raquo; nous aborderons ici  la syntaxe d&#8217;un document XHTML et l&#8217;utilisation du balisage sémantique.<span id="more-23"></span></p>
<h2>Les 10 règles de la synthaxe XHTML</h2>
<p>- Commencez votre page XHTML par l&#8217;indication du DOCTYPE</p>
<pre class="code"><code >&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&gt;</code></pre>
<p>- Indiquez l&#8217;espace de noms appropriés immédiatement après le DOCTYPE</p>
<pre class="code"><code >&lt;html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="fr"&gt;</code></pre>
<p>- Déclarez le type de contenu &laquo;&nbsp;Content-Type&nbsp;&raquo; dans une balise &laquo;&nbsp;meta&nbsp;&raquo;</p>
<pre class="code"><code >&lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8"&gt;</code></pre>
<p>- Tous les noms d&#8217;éléments et d&#8217;attributs sont écrits en minuscule<br />
- Toutes les valeurs d&#8217;attributs sont entre apostrophes simples ou doubles<br />
- Tous les attributs ont une valeur<br />
- Toutes les balises sont refermées y compris les balises vides<br />
<code >&lt;br /&gt;</code><br />
- Pas de tirets doubles à l&#8217;intérieur d&#8217;un commentaire<br />
- Les caractères inférieur (&laquo;&nbsp;&lt;&nbsp;&raquo;) sont codés <code >"&amp;lt;"</code> et les caractères esperluète (&amp;) sont codés <code >&amp;amp;</code><br />
- Utiliser les balises à des fins sémantique et non de présentation</p>
<h2>Le balisage sémantique</h2>
<h3>Utiliser les balises pour structurer vos documents</h3>
<p>Dans l&#8217;idéal, le XHTML devrait uniquement servir à la structure interne du document. La présentation est réservée aux feuilles de styles CSS. Un document bien structuré sera exploitable dans plusieurs agents d&#8217;affichage même si le CSS est désactivé.<br />
Il faut oublier toutes les balises de présentation de type <code >&lt;font&gt;, &lt;b&gt;, &lt;i&gt;</code> et utiliser les balises en fonction de leur signification pour structurer son contenu.</p>
<p>Exemple: </p>
<pre class="code"><code >&lt;h1&gt;Titre&lt;/h1&gt;
&lt;p&gt;introduction&lt;/p&gt;
&lt;h2&gt;Sous-titre&lt;/h2&gt;
&lt;p&gt;texte&lt;/p&gt;</code>
</pre>
<p>Utiliser les balises pour leur sens (sémantique) et non pour le rendu quel peuvent vous apporter</p>
<p>Exemple: </p>
<p><code >&lt;h1&gt;</code> signifie titre d&#8217;ordre 1 et non affichage du texte en gros<br />
<code >&lt;li&gt;</code> signifie liste et non texte précédé d&#8217;une puce<br />
<code >&lt;blockquote&gt;</code> signifie citation et non indenter le texte</p>
<p>Si aucune balise ne vous convient, utilisez les balises <code >&lt;span&gt; et &lt;div&gt;</code></p>
<h3> Évitez la surcharge de balises</h3>
<p>&#8230; utilisez <code >&lt;span&gt;, &lt;div&gt; et "id", "class"</code></p>
<p>Des pages légères économisent la bande passante et facilite la maintenance du code, vous avez donc tout intérêt à éviter l&#8217;excès de balises.</p>
<p>Les balises <code >&lt;span&gt;, &lt;div&gt;</code> permettent d&#8217;écrire du XHTML compact et d&#8217;appliquer CSS de façons approprié.<br />
<code >&lt;span&gt;</code> définie du contenu au fil du texte<br />
<code >&lt;div&gt;</code> définie du contenu au niveau bloc</p>
<p>&laquo;&nbsp;id&nbsp;&raquo; affecte un nom unique à un élément qui ne peut être utilisé qu&#8217;une seule fois dans la page.<br />
&laquo;&nbsp;class&nbsp;&raquo; affecte un nom qui peut être utilisé sur plusieurs éléments différents et à plusieurs reprises dans la page.</p>
<p><strong>Mes sources</strong></p>
<p>- &laquo;&nbsp;Design Web : utilisez les standards&nbsp;&raquo; &#8211; Jeffrey Zeldman &#8211; Eyrolles</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pixenjoy.com/les-standards-web-ii/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Les standards web (I)</title>
		<link>http://www.pixenjoy.com/les-standards-web-i</link>
		<comments>http://www.pixenjoy.com/les-standards-web-i#comments</comments>
		<pubDate>Thu, 29 Mar 2007 22:30:11 +0000</pubDate>
		<dc:creator>pixenjoy</dc:creator>
				<category><![CDATA[Intégration web]]></category>

		<guid isPermaLink="false">http://www.pixenjoy.com/?p=7</guid>
		<description><![CDATA[Le temps des mises en page web à l&#8217;aide des tableaux est une période révolue. Aujourd&#8217;hui on parle davantage de XHTML, de feuilles de styles CSS et de standards W3C. Nous allons voir dans une série de 3 articles un aperçu de ces technologies. 
Qu&#8217;est ce que c&#8217;est ?
Les standards sont une série de spécifications [...]]]></description>
			<content:encoded><![CDATA[<p>Le temps des mises en page web à l&#8217;aide des tableaux est une période révolue. Aujourd&#8217;hui on parle davantage de XHTML, de feuilles de styles CSS et de standards W3C. Nous allons voir dans une série de 3 articles un aperçu de ces technologies. <span id="more-7"></span></p>
<h2>Qu&#8217;est ce que c&#8217;est ?</h2>
<p>Les standards sont une série de spécifications et directives émisent par un organisme appelé le W3C. Ces règles en constantes évolutions sont destinées à promouvoir l&#8217;évolution du web et à normaliser la façons dont les navigateurs web doivent afficher les pages web et les développeurs structurer leur code pour garantir <!--more-->une intéropérabilité optimale. XHTML, CSS, DOM sont issues des recommendations du W3C. Le W3C (Word Wild Web Consortium) est composé de personnes d&#8217;origines et de formations diverses et dirigé par Tim Berners-Lee, inventeur du web en 1989.</p>
<h2>Qu&#8217;est ce que le XHTML ?</h2>
<p>Le XHTML est une évolution du langage de balisage HTML. Le XHTML garde donc beaucoup de similitude avec le HTML mais il a été remanié de sorte à ce qu&#8217;il réponde aux exigences d&#8217;un document XML.</p>
<h2>Pourquoi utiliser le standard XHTML ?</h2>
<p>- Par ce que XHTML est le standard de balisage actuel.<br />
- Par ce que XHTML est compatible avec les technologies basées sur XML.<br />
- Par ce que XHTML est plus strict et cohérent que HTML et pose donc moins de problèmes d&#8217;affichages.<br />
- Par ce que les navigateurs modernes réagissent mieux avec le XHTML.<br />
- Par ce que le XHTML est portable sur d&#8217;autres agents web (périphériques sans fils, lecteur d&#8217;écran &#8230;).<br />
- Par ce que l&#8217;utilisation du balisage XHTML structuré permet d&#8217;exporter dans les feuilles de style CSS les éléments de présentations, vos pages web sont plus légères et consoment donc moins de bande passante.</p>
<h2>Pourquoi utiliser le standard CSS ?</h2>
<p>- Par ce que CSS est le standard de présentation actuel.<br />
- Par ce que CSS utilisé conjointement à l&#8217;XHTML permet de séparer le contenu de la présentation. Cela augmente la clareté du code et facilite donc sa maintenance.<br />
- Par ce que CSS fait gagner du temps au développeur web. En effet l&#8217;utilisation d&#8217;une feuille de style externe permet de modifier le design d&#8217;un site en ne modifiant qu&#8217;un seul fichier.<br />
- Par ce que les feuilles de styles CSS sont stockées dans le cache des navigateurs et ne sont pas rechargées par le serveur à chaque requête.</p>
<h2>Quels sont les avantages pour le client ?</h2>
<p>- Il fait des économies de bande passante donc d&#8217;argent.<br />
- Son site est plus accessible donc touche un public plus large.<br />
- La maintenance du site est plus aisée donc plus économique.<br />
- Son site est plus optimisé pour faciliter le travail de référencement des moteurs de recherche.<br />
- Son site est mieux préparé au passage des technologies futur du web.<br />
- Son site est plus optimisé pour les navigateurs modernes.</p>
<p><strong>Mes sources</strong></p>
<p>- &laquo;&nbsp;Design Web : utilisez les standards&nbsp;&raquo; &#8211; Jeffrey Zeldman &#8211; Eyrolles</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pixenjoy.com/les-standards-web-i/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
