<?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>bbxdesign &#187; Tutoriaux</title> <atom:link href="http://bbxdesign.com/cat/tutoriaux/feed/" rel="self" type="application/rss+xml" /><link>http://bbxdesign.com</link> <description>Vestiges d&#039;un CSS Guru</description> <lastBuildDate>Thu, 05 Apr 2012 12:00:32 +0000</lastBuildDate> <language>fr</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.3.1</generator> <item><title>Comprendre le line-height</title><link>http://bbxdesign.com/2012/02/22/comprendre-le-line-height/</link> <comments>http://bbxdesign.com/2012/02/22/comprendre-le-line-height/#comments</comments> <pubDate>Wed, 22 Feb 2012 13:01:41 +0000</pubDate> <dc:creator>Jeremy</dc:creator> <category><![CDATA[Bien développer]]></category> <category><![CDATA[Tutoriaux]]></category> <category><![CDATA[css]]></category> <category><![CDATA[tutoriel]]></category><guid isPermaLink="false">http://bbxdesign.com/?p=1841</guid> <description><![CDATA[Le line-height est une propriété de base très importante mais trop souvent mal utilisée. En fait, elle est très souvent ignorée, ou bien définie approximativement parce qu&#8217;elle concerne l&#8217;espace qu&#8217;occupe le texte. Et visuellement, le texte est difficile à mesurer. Néanmoins, le line-height est essentiel au confort de lecture ainsi qu&#8217;à l&#8217;équilibre spatial d&#8217;une page web. Je [...]]]></description> <content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-1859" title="line-height-et-alignement-vertical" src="http://bbxdesign.com/wp-content/uploads/line-height-et-alignement-vertical.png" alt="" width="500" height="200" /></p><p>Le line-height est une propriété de base très importante mais trop souvent mal utilisée. En fait, elle est très souvent ignorée, ou bien définie approximativement parce qu&#8217;elle concerne l&#8217;espace qu&#8217;occupe le texte. Et visuellement, le texte est difficile à mesurer. Néanmoins, le line-height est essentiel au confort de lecture ainsi qu&#8217;à l&#8217;équilibre spatial d&#8217;une page web.</p><p>Je vais essayer d&#8217;expliquer le peu qu&#8217;il y à comprendre en m&#8217;appuyant sur un élément que vous venez de lire : le titre de mon billet.</p><p><span id="more-1841"></span></p><h3>Le line-height a deux amours</h3><p>Le line-height a principalement 2 objectifs, qui ne sont et ne doivent pas être contradictoires :</p><ol><li>Confort de lecture</li><li>Alignement vertical</li></ol><p>Alors que le confort de lecture s&#8217;établit pour un <em>bloc</em> de texte, l&#8217;alignement vertical s&#8217;établit pour une <em>ligne</em> de texte. <sup class='footnote'><a href='http://bbxdesign.com/2012/02/22/comprendre-le-line-height/#fn-1841-1' id='fnref-1841-1' onclick='return fdfootnote_show(1841)'>1</a></sup></p><p>Le souci est que je vois souvent les intégrateurs négliger le confort de lecture, voire l&#8217;ignorer totalement lorsqu&#8217;il s&#8217;agit d&#8217;alignement vertical. Pourtant, il est facile de jouer sur les deux fronts.</p><h3>Confort de lecture</h3><p>En CSS, le line-height ne définit pas l&#8217;espacement des lignes mais plutôt la <em>hauteur</em> d&#8217;une ligne (ce qui, forcément, définit indirectement leur espacement, mais la nuance est importante). Ainsi, un paragraphe de 3 lignes, dont le line-height est de 16px fera 48px de hauteur. C&#8217;est évident à comprendre non ?</p><h4>Relatif au font-size</h4><p>L&#8217;erreur serait de considérer le font-size pour calculer la hauteur d&#8217;un paragraphe : si un paragraphe a un font-size de 20px, alors chaque ligne fait 20px de haut. FAUX. Le font-size n&#8217;entre pas <em>directement</em> en compte. Le font-size définit uniquement la taille des caractères d&#8217;une police. A vous de le définir à votre guise.</p><p>Le line-height sera néanmoins définit en <em>fonction</em> du font-size. Une règle simple est d&#8217;appliquer un line-height équivalent à <strong>1,4x</strong> le font-size (environ). Prenez le paragraphe que vous êtes en train de lire : le font-size est de 15px (parce que c&#8217;est ce que je voulais tout simplement). Si on multiplie 15 par 1,4, on obtient 21. Mon line-height est en réalité de 22, ce qui est terriblement proche.</p><p>Cette règle peut légèrement varier selon la police utilisée (les polices avec serif apparaissent un peu plus grandes, du coup, un line-height légèrement plus grand est préférable). Mais au final, le confort de lecture se juge surtout à l&#8217;oeil : à vous de juger l&#8217;équilibre font-size/line-height.</p><h4>Titre ≠ paragraphe</h4><p>Les titres sont un cas particulier : en général, le line-height est plus petit, parce que les titres comportent beaucoup moins de lignes (1 seule très souvent, 2 régulièrement, 3 parfois, et rarement + de 3).</p><p>Du coup, le ratio line-height/font-size est très proche de <strong>1</strong>.</p><h3>Alignement vertical</h3><p>L&#8217;alignement vertical s&#8217;effectue à 90% pour les éléments à une seule ligne de texte : boutons, titres, menus.. Il s&#8217;applique donc sur une seule ligne, ou bien la première ligne d&#8217;une série.</p><p>Reprenons mon titre de billet : je veux aligner verticalement le texte de mon titre avec le carré de gauche, qui s&#8217;avère être le format du post (article, lien, image, citation ou brève). Mon carré est placé en premier. C&#8217;est donc le titre qui doit s&#8217;adapter pour être aligné avec le carré.</p><div id="attachment_1853" class="wp-caption alignnone" style="width: 510px"><img class="size-full wp-image-1853" title="alignement-vertical-billets" src="http://bbxdesign.com/wp-content/uploads/alignement-vertical-billets.png" alt="" width="500" height="120" /><p class="wp-caption-text">Alignement vertical FTW</p></div><p>Mon carré fait 40px de haut. La solution de facilité serait d&#8217;appliquer un line-height de 40px : chaque première ligne de mon titre serait alignée verticalement avec le carré, et ce, quel que soit le font-size appliqué. Cette solution serait correcte pour une seule ligne, mais on aurait des soucis dès l&#8217;apparition d&#8217;une deuxième ligne.</p><p>En effet, le font-size de mes titres varie selon le format du post. Du coup, même si un line-height de 40px peut passer pour un font-size de 36px, il sera ridicule pour mon format &#8220;Brève&#8221; qui a un font-size de 17px.</p><div id="attachment_1854" class="wp-caption alignnone" style="width: 510px"><img class="size-full wp-image-1854" title="line-height-ridicule" src="http://bbxdesign.com/wp-content/uploads/line-height-ridicule.png" alt="" width="500" height="170" /><p class="wp-caption-text">Un line-height de 40px avec un font-size de 17px : ça colle pas.</p></div><p>En fait, on aurait fait une erreur dans l&#8217;ordre de définition des propriétés : le line-height doit servir au confort de lecture, avant toute chose. La volonté s&#8217;aligner verticalement ne doit pas se faire au détriment du confort de lecture. Et ce confort de lecture n&#8217;apparaissant qu&#8217;à partir de la deuxième ligne, peut se voir être négligé si l&#8217;on ne travaille que sur une seule ligne.</p><h4>Ordre de définition des propriétés</h4><p>Voici dans quel ordre on doit choisir la valeur des propriétés :</p><blockquote><p>font size -&gt; line-height -&gt; padding-top</p></blockquote><p>A quoi correspond chaque propriété ?</p><ul><li>Font size : la taille des caractères. Il s&#8217;établit selon des critères d&#8217;esthétique, d&#8217;équilibre. Il est défini indépendamment, en premier. A vous de le choisir, judicieusement.</li><li>Line-height : le confort de lecture (uniquement !). Ratio de 1,4 pour des paragraphes, 1 pour des titres.</li><li>Padding-top : c&#8217;est l&#8217;arme secrète qui va nous permettre d&#8217;aligner la première ligne sans compromettre le confort de lecture.</li></ul><p>J&#8217;ai plusieurs formats de post. On va se focaliser sur 3 d&#8217;entre eux :</p><ul><li>Articles : font-size 36px / line-height 36px</li><li>Liens : font-size 28px / line-height 28px</li><li>Brèves : font-size 17px / line-height 24px</li></ul><p>Première chose : maintenant que les line-height ont été établis selon le font-size, on va oublier les font-size. Ils ne sont plus utiles. On va se focaliser sur les line-height qui, eux, rentrent en considération dans l&#8217;alignement vertical.</p><h4>Articles</h4><p>Mes titres d&#8217;articles ont un line-height de 36px, et je veux qu&#8217;ils s&#8217;alignent verticalement dans un espace de 40px. Puisqu&#8217;on ne peut plus toucher au line-height (sous peine de dégrader le confort de lecture), on va décaler le titre vers le bas en haut utilisant du padding-top. Mais de combien ? Et bien de la différence entre line-height et hauteur désignée, divisée par deux. Une image pour expliquer ça ?</p><p><img class="alignnone size-full wp-image-1856" title="line-height-avec-padding-top" src="http://bbxdesign.com/wp-content/uploads/line-height-avec-padding-top.png" alt="" width="500" height="60" /></p><p>Avec un titre qui occupe 36px de haut, il nous faut 2px en haut et 2px en bas pour l&#8217;aligner verticalement avec le carré de 40px.</p><p>Vous remarquerez qu&#8217;à ce stade, le padding-bottom est négligeable. Il pourrait être de 40px qu&#8217;il n&#8217;entrerait pas en compte dans l&#8217;alignement vertical. Du coup, vous pouvez le définir à votre guise. Par exemple, ayant un border-bottom de 1px, j&#8217;ai établi mon padding-bottom à 16px.</p><p>Qu&#8217;en est-il des autres formats ?</p><h4>Liens</h4><p>Les liens que je poste sont moins importants que mes articles. Du coup, leur font-size n&#8217;est qu&#8217;à 28px, et leur line-height aussi. Du coup, le calcul est : (40-28) / 2 = 6px de padding-top.</p><p><img class="alignnone size-full wp-image-1857" title="line-height-lien" src="http://bbxdesign.com/wp-content/uploads/line-height-lien.png" alt="" width="500" height="60" /></p><h4>Brèves</h4><p>La particularité de mes brèves est qu&#8217;il n&#8217;y a pas de titre (ou du moins, il n&#8217;est pas affiché sur mon site). Du coup, c&#8217;est un paragraphe, pas un titre. Le font-size de 17px a généré un line-height de 24px. Calcul rapide : (40-24) / 2 = 8px de padding-top.</p><p><img class="alignnone size-full wp-image-1858" title="line-height-status" src="http://bbxdesign.com/wp-content/uploads/line-height-status.png" alt="" width="500" height="60" /></p><p>Avec cette utilisation simple du padding-top, on aligne la première ligne sans compromettre le confort de lecture établi en amont.</p> ]]></content:encoded> <wfw:commentRss>http://bbxdesign.com/2012/02/22/comprendre-le-line-height/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Colonnes, marges et nth-child en CSS 3</title><link>http://bbxdesign.com/2012/01/24/colonnes-marges-et-nth-child-en-css-3/</link> <comments>http://bbxdesign.com/2012/01/24/colonnes-marges-et-nth-child-en-css-3/#comments</comments> <pubDate>Tue, 24 Jan 2012 12:59:42 +0000</pubDate> <dc:creator>Jeremy</dc:creator> <category><![CDATA[Astuces]]></category> <category><![CDATA[Tutoriaux]]></category> <category><![CDATA[XHTML / CSS]]></category> <category><![CDATA[css]]></category> <category><![CDATA[css3]]></category> <category><![CDATA[math]]></category><guid isPermaLink="false">http://bbxdesign.com/?p=1649</guid> <description><![CDATA[Mail d&#8217;une amie : J&#8217;ai une colle pour toi : 1 &#8211; 4 colonnes de 240px =&#62; largeur totale 960px 2 &#8211; je rajoute un margin-right de 5px et soustrais 5px de la largeur de la colonne =&#62; largeur totale 960px Et pourtant dans le 2ème cas, visuellement la largeur totale est inférieure à 960px. [...]]]></description> <content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-1673" title="colonnes-marges-nth-child-css3" src="http://bbxdesign.com/wp-content/uploads/colonnes-marges-nth-child-css3.png" alt="" width="500" height="200" /></p><p>Mail d&#8217;une amie :</p><blockquote><p>J&#8217;ai une colle pour toi :</p><div>1 &#8211; 4 colonnes de 240px =&gt; largeur totale 960px</div><div>2 &#8211; je rajoute un margin-right de 5px et soustrais 5px de la largeur de la colonne =&gt; largeur totale 960px</div><div></div><div>Et pourtant dans le 2ème cas, visuellement la largeur totale est inférieure à 960px.</div><div></div><div>How is it possible ?</div></blockquote><p>Elle n&#8217;était vraisemblablement pas bien réveillée parce qu&#8217;elle connaissait la réponse, mais je vais développer la méthode ici pour ceux qui auraient des soucis.</p><p><span id="more-1649"></span></p><h3>Largeur totale ≠ largeur utilisée</h3><p>Si vous avez un espace total de 480 pixels de large et que vous y mettez, <strong>côte à côte</strong>, 4 colonnes de <strong>120px</strong> de large, alors tout l&#8217;espace <em>horizontal</em> est rempli.</p><div id="attachment_1664" class="wp-caption alignnone" style="width: 490px"><img class="size-full wp-image-1664" title="colonnes-marges-css-total" src="http://bbxdesign.com/wp-content/uploads/colonnes-sans-marge.png" alt="" width="480" height="160" /><p class="wp-caption-text">120 * 4 = 480</p></div><p>Maintenant, si l&#8217;on diminue la largeur des colonnes jusqu&#8217;à <strong>90px</strong> mais qu&#8217;on rajoute à leur droite <strong>30px</strong> de marge, le compte total ne va pas changer.</p><div id="attachment_1665" class="wp-caption alignnone" style="width: 490px"><img class="size-full wp-image-1665" title="colonnes-avec-marges" src="http://bbxdesign.com/wp-content/uploads/colonnes-avec-marges.png" alt="" width="480" height="180" /><p class="wp-caption-text">(90 + 30) * 4 = 480</p></div><p>Le souci, c&#8217;est la <span style="color: #ff0000;"><strong>dernière marge à droite</strong></span>. Elle rentre dans le calcul des 480px de large, mais <em>visuellement</em>, c&#8217;est du <strong>vide</strong>.</p><h3>n colonnes, n-1 marges</h3><p>Quel que soit le nombre de colonnes, le nombre de marges sera toujours inférieur de 1.<br /> Pour <strong>n</strong> colonnes on a bien <strong>n-1</strong> marges.</p><p>Ce que l&#8217;on veut : <strong>supprimer la dernière marge à droite</strong>. <sup class='footnote'><a href='http://bbxdesign.com/2012/01/24/colonnes-marges-et-nth-child-en-css-3/#fn-1649-1' id='fnref-1649-1' onclick='return fdfootnote_show(1649)'>1</a></sup></p><h4>nth child : le sélecteur providentiel</h4><p>Au lieu d&#8217;appliquer une classe à la dernière colonne de chaque ligne, on va utiliser la fabuleuse pseudo-classe CSS 3 <strong><a href="http://www.w3.org/TR/css3-selectors/#nth-child-pseudo">:nth-child</a></strong>.</p><p>Dans mon exemple, on veut virer la marge de chaque colonne <strong>multiple de 4</strong>.<br /> Il faut faire :</p><pre>.column:nth-child(4n){ margin-right:0;}</pre><p>En fait, le nombre <em>n</em> correspond à un nombre qui va <strong>incrémenter</strong> indéfiniment, en commençant par 1. Donc on a :</p><ul><li>4*1 = 4 (la 4e colonne)</li><li>4*2 = 8 (la 8e colonne)</li><li>4*3&#8230;</li></ul><p>Il permet donc de sélectionner toutes les colonnes multiples de 4.</p><p>Etant donné que nth-child <a href="http://www.caniuse.com/#search=nth">n&#8217;est pas supporté</a> par IE6, IE7 et IE8, il vous sera sans doute nécessaire d&#8217;utiliser plutôt une classe &#8220;last&#8221; sur la dernière colonne de chaque ligne.</p><h3>Calcul des largeurs optimales</h3><p>Comment être sûr d&#8217;occuper <em>totalement</em> l&#8217;espace horizontal disponible ? En d&#8217;autres termes, comment faire en sorte que :</p><blockquote><p>largeur totale des colonnes<br /> + largeur totale des marges<br /> = largeur totale du conteneur</p></blockquote><p>Ici, je veux que que mes <strong>4</strong> colonnes fassent 90px de large.<br /> Largeur totale des colonnes = 90*4 = 360px.<br /> Il reste donc 480-360 = 120px pour <strong>3</strong> marges.<br /> <em>Chaque</em> marge fera donc 120/3 = <strong>40px</strong> de large.</p><p><img class="alignnone size-full wp-image-1675" title="colonnes-marges-optimales" src="http://bbxdesign.com/wp-content/uploads/colonnes-marges-optimales.png" alt="" width="480" height="180" /></p><p>Ici, le compte est bon, j&#8217;ai envie de dire.<br /> Toutes les colonnes ont la même largeur, et les marges aussi, et la largeur utilisée est égale à la largeur totale.<br /> L&#8217;utilisation de l&#8217;espace est donc <strong>optimale</strong>.</p><h4>Trouver facilement les valeurs optimales</h4><p>Imaginons des colonnes qui font <strong>85</strong>px de large.</p><ul><li>Largeur totale des colonnes = 85*4 = <strong>340</strong>px</li><li>Largeur restante pour les marges = 480 &#8211; 340 = <strong>140</strong>px</li><li>Largeur de chaque marge = 140/3 = <strong>46,6666666666666666666667</strong></li></ul><p>Le drame ! Bien sûr, on pourrait essayer de trouver la solution en <span style="color: #ff0000;"><strong>tâtonnant</strong></span>, en testant 86, puis 84, puis 87&#8230; Quelle perte de temps !</p><p>Pour calculer la largeur optimale, voici la <span style="color: #339966;"><strong>règle</strong></span> :</p><blockquote><p>La marge gagnée sur chaque colonne doit être un multiple du nombre de marges.</p></blockquote><p>Ok. Alors, repartons au début. On avait 4 colonnes à <strong>120px de large</strong><em> et</em> <strong>0px de marge</strong>.<br /> On a <strong>3</strong> marges, donc faut procéder par <em>palier</em> de <strong>3</strong>px :</p><ul><li>120 &#8211; 0 = 120px</li><li>120 &#8211; 3 = 117px (de large pour une colonne)</li><li>120 &#8211; 6 = 114px</li><li>&#8230;</li><li>120 &#8211; 30 = 90px (notre exemple)</li><li>120 &#8211; 33  = 87px</li><li>120 &#8211; 36 = 84px</li></ul><p>Du coup, on voit bien que <span style="color: #ff0000;"><strong>85</strong></span>px de large pour une colonne, c&#8217;est pas bon. Il faut choisir soit <span style="color: #339966;"><strong>87</strong></span>px ou bien <span style="color: #339966;"><strong>84</strong></span>px.</p><p>Prenons <strong>84</strong>px qui est le plus proche :</p><ul><li>colonnes = 84*4 = <strong>336</strong>px</li><li>marge totale = 480-336 = 144px</li><li>chaque marge = 144/3 = <strong>48</strong>px</li></ul><p>Avec des colonnes à 84px de large et des marges à 48px de large, l&#8217;espace horizontal de 480px est utilisé en <strong>entier</strong>.</p> ]]></content:encoded> <wfw:commentRss>http://bbxdesign.com/2012/01/24/colonnes-marges-et-nth-child-en-css-3/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>WordPress : le Tutoriel pour créer un site de A à Z</title><link>http://bbxdesign.com/2011/11/23/tutoriel-wordpress-gratuit/</link> <comments>http://bbxdesign.com/2011/11/23/tutoriel-wordpress-gratuit/#comments</comments> <pubDate>Tue, 22 Nov 2011 23:15:43 +0000</pubDate> <dc:creator>Jeremy</dc:creator> <category><![CDATA[Best Of]]></category> <category><![CDATA[Tutoriaux]]></category> <category><![CDATA[XHTML / CSS]]></category> <category><![CDATA[tutoriel]]></category> <category><![CDATA[wordpress]]></category><guid isPermaLink="false">http://bbxdesign.com/?p=1333</guid> <description><![CDATA[Après mon tutoriel CSS : l&#8217;Art et la Science, voici un tutoriel sur l&#8217;autre partie importante de mon expérience d&#8217;intégrateur : WordPress le Tutoriel. Je considère mes connaissances comme étant open-source. Et, de peur de les voir perdues à jamais, je préfère les écrire et les faire partager gratuitement avec la communauté des intégrateurs que [...]]]></description> <content:encoded><![CDATA[<p><a href="http://wordpress.bbxdesign.com"></a><a href="http://wordpress.bbxdesign.com/"><img class="alignnone size-full wp-image-1338" title="Tutoriel et thème gratuits pour WordPress" src="http://bbxdesign.com/wp-content/uploads/tutoriel-theme-gratuit-wordpress.png" alt="" width="500" height="300" /></a></p><p><a href="http://wordpress.bbxdesign.com/"></a>Après mon tutoriel <a href="http://css.steaw.com/">CSS : l&#8217;Art et la Science</a>, voici un tutoriel sur l&#8217;autre partie importante de mon expérience d&#8217;intégrateur : <strong><a title="Créer un site de A à Z" href="http://wordpress.bbxdesign.com/">WordPress le Tutoriel</a></strong>.</p><p>Je considère mes connaissances comme étant <em>open-source</em>. Et, de peur de les voir perdues à jamais, je préfère les écrire et les faire partager gratuitement avec la communauté des intégrateurs que nous sommes.</p><p>Ce tutoriel WordPress vous aidera à créer vous-même <strong>votre propre thème WordPress</strong>, mais contient aussi un <strong>thème WordPress vide gratuit</strong> sur lequel vous pouvez vous baser.</p> ]]></content:encoded> <wfw:commentRss>http://bbxdesign.com/2011/11/23/tutoriel-wordpress-gratuit/feed/</wfw:commentRss> <slash:comments>7</slash:comments> </item> <item><title>CSS : l&#8217;Art &amp; la Science</title><link>http://bbxdesign.com/2011/09/19/css-lart-la-science/</link> <comments>http://bbxdesign.com/2011/09/19/css-lart-la-science/#comments</comments> <pubDate>Mon, 19 Sep 2011 19:04:36 +0000</pubDate> <dc:creator>Jeremy</dc:creator> <category><![CDATA[Tutoriaux]]></category> <category><![CDATA[XHTML / CSS]]></category><guid isPermaLink="false">http://bbxdesign.com/?p=1327</guid> <description><![CDATA[Il est des connaissances que l&#8217;on veut transmettre telles qu&#8217;on les ressent. Celle des CSS que j&#8217;ai acquise au fil des ans est celle que je souhaite à présent léguer à travers une histoire peu commune mais très ludique. Que vous soyez novice ou qualifié, l&#8217;Art &#38; la Science saura je l&#8217;espère vous apporter un [...]]]></description> <content:encoded><![CDATA[<p><a href="http://css.steaw.com/"><img class="alignnone size-full wp-image-1328" title="Place au tutoriel CSS complet et ludique" src="http://bbxdesign.com/wp-content/uploads/tutoriel-css-ludique.png" alt="" width="500" height="300" /></a></p><p>Il est des connaissances que l&#8217;on veut transmettre telles qu&#8217;on les ressent. Celle des CSS que j&#8217;ai acquise au fil des ans est celle que je souhaite à présent léguer à travers une histoire peu commune mais très ludique.</p><p>Que vous soyez novice ou qualifié, <a href="http://css.steaw.com/">l&#8217;Art &amp; la Science</a> saura je l&#8217;espère vous apporter un <em>savoir </em>mais aussi (et peut-être avant tout) une <em>conception </em>des CSS. Mon intention est de vous faire parvenir la perception clairvoyante d&#8217;une compétence vivante et expressive qui saura séduire celui qui l&#8217;embrassera.</p> ]]></content:encoded> <wfw:commentRss>http://bbxdesign.com/2011/09/19/css-lart-la-science/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Introduction à WordPress 3 : custom post type et custom taxonomy</title><link>http://bbxdesign.com/2010/05/31/introduction-a-wordpress-3-custom-post-type-et-custom-taxonomy/</link> <comments>http://bbxdesign.com/2010/05/31/introduction-a-wordpress-3-custom-post-type-et-custom-taxonomy/#comments</comments> <pubDate>Mon, 31 May 2010 08:00:01 +0000</pubDate> <dc:creator>Jeremy</dc:creator> <category><![CDATA[Astuces]]></category> <category><![CDATA[Best Of]]></category> <category><![CDATA[Bien développer]]></category> <category><![CDATA[Logiciels]]></category> <category><![CDATA[Tutoriaux]]></category> <category><![CDATA[taxonomy]]></category> <category><![CDATA[tutoriel]]></category> <category><![CDATA[wordpress]]></category> <category><![CDATA[wp3]]></category><guid isPermaLink="false">http://bbxdesign.com/?p=1248</guid> <description><![CDATA[J&#8217;ai écrit un tutoriel complet pour réaliser un thème WordPress de A à Z.Il est plus récent et parle aussi des Custom Post Type et Custom Taxonomy. Du coup, je vous invite à aller le lire. WordPress vient d&#8217;annoncer une Release Candidate pour la version 3. J&#8217;ai pour ma part installé et mis en prod [...]]]></description> <content:encoded><![CDATA[<p class="focus">J&#8217;ai écrit un <strong>tutoriel complet</strong> pour <a href="http://wordpress.bbxdesign.com/">réaliser un thème WordPress de A à Z</a>.<br />Il est plus récent et parle aussi des Custom Post Type et Custom Taxonomy. Du coup, je vous invite à aller le lire.</p><p><strong>WordPress </strong>vient d&#8217;annoncer une <a href="http://wordpress.org/development/2010/05/wordpress-3-0-release-candidate/">Release Candidate pour la version 3</a>. J&#8217;ai pour ma part installé et mis en prod la <a href="http://wordpress.org/development/2010/05/wordpress-3-0-beta-2/">version Beta 2</a> qui, ma foi, est très stable. Si vous comptez l&#8217;installer, allez-y! Les mises à jour se font comme les WP actuellement, c&#8217;est à dire automatiquement. Et le système de template pour les thèmes est identique donc vos thèmes marcheront sans souci! Le seul souci est qu&#8217;il n&#8217;y a pas de version française encore mais bon, c&#8217;est uniquement pour l&#8217;admin qui est vraiment très simple en anglais.</p><h3>Nouveautés WordPress 3</h3><p>Dans les nouveautés, il y a :</p><ul><li>choisir son <strong>login </strong>et son <strong>mot de passe </strong>: au lieu d&#8217;avoir &#8220;admin&#8221; et un mot de passe généré automatiquement, on peut les choisir soi-même.</li><li>un nouveau thème par défaut, bourré de nouvelles fonctions et qu&#8217;on va customiser dans ce tutoriel</li><li>custom background : un outil dans l&#8217;admin pour pouvoir choisir un fond pour le site. Si vous développez des thèmes vous même, ça vous est inutile.</li><li><strong>Multi-sites</strong>! En fait, WordPress et WordPress µ ont fusionné : il est donc possible avec 1 seule installation WP de mettre en place autant de blogs différents que l&#8217;on veut. Par exemple : <strong>css</strong>.bbxdesign.com pour un blog de CSS, <strong>inspiration</strong>.bbxdesign.com pour un blog d&#8217;inspiration etc.</li><li>Custom Post Types</li><li>Custom Taxonomies</li></ul><p>Je vais développer ces 2 derniers points car ils sont les plus intéressants.<br /> <span id="more-1248"></span></p><h3>Custom Post Types : vos propres Posts et Pages</h3><p>Si vous utilisez WP, vous savez qu&#8217;il y a 2 grand types d&#8217;éléments pour poster :</p><ul><li><strong>Posts </strong>: ce sont les billets du blogs rangés chronologiquement. Ils peuvent être dans des Catégories et avoir des Tags.</li><li><strong>Pages </strong>: ce sont des pages contenant du contenu fixe et intemporel. Il n&#8217;y a pas de notion de chronologie, ni de catégorie, ni de tags. Il y a uniquement une notion de hiérarchie (relation page parent/page enfant).</li></ul><p>Si vous avez un blog, ces 2 types d&#8217;éléments sont parfaitement suffisants. Vous créez des billets avec les Posts et vous ajoutez une page &#8220;A propos&#8221; et &#8220;Contact&#8221; avec les Pages.</p><p>Mais imaginons qu&#8217;en plus de ça, vous voulez une catégorie <strong>Portfolio </strong>qui regroupe vos plus beaux travaux, avec un screenshot, une description et quelques infos sur le client. Comment faire ? Vous pouvez créer des Posts que vous classerez dans une catégorie &#8220;Portfolio&#8221;. Mais c&#8217;est non seulement fastidieux à mettre en place dans votre thème mais c&#8217;est aussi fastidieux à gérer dans l&#8217;admin.</p><p>On va donc créer un autre type de post : les &#8220;<strong>Projets</strong>&#8220;. Pour ça, on va utiliser le fichier functions.php.</p><h4>Une fonction pour customiser l&#8217;admin</h4><p>On va regrouper tout notre code dans une fonction qui sera appelée à l&#8217;initialisation de l&#8217;admin. Comme ça, lorsqu&#8217;on lance l&#8217;admin, on activera toutes les fonctions décrites dans my_custom_init :</p><pre>add_action('init', 'my_custom_init');
function my_custom_init()
{
/* notre code PHP pour rajouter les custom post type */
}</pre><p><strong><span style="color: #ff0000;">Tout le code que je vais écrire maintenant devra être inclus dans la fonction my_custom_init</span></strong>.</p><h4>Déclarer le Custom Post Type</h4><p>Maintenant nous allons rajouter l&#8217;élément &#8220;Projet&#8221; dans notre admin :</p><pre>register_post_type('projet', array(
 'label' =&gt; __('Projets'),
 'singular_label' =&gt; __('Projet'),
 'public' =&gt; true,
 'show_ui' =&gt; true,
 'capability_type' =&gt; 'post',
 'hierarchical' =&gt; false,
 'supports' =&gt; array('title', 'author', 'thumbnail')
));</pre><p>Il faut utiliser la <a href="http://codex.wordpress.org/Function_Reference/register_post_type">fonction register_post_type</a> qui porte bien son nom : elle enregistre un nouvel élément, un nouveau type de Post. Il y a ensuite plusieurs paramètres. Ils n&#8217;y sont pas tous parce que beaucoup sont optionnels. J&#8217;ai mis les plus importants :</p><ul><li>&#8216;projet&#8217; correspond au nom du nouvel élément. Il sera utilisé dans les fichiers de template.</li><li>&#8216;label&#8217; est le nom qu&#8217;on retrouvera dans la colonne de gauche de l&#8217;admin. Il est préférable de mettre un pluriel.</li><li>&#8216;singular_label&#8217; est l&#8217;équivalent au singulier</li><li>&#8216;public&#8217; définit si les posts seront publics ou non.</li><li>&#8216;show_ui&#8217; définit si ce nouvel élément apparaît dans l&#8217;admin</li><li>&#8216;capability_type&#8217; définit si le nouvel élément est identique à un Post classique ou à une Page classique. Ici on veut un titre et une image miniature donc Post. En général, les Posts sont beaucoup plus intéressants car ils ont davantage de fonctions que les Pages.</li><li>&#8216;hierarchical&#8217; définit si il peut y avoir une hiérarchie (comme pour les Pages). Ici, c&#8217;est non car chaque élément est au même niveau.</li><li>&#8216;supports&#8217; est un array qui définit quels éléments d&#8217;un Post normal on veut avoir. Ici je veux juste le titre, l&#8217;auteur du Post et une miniature. Il y a pleins d&#8217;autres éléments :<ul><li> &#8216;title&#8217;</li><li> &#8216;editor&#8217; (la fenêtre principale de contenu)</li><li> &#8216;author&#8217;</li><li> &#8216;thumbnail&#8217;</li><li> &#8216;excerpt&#8217;</li><li> &#8216;trackbacks&#8217;</li><li> &#8216;custom-fields&#8217;</li><li> &#8216;comments&#8217;</li><li> &#8216;revisions&#8217; (la sauvegarde automatique de versions passées)</li><li> &#8216;page-attributes&#8217; (choix de template pour les pages et gestion de la hiérarchie)</li></ul></li></ul><p>Pour avoir les <strong>thumbnails </strong>dans votre thème, il faut ajouter dans functions.php :</p><pre>add_theme_support( 'post-thumbnails' );</pre><p>Merci à <a href="http://bbxdesign.com/2010/05/31/introduction-a-wordpress-3-custom-post-type-et-custom-taxonomy/comment-page-1/#comment-1554">benoit</a> pour m&#8217;avoir rappelé de mettre cette astuce.</p><p>Si vous avez tout bien fait vous devriez voir :</p><p><img class="alignnone size-full wp-image-1249" title="wordpress-custom-post-type" src="http://bbxdesign.com/wp-content/uploads/wordpress-custom-post-type.png" alt="" width="166" height="129" /></p><p>Vous pouvez maintenant créer un nouveau projet en cliquant sur &#8220;Add New&#8221;</p><p><a href="http://bbxdesign.com/wp-content/uploads/wordpress-3-custom-post-type-new.png"><img class="alignnone size-medium wp-image-1253" title="wordpress-3-custom-post-type-new" src="http://bbxdesign.com/wp-content/uploads/wordpress-3-custom-post-type-new-500x222.png" alt="" width="500" height="222" /></a></p><p>Whaaa, c&#8217;est vide! Eh oui : on a juste mis &#8220;title&#8221;, &#8220;author&#8221; et &#8220;thumbnail&#8221;. Et c&#8217;est tout ce dont on a besoin! Hop je rajoute un Projet &#8220;bbxdesign&#8221; avec un screenshot :</p><p><a href="http://bbxdesign.com/wp-content/uploads/bbxdesign-wordpress-3-nouveau-projet.png"><img class="alignnone size-medium wp-image-1254" title="bbxdesign-wordpress-3-nouveau-projet" src="http://bbxdesign.com/wp-content/uploads/bbxdesign-wordpress-3-nouveau-projet-499x267.png" alt="" width="499" height="267" /></a></p><p>Ok c&#8217;est cool, j&#8217;ai réussi à rajouter un nouveau projet! Ca marche nickel dans l&#8217;admin. Sauf que pour l&#8217;instant, j&#8217;ai rien qui s&#8217;affiche dans le blog!</p><h4>Afficher les Custom Post Type</h4><p>Sur votre blog (sur la home par exemple), dans la boucle des posts, il y a actuellement les <strong>Posts </strong>normaux. Mais nous on veut afficher les <strong>Projets</strong>! Pour ça, il faut faire un query_posts avec comme post_type le mot &#8220;projet&#8221;. Sur index.php par exemple, mettez :</p><pre>&lt;?php
$home_paged = (get_query_var('paged'));
$arguments = array(
 'post_type' =&gt; 'projet',
 'post_status' =&gt; 'publish',
 'paged' =&gt; $home_paged
);
query_posts($arguments);
get_template_part( 'loop', 'index' );
?&gt;</pre><p>Le $home_paged est une astuce qui permet de récupérer la valeur de la page courante et ainsi éviter de casser la pagination! Ensuite vient un array d&#8217;arguments : post_type en projet, post_status en publish (pour éviter d&#8217;afficher les brouillons) et page avec la variable.<br /> Ensuite on fait le query_posts avec ces options puis on appelle la boucle avec get_template_part. Il faut savoir que get_template_part est une nouvelle fonction de WordPress 3 qui permet d&#8217;inclure d&#8217;autres fichiers php. Ici on appelle le fichier loop.php. C&#8217;est d&#8217;ailleurs très pratique pour éviter de copier-coller la boucle WP dans plusieurs fichiers.</p><p>Si vous ouvrez le fichier <strong>loop.php</strong> du thème &#8220;twentyten&#8221;, vous verrez qu&#8217;il est vraiment très long. On va tout virer et mettre juste un peu de code pour la home, histoire de vous montrer facilement comment afficher les éléments pour un projet. Nous, tout ce qu&#8217;on veut, c&#8217;est afficher le titre (c&#8217;est à dire le nom du projet), ainsi que la miniature.</p><pre>&lt;?php while ( have_posts() ) : the_post(); ?&gt;
 &lt;div id="post-&lt;?php the_ID(); ?&gt;" &lt;?php post_class(); ?&gt;&gt;
 &lt;h2&gt;&lt;?php the_title(); ?&gt;&lt;/h2&gt;
 &lt;?php the_post_thumbnail(); ?&gt;
 &lt;/div&gt;
