<?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>DEVBLOG :: Le blog d'Alexandre BALMES, jeune chef de projet &#187; CSS</title>
	<atom:link href="http://dev.pockyworld.com/category/developpement/css/feed" rel="self" type="application/rss+xml" />
	<link>http://dev.pockyworld.com</link>
	<description>Enfin j'essaie</description>
	<lastBuildDate>Wed, 01 Dec 2010 22:24:39 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Gestion des polices exotiques avec CSS3, jQuery et Cufon</title>
		<link>http://dev.pockyworld.com/developpement/css/gestion-des-polices-exotiques-avec-css3-jquery-et-cufon.html</link>
		<comments>http://dev.pockyworld.com/developpement/css/gestion-des-polices-exotiques-avec-css3-jquery-et-cufon.html#comments</comments>
		<pubDate>Sun, 07 Jun 2009 15:23:53 +0000</pubDate>
		<dc:creator>Alexandre</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[css3]]></category>
		<category><![CDATA[cufon]]></category>
		<category><![CDATA[fontavailable]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[sifr]]></category>

		<guid isPermaLink="false">http://dev.pockyworld.com/?p=109</guid>
		<description><![CDATA[Cette semaine nous aborderons le problème de la gestion des polices exotiques (comprendre les polices non-standard) suivant les différents navigateurs. La solution proposée ci-dessous n&#8217;est pas forcément la meilleure sur la question du &#171;&#160;poids de la page&#160;&#187; mais c&#8217;est celle qui d&#8217;après mes essais couvre le plus de navigateurs et cause le moins de problèmes. [...]]]></description>
			<content:encoded><![CDATA[<p>Cette semaine nous aborderons le problème de la gestion des polices exotiques (comprendre les polices non-standard) suivant les différents navigateurs. La solution proposée ci-dessous n&#8217;est pas forcément la meilleure sur la question du &laquo;&nbsp;poids de la page&nbsp;&raquo; mais c&#8217;est celle qui d&#8217;après mes essais couvre le plus de navigateurs et cause le moins de problèmes.</p>

<h3>Qu&#8217;est-ce qu&#8217;une police exotique ?</h3>

<p>Une police exotique est tout simplement une police non-standard. D&#8217;accord, vous n&#8217;êtes pas plus avancé alors qu&#8217;est-ce qu&#8217;une police standard ? C&#8217;est tout simplement une police présente sur tous les systèmes d&#8217;exploitation et prise en charge par tous les navigateurs. La police <em>Arial</em> est une police standard, à contrario la police <em>Helvetica</em> n&#8217;est pas une police standard quant à la police <em>Helvetica Neue</em>, ne cherchez pas à la trouver sur un système d&#8217;exploitation autre que Mac OS.</p>

<p>En partant de ce principe, le webdesigner et l&#8217;intégrateur doivent donc trouver comment faire avec les polices standards et les polices exotiques dans le but d&#8217;atteindre le Saint-Graal, un affichage identique sur tous les navigateurs.</p>

<h3>Les différentes solutions</h3>

<p>Les différentes solutions sont donc relativement simple. Tout d&#8217;abord du coté du webdesigner, il faudra faire au maximum avec les polices standards en ne gardant les polices exotiques que pour les éléments &laquo;&nbsp;statiques&nbsp;&raquo; de votre maquette : logo et navigation par exemple. Seulement cette limite peut être forte pour ceux qui souhaiteraient avoir le titre d&#8217;un article affiché avec une police exotique.</p>

<p>Du coté de l&#8217;intégrateur maintenant, il faudra faire avec la maquette du webdesigner. Tous les éléments statiques pourront être transformés en images et gérés via les sous propriétés de la balise a : a:link, a:visited, a:hover, a:active, &#8211; mémotechnique : LoVe HAte.</p>

<p>Seulement voila, que faire de nos titres utilisant une police exotique et pourtant dynamique ? La aussi plusieurs solutions existent, le remplacement du texte par une image générée via une libraire de type GD ou encore ImageMagick, l&#8217;utilisation de propriétés CSS ou encore le recours à Flash et/ou Javascript. Le tout étant de trouver le moyen convenant au maximum de monde.</p>

<p>Écartons directement l&#8217;utilisation de GD/ImageMagick, cela implique un peu de travail coté développement et l&#8217;intégrateur n&#8217;est pas forcément développeur. Au niveau de CSS, @font-face est une solution proposée du coté de CSS3. Enfin, du coté de flash et de JS, beaucoup d&#8217;entre-vous connaissent la solution sIFR mais beaucoup d&#8217;entre-vous savent aussi que sIFR à quelques problèmes relavant par moment du mysticisme.</p>

<h3>Ma solution : CSS3, jQuery et Cufon</h3>

<p>Passons maintenant à ma solution, elle utilise CSS3 via @font-face, jQuery pour la détection de la présence des polices et Cufon pour le remplacement. Le but, rendre la chose compatible avec le maximum de navigateurs. Pour les détracteurs, oui, si jamais une personne arrive avec Internet Explorer 6 et le javascript désactivé, cela ne fonctionnera pas.</p>

<h4>Première étape : @font-face et CSS3</h4>

<p>La première étape de la solution consiste en l&#8217;utilisation de @font-face. @font-face est une propriété CSS3, cette première étape ne s&#8217;appliquera donc qu&#8217;au navigateur supportant cette propriété CSS3.</p>

<blockquote>Pour information @font-face est en fait une propriété CSS 2 complètement délaissé à l&#8217;époque de CSS 2.1 puis réintroduite via CSS3.</blockquote>

<p>Nous allons donc prendre notre fichier de police, l&#8217;envoyer dans un dossier précis (soyons fou, il se nommera /font/) puis l&#8217;inclure dans notre feuille de style de la façon suivante.</p>


<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;"><span style="color: #a1a100;">@font-face { font-family : 'Ma police exotique';</span>
src<span style="color: #00AA00;">:</span> <span style="color: #993333;">url</span><span style="color: #00AA00;">&#40;</span><span style="color: #ff0000;">'font/mapoliceexotique.ttf'</span><span style="color: #00AA00;">&#41;</span> format<span style="color: #00AA00;">&#40;</span><span style="color: #ff0000;">'truetype'</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span> <span style="color: #00AA00;">&#125;</span></pre></div></div>


<p>Seconde étape, appeler notre police de la façon la plus basique qui soit via la propriété CSS font-family. Nous l&#8217;appellerons pour nos titres h3 dans le div avec l&#8217;identifiant article.</p>


<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;"><span style="color: #cc00cc;">#article</span> h3 <span style="color: #00AA00;">&#123;</span> <span style="color: #000000; font-weight: bold;">font-family</span><span style="color: #00AA00;">:</span> <span style="color: #ff0000;">&quot;Ma police exotique&quot;</span><span style="color: #00AA00;">,</span> arial<span style="color: #00AA00;">,</span> <span style="color: #993333;">sans-serif</span><span style="color: #00AA00;">;</span> <span style="color: #00AA00;">&#125;</span></pre></div></div>


<h4>Seconde étape : cufon</h4>

<p>Passons maintenant aux autres navigateurs, nous utiliserons cufon car après beaucoup d&#8217;essais en condition de production, cufon est la meilleure alternative à sIFR.</p>

<blockquote>Le fonctionnement de cufon : cufon est composé de deux fichiers, le premier est un fichier yui (interface) chargé de traiter le fichier de police en javascript créé via une interface web. cufon s&#8217;implémente via VME sur les vieux navigateurs et via canvas sur les navigateurs plus récents.</blockquote>

<p>Tout d&#8217;abord, télécharger <a href="http://cufon.shoqolate.com/js/cufon-yui.js">le fichier YUI de cufon</a> puis se rendre sur <a href="http://cufon.shoqolate.com/generate/">le site internet de cufon</a> afin de générer un fichier javascript de police. Une fois cela fait, envoyer le tout sur votre serveur dans le repertoire de votre choix (disons /js/).</p>


<div class="wp_syntax"><div class="code"><pre class="html4" style="font-family:monospace;">&lt;script src=&quot;js/cufon-yui.js&quot; type=&quot;text/javascript&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;js/mapoliceexotique.font.js&quot; type=&quot;text/javascript&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;</pre></div></div>


<h4>Troisième étape : jQuery</h4>

<p>Une fois l&#8217;étape 3 terminée, nous pourrions très simplement nous arrêter la mais cela serait un peu bête car l&#8217;étape 1 n&#8217;aurait donc aucun sens. Nous allons donc très simplement utiliser <del datetime="2009-06-07T13:06:47+00:00">notre</del> ma librairie javascript favorite à savoir jQuery ainsi qu&#8217;un plugin pour tester la présence du fichier de police sur l&#8217;ordinateur du visiteur.</p>

<p>Pour cela <a href="http://code.google.com/p/jqueryjs/downloads/detail?name=jquery-1.3.2.min.js">télécharger jQuery</a> (si vous ne l&#8217;utiliser pas déjà pour tous vos effets javascript) puis le plugin <a href="http://jquery-fontavailable.googlecode.com/files/jquery.fontavailable-1.1.min.js">fontavailable</a>. Enfin, envoyer le tout dans votre repertoire /js/ puis inclure le tout.</p>


<div class="wp_syntax"><div class="code"><pre class="html4" style="font-family:monospace;">&lt;script src=&quot;js/jquery-1.3.2.min.js&quot; type=&quot;text/javascript&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;js/jquery.fontavailable-1.1.min.js&quot; type=&quot;text/javascript&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;</pre></div></div>


<p>Passons maintenant au bout de code javascript à intégrer pour utiliser le tout.</p>


<div class="wp_syntax"><div class="code"><pre class="js" style="font-family:monospace;">	&lt;script type=&quot;text/javascript&quot;&gt;
	$(document).ready(function() {
	    if(!$.fontAvailable('Ma police exotique')) {
	      Cufon.replace('#article h3');
	    }
	});
	&lt;/script&gt;</pre></div></div>


<h3>Conclusion</h3>

<p>Passons maintenant au cheminement complet de cette technique :</p>

<ol>
    <li>Le visiteur arrive sur votre site, le dom se charge, la feuille de style css est appelé et essaie d&#8217;appliquer votre police exotique
    <li>Votre visiteur n&#8217;a pas la police exotique
        <ol>
            <li>Il est sur un navigateur supportant @font-face, la police se télécharge.</li>
            <li>Il n&#8217;est pas sur un navigateur supportant @font-face, le document se charge, fontavailable teste la présence de la police et l&#8217;intègre</li>
        </ol>
    </li>
    <li>Votre visiteur a votre police exotique
        <ol>
            <li>Rien ne se passe</li>
        </ol>
    </li>
</ol>

<p>Au final et pour revenir à mon introduction, certains d&#8217;entre-vous pourrons s&#8217;étonner de l&#8217;armada déployée pour l&#8217;occasion (qui n&#8217;est d&#8217;ailleurs pas plus importante que celle utilisée pour une intégration correcte de sIFR) mais le modèle peut être optimisé via fontavailable en ne limitant plus le test au changement de la police mais aussi au téléchargement de cufon-yui.js  et votre fichier *.font.js.</p>
]]></content:encoded>
			<wfw:commentRss>http://dev.pockyworld.com/developpement/css/gestion-des-polices-exotiques-avec-css3-jquery-et-cufon.html/feed</wfw:commentRss>
		<slash:comments>78</slash:comments>
		</item>
		<item>
		<title>BIC : Le framework CSS arrive en 2.7.1</title>
		<link>http://dev.pockyworld.com/developpement/css/bic-le-framework-css-arrive-en-271.html</link>
		<comments>http://dev.pockyworld.com/developpement/css/bic-le-framework-css-arrive-en-271.html#comments</comments>
		<pubDate>Mon, 27 Apr 2009 16:28:31 +0000</pubDate>
		<dc:creator>Alexandre</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[bic]]></category>
		<category><![CDATA[framework]]></category>

		<guid isPermaLink="false">http://dev.pockyworld.com/?p=79</guid>
		<description><![CDATA[Je dois dire que j&#8217;aime beaucoup le titre, un peu comme si tout le monde attendais la nouvelle version de ce framework. BIC, c&#8217;est quoi ? BIC est tout simplement mon framework CSS. Créé en 2006, ce framework se destine avant tout aux intégrateurs et à tout ceux en charge du passage PSD/AI/PDF à une [...]]]></description>
			<content:encoded><![CDATA[<p>Je dois dire que j&#8217;aime beaucoup le titre, un peu comme si tout le monde attendais la nouvelle version de ce framework.</p>

<h3>BIC, c&#8217;est quoi ?</h3>

<p>BIC est tout simplement mon framework CSS. Créé en 2006, ce framework se destine avant tout aux intégrateurs et à tout ceux en charge du passage PSD/AI/PDF à une version xhtml. BIC est donc composé de plusieurs fichiers CSS permettant de gagner un peu (voir beaucoup) de temps en intégration grâce à l&#8217;utilisation de classe conventionnés et faciles à mémoriser. La première mise à disposition du framework c&#8217;est faite avec la version 1.0 avant d&#8217;être totalement abandonnée pour ne plus évoluer qu&#8217;avec moi. La version actuelle est maintenant estampillée 2.7.1 et à totalement été repensée.</p>

<h3>Comment se compose le framework ?</h3>

<p>Il utilise très simplement un fichier CSS d&#8217;appel baptisé screen.css. A l&#8217;intérieur de ce fichier, les appels à d&#8217;autres fichiers CSS permettant d&#8217;ajouter des classes. Chacun des fichiers CSS est documenté avec une table des matières et crédités en conséquence. Le fichier reset.css est par exemple basé sur celui d&#8217;<a href="http://meyerweb.com/eric/tools/css/reset/index.html">Eric Meyer</a>, le fichier grid.css est quant à lui basé sur <a href="http://960.gs/">960.gs</a>.</p>

<h3>Comment installer le framework ?</h3>

<p>Très simple, il suffit de désarchiver l&#8217;archive <strong>bic.tgz</strong> à la racine de votre template ou site. L&#8217;archive créera le fichier d&#8217;appel screen.css et un dossier &laquo;&nbsp;css&nbsp;&raquo; contenant les autres fichiers CSS. Une fois cette étape finie, vous pouvez inclure le framework dans votre structure xhtml ou équivalente.</p>


<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">link</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;screen.css&quot;</span> <span style="color: #000066;">rel</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;stylesheet&quot;</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text/css&quot;</span> <span style="color: #000066;">media</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;screen, projection&quot;</span> <span style="color: #66cc66;">/</span>&gt;</span></pre></td></tr></table></div>


<p>Vous pourrez ensuite ouvrir le fichier screen.css pour créer vos différents style à la suite de ce qui est déjà fait.</p>

<h3>Documentation</h3>

<p>Aucune documentation n&#8217;existe pour le moment, celle-ci étant prévue pour la version 3.0 du framework &#8211; avec un nouveau nom. Le framework à été éprouvé de la façon suivante :</p>

<ul>
<li>Un changement profond du framework est caractérisé par le premier numéro</li>
<li>Un changement mineur ou un ajout est caractérisé par le second numéro</li>
<li>Un correctif est caractérisé par le troisième numéro</li>
</ul>

<p>Vous trouverez cependant de quoi vous documenter (en plus des questions que vous pourrez poser ici) sur mon autre blog ayant servi de labo pour une suite d&#8217;article sur <a href="http://blog.pockyworld.com/tag/css/">la création d&#8217;un site internet</a>.</p>

<p>Pour information la version 2 correspond à une refonte complète du framework, la version 2.7 correspond à un changement au niveau des familles de police et la 2.7.1 à un correctif (faute de frappe) dans une classe.</p>

<h3>Téléchargement</h3>

<p><a href="http://dev.pockyworld.com/wp-content/uploads/2009/04/bic.tgz">BIC version 2.7.1</a> (4 ko)</p>

<h3>Faire un don</h3>

<p><center>
        <form action="https://www.paypal.com/cgi-bin/webscr" method="post">
        <input type="hidden" name="cmd" value="_xclick" />
    <input type="hidden" name="business" value="ab@pockyworld.com" /><input type="hidden" name="item_name" value="" /><input type="hidden" name="currency_code" value="EUR" /><span style="font-size:10.0pt"><strong> </strong></span><br /><br /><select id="amount" name="amount" class=""><option value="1">Un café - 1 euros</option><option value="2">Une bière - 2 euros</option><option value="5">Un mémento - 5 euros</option></select><br /><br /><strong> Your Email Address :</strong><input type="hidden" name="on0" value="Reference" /><br /><br /><input type="text" name="os0" maxlength="60" />
        <br /><br />
        <input type="hidden" name="no_shipping" value="2" />
        <input type="hidden" name="no_note" value="1" />
        <input type="hidden" name="mrb" value="3FWGC6LFTMTUG" />
        <input type="hidden" name="bn" value="IC_Sample" />
    <input type="hidden" name="return" value="http://dev.pockyworld.com" /><input type="image" src="https://www.paypal.com/en_US/i/btn/x-click-but11.gif" name="submit" alt="Make payments with payPal - it's fast, free and secure!" /></form></center></p>
]]></content:encoded>
			<wfw:commentRss>http://dev.pockyworld.com/developpement/css/bic-le-framework-css-arrive-en-271.html/feed</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
	</channel>
</rss>