&lt;?php endwhile; ?&gt;</pre><p>Donc là, c&#8217;est très simple. On met la div avec le bon id et la bonne classe, on met le nom du projet (the_title) et l&#8217;image (the_post_thumbnail) et ça donne :</p><p><a href="http://bbxdesign.com/wp-content/uploads/wordpress-3-custom-portfolio.png"><img class="alignnone size-medium wp-image-1256" title="wordpress-3-custom-portfolio" src="http://bbxdesign.com/wp-content/uploads/wordpress-3-custom-portfolio-500x240.png" alt="" width="500" height="240" /></a></p><p>J&#8217;ai pris le thème de base &#8220;twentyten&#8221; et j&#8217;ai donc customisé les fichiers index.php et loop.php. La home contient donc des Projets et non pas des Posts. Mais vu que j&#8217;ai les 2, je peux faire une page /blog où j&#8217;aurais tous mes Posts!</p><p>Maintenant vous pouvez ajouter des projets à la volée, virer la sidebar, le header et gérer <strong>une partie Blog avec les Posts et une partie Portfolio avec les Projets.</strong></p><h3>Custom Taxonomy : de nouvelles catégories et de nouveaux tags</h3><p>Derrière ce nom barbare de &#8220;Taxonomy&#8221; se cache tout simplement les Catégories et les Tags. Avec WordPress 3, vous pouvez créer d&#8217;autres taxonomies. Imaginons qu&#8217;avec ce Portfolio vous voulez ajouter 2 choses :</p><ul><li>le <strong>type </strong>de projet : un logo, un site vitrine, une animation flash&#8230;.</li><li>les <strong>couleurs </strong>utilisées</li></ul><p>On pourrait utiliser les Catégories et les Tags, mais elles sont déjà utilisées par les Posts pour le Blog! On va donc créer d&#8217;autres catégories et d&#8217;autres tags, exclusivement pour le Portfolio.</p><pre>register_taxonomy( 'type', 'projet', array( 'hierarchical' =&gt; true, 'label' =&gt; 'Type', 'query_var' =&gt; true, 'rewrite' =&gt; true ) );
register_taxonomy( 'couleur', 'projet', array( 'hierarchical' =&gt; false, 'label' =&gt; 'Couleur', 'query_var' =&gt; true, 'rewrite' =&gt; true ) );</pre><p>On utilise la <a href="http://codex.wordpress.org/Function_Reference/register_taxonomy">fonction register_taxonomy</a>. Dans l&#8217;ordre on choisit</p><ul><li>le nom de la taxonomie</li><li>l&#8217;élément auquel il s&#8217;applique (ça peut être &#8216;post&#8217;, &#8216;page&#8217; ou un post type qu&#8217;on a créé, en l&#8217;occurence &#8216;projet&#8217;)</li><li>&#8216;hierarchical&#8217; definit si il y a une relation parent/enfant. Si oui, c&#8217;est comme les Catégories. Si non, c&#8217;est comme les Tags.</li><li>&#8216;label&#8217; c&#8217;est le nom plus descriptif qui s&#8217;affichera dans l&#8217;admin</li><li>&#8216;query_var&#8217; à mettre sur true pour qu&#8217;on puisse appeler cette taxonomie dans nos templates</li><li>&#8216;rewrite&#8217; c&#8217;est la chaîne de caractères présente dans les permaliens. Si on met &#8220;true&#8221;, ça prend la valeur par défaut, c&#8217;est à dire le nom de la taxonomie.</li></ul><p>(Bien sûr, tout ceci est toujours à mettre dans la fonction my_custom_init commencée tout à l&#8217;heure.)</p><p>Si vous rechargez l&#8217;admin, vous voyez par magie :</p><p><img class="alignnone size-full wp-image-1259" title="custom-taxonomy-type-couleur" src="http://bbxdesign.com/wp-content/uploads/custom-taxonomy-type-couleur.png" alt="" width="153" height="124" /></p><p><a href="http://bbxdesign.com/wp-content/uploads/custom-taxonomy-nouveau-projet.png"><img class="alignnone size-medium wp-image-1260" title="custom-taxonomy-nouveau-projet" src="http://bbxdesign.com/wp-content/uploads/custom-taxonomy-nouveau-projet-500x302.png" alt="" width="500" height="302" /></a></p><p>J&#8217;ai déplacé les blocs &#8220;Type&#8221; et &#8220;Couleur&#8221; à gauche pour que ce soit plus lisible. Maintenant vous pouvez ajouter le type &#8220;animation flash&#8221;, &#8220;logo&#8221;, &#8220;direction artistique&#8221;&#8230; et les couleurs &#8220;vert&#8221;, &#8220;orange&#8221;, &#8220;bleu&#8221;&#8230; Ca ressemble à peu près à ce qui ai fait sur <a href="http://www.steaw-webdesign.com/en">Steaw Web Design</a> (sauf qu&#8217;on utilise des sous-catégories).</p><h4>Afficher les Custom Taxonomies dans le thème</h4><p>Ok c&#8217;est cool, vous avez vos Custom Taxonomies dans l&#8217;admin. Maintenant faut les afficher dans le thème! On va reprendre le fichier loop.php de tout à l&#8217;heure et rajouter ça :</p><pre>&lt;?php while ( have_posts() ) : the_post(); ?&gt;
 &lt;div id="post-&lt;?php the_ID(); ?&gt;" &lt;?php post_class(); ?&gt;&gt;
 &lt;h2&gt;&lt;?php the_title(); ?&gt;&lt;/h2&gt;
 &lt;?php echo get_the_term_list( $post-&gt;ID, 'type', '&lt;p&gt;Type de projet : ', ', ', '&lt;/p&gt;' ) ?&gt;
 &lt;?php the_post_thumbnail(); ?&gt;
 &lt;?php echo get_the_term_list( $post-&gt;ID, 'couleur', '&lt;p&gt;Couleurs : ', ', ', '&lt;/p&gt;' ) ?&gt;
 &lt;/div&gt;
&lt;?php endwhile; ?&gt;</pre><p>On utilise la fonction get_the_term_list pour afficher les taxonomies du post courant ($post-&gt;ID). C&#8217;est dans un paragraphe, et les éléments sont séparés par des virgules. En fait, la <strong>taxonomie </strong>c&#8217;est l&#8217;ensemble de la liste (ex: &#8220;Couleurs&#8221;) et <strong>terme </strong>c&#8217;est chaque élément de la liste (ex: &#8220;orange&#8221;, &#8220;vert&#8221;).</p><p>Visuellement, ça donne ça :</p><p><a href="http://bbxdesign.com/wp-content/uploads/custom-taxonomies-portfolio.png"><img class="alignnone size-medium wp-image-1261" title="custom-taxonomies-portfolio" src="http://bbxdesign.com/wp-content/uploads/custom-taxonomies-portfolio-500x262.png" alt="" width="500" height="262" /></a></p><p>Vous remarquerez que ça crée des liens pour chaque terme. En cliquant dessus, on arrive à une archive. En local, j&#8217;arrive pas à le faire marcher mais ça fonctionne sur mon <a href="http://www.jukepod.fr/annee/2004">JukePod pour l&#8217;année 2004 </a>par exemple.</p><h3>Conclusion</h3><p>Avec les custom post type et les custom taxonomy, vous pouvez créer plusieurs &#8220;flux&#8221; sur votre site, comme par exemple un blog et un portfolio, sans avoir à mélanger les deux ou à s&#8217;embêter avec des sous-catégories.</p><p>Par exemple, pour le blog Steaw et le portfolio Steaw, on a du créer 2 WordPress différents avec d&#8217;un côté des Posts, des Catégories, des Tags et de l&#8217;autre&#8230; ben pareil : des Posts, des Catégories, des Tags! On le ferait aujourd&#8217;hui, on utiliserait le custom post type Projet pour le Portfolio. Il y a même un gars qui a fait un <a href="http://justintadlock.com/archives/2009/06/04/using-custom-taxonomies-to-create-a-movie-database">IMDB avec WordPress 3</a>&#8230;</p><p>Sources : <a href="http://net.tutsplus.com/tutorials/wordpress/10-features-to-look-forward-to-in-wordpress-3-0">Nettuts</a> et <a href="http://kovshenin.com/archives/custom-post-types-in-wordpress-3-0/">kovshenin</a></p> ]]></content:encoded> <wfw:commentRss>http://bbxdesign.com/2010/05/31/introduction-a-wordpress-3-custom-post-type-et-custom-taxonomy/feed/</wfw:commentRss> <slash:comments>76</slash:comments> </item> <item><title>bbxtut01 = menu 100% CSS vert</title><link>http://bbxdesign.com/2007/11/30/bbxtut01-menu-100-css-vert/</link> <comments>http://bbxdesign.com/2007/11/30/bbxtut01-menu-100-css-vert/#comments</comments> <pubDate>Fri, 30 Nov 2007 18:44:13 +0000</pubDate> <dc:creator>Jeremy</dc:creator> <category><![CDATA[Tutoriaux]]></category> <category><![CDATA[XHTML / CSS]]></category> <category><![CDATA[css]]></category> <category><![CDATA[menu]]></category> <category><![CDATA[tutoriel]]></category><guid isPermaLink="false">http://bbxdesign.com/xthml-css/bbxtut01-menu-100-css-vert</guid> <description><![CDATA[Pour un premier tutoriel je vais reprendre celui que j&#8217;ai fait pour un autre site ( CSS Only Design ). C&#8217;est un menu totalement en CSS, histoire de montrer ce dont les CSS sont capables. Evidemment, il fonctionne sur les 5 principaux navigateurs, à savoir : IE6, IE7, FF, Opera et Safari. Vous pouvez l&#8217;utiliser [...]]]></description> <content:encoded><![CDATA[<p>Pour un premier tutoriel je vais reprendre celui que j&#8217;ai fait pour un autre site ( <a href="http://www.cssonlydesign.com">CSS Only Design</a> ). C&#8217;est un menu <strong>totalement en CSS</strong>, histoire de montrer ce dont les CSS sont capables. Evidemment, il fonctionne sur les 5 principaux navigateurs, à savoir : IE6, IE7, FF, Opera et Safari. Vous pouvez l&#8217;utiliser pour votre site si vous le voulez, j&#8217;apprécierais cependant un lien vers l&#8217;auteur. Voici le résultat obtenu.<br /> <a href="http://bbxdesign.com/single/tutorial/bbxtut01.html"><img class="alignnone" title="bbxtut01" src="http://bbxdesign.com/single/tutorial/bbxtut01.gif" alt="" width="402" height="38" /></a> <span id="more-15"></span></p><h2>Le code HTML</h2><p>Ici rien de plus simple, une simple liste fait l&#8217;affaire, avec un id pour toute la liste.</p><pre>&lt;ul id="tut01"&gt;
	&lt;li&gt;&lt;a href="#"&gt;&lt;span&gt;Accueil&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="#"&gt;&lt;span&gt;Tutoriaux&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="#"&gt;&lt;span&gt;Portfolio&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="#"&gt;&lt;span&gt;A propos&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</pre><h2>Le code CSS</h2><p>Ici, le but est de faire en sorte que le menu aie un look sympa (un style noir) et qu&#8217;en passant le curseur par dessus il devienne vert. Tout est une question de couleurs. Il faut tester les couleurs sous Photoshop par exemple et les changer à votre guise. Etant donné que les CSS ne gèrent pas les dégradés, il faut jouer sans. A la base, c&#8217;est un défi (utiliser uniquement des CSS). Et au final il y a 2 contraintes :</p><ul><li>la largeur du menu doit être fixe (ici 400 pixels)</li><li>la largeur de chaque élement du menu doit être la même (ici 100 pixels), et la somme de toutes les largeurs doit être égale à celle du menu (ici 4&#215;100 = 400 pixels)</li></ul><p>N&#8217;oubliez pas de prendre en compte la bordure extérieure de 1 pixel. Voici le code obtenu:</p><pre><strong>#tut01</strong>{
border:<em>1px solid #5b9400</em>;
height:<em>36px</em>;
list-style:<em>none</em>;
margin:<em>0 auto</em>;
margin-bottom:<em>15px</em>;
padding:<em>0</em>;
width:<em>400px</em>;
}

<strong>#tut01 li</strong>{
display:<em>inline</em>;
}

<strong>#tut01 li a</strong>{
background:<em>#434b4a</em>;
border-bottom:<em>18px solid #070607</em>;
display:<em>block</em>;
float:<em>left</em>;
font-size:<em>13px</em>;
height:<em>18px</em>;
line-height:<em>18px</em>;
text-align:<em>center</em>;
text-decoration:<em>none</em>;
width:<em>100px</em>;
}

<strong>#tut01 li a span</strong>{
color:<em>#fff</em>;
font-weight:<em>bold</em>;
position:<em>relative</em>;
top:<em>9px</em>;
}

<strong>#tut01 li a:hover</strong>{
background:<em>#a2d84e</em>;
border-bottom:<em>18px solid #7dbf0f</em>;
}</pre>]]></content:encoded> <wfw:commentRss>http://bbxdesign.com/2007/11/30/bbxtut01-menu-100-css-vert/feed/</wfw:commentRss> <slash:comments>7</slash:comments> </item> </channel> </rss>
<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic
Page Caching using disk: basic (User agent is rejected)
Database Caching 8/18 queries in 0.011 seconds using disk: basic

Served from: bbxdesign.com @ 2012-05-23 00:02:56 -->
