<?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>css 4 design &#187; CSS</title>
	<atom:link href="http://css4design.com/tag/css/feed" rel="self" type="application/rss+xml" />
	<link>http://css4design.com</link>
	<description>Le blog de l&#039;intégrateur web</description>
	<lastBuildDate>Sun, 29 Aug 2010 16:36:38 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
	<atom:link rel='hub' href='http://css4design.com/?pushpress=hub'/>
		<item>
		<title>7 outils en ligne pour l&#8217;intégration HTML &amp; CSS</title>
		<link>http://css4design.com/7-outils-en-ligne-integration-html-css</link>
		<comments>http://css4design.com/7-outils-en-ligne-integration-html-css#comments</comments>
		<pubDate>Wed, 16 Jun 2010 14:05:30 +0000</pubDate>
		<dc:creator>Bruno Bichet</dc:creator>
				<category><![CDATA[HTML & CSS]]></category>
		<category><![CDATA[Intégration web]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Formulaires]]></category>
		<category><![CDATA[Générateur]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Liste de liens]]></category>

		<guid isPermaLink="false">http://www.css4design.com/?p=1268</guid>
		<description><![CDATA[Ce petit coin de blog est le cadre idéal pour vous présenter quelques outils en ligne qui vous permettront de réduire le temps passé à réaliser l&#8217;intégration de vos sites web : éditeurs visuels, générateurs de colonnes, conversion des pixels en unité relative em, etc. Pas vraiment nouveaux, ils méritent quand même le détour !  Construct Your CSS &#8212; Editeur visuel basé sur Blueprint et jQuery. Ce projet est commis par Christian Montoya pour mettre à la disposition des intégrateurs Web une boite à outils pour faire des CSS et du HTML sémantique. pagecolumn &#8212; Générateur de maquettes en plusieurs colonnes [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 18px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fcss4design.com%2F7-outils-en-ligne-integration-html-css">
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fcss4design.com%2F7-outils-en-ligne-integration-html-css&amp;source=br1o&amp;style=normal&amp;service=bit.ly&amp;service_api=R_0c1ee4b64f105d1b2672690740a77d6a" height="61" width="50" />
			</a>
		</div><p>Ce petit coin de blog est le cadre idéal pour vous présenter quelques outils en ligne qui vous permettront de réduire le temps passé à réaliser l&#8217;intégration de vos sites web : éditeurs visuels, générateurs de colonnes, conversion des pixels en unité relative <em>em</em>, etc. Pas vraiment nouveaux, ils méritent quand même le détour ! <span id="more-1268"></span></p>

<ul>
    <li><a href="http://www.constructyourcss.com">Construct Your CSS</a> &#8212; Editeur visuel basé sur Blueprint et jQuery. Ce projet est commis par <a href="http://www.christianmontoya.com/">Christian Montoya</a> pour mettre à la disposition des intégrateurs Web une boite à outils pour faire des CSS et du HTML sémantique.</li>
    <li><a href="http://www.pagecolumn.com/">pagecolumn</a> &#8212; Générateur de maquettes en plusieurs colonnes avec CSS 2.0 en utilisant les `%`, les `px` ou les `em`. Possibilité d&#8217;imbriquer plusieurs colonnes ou des faire des effets de menus à onglets.</li>
    <li><a href="http://drawter.com/">drawter</a> &#8212; Générateur de code HTML et CSS en ligne. Lire <a href="http://www.css4design.com/drawter-dessiner-integrer-wysywyg">Avec drawter, dessiné, c&#8217;est gagné</a>.</li>
    <li><a href="http://www.gwhite.us/downloads/css_grid_calc.html">CSS Grid Calculator</a> &#8212; Pour visualiser rapidement une maquette à partir d&#8217;une grille : les blocs de texte et les divisions de la page en colonnes (et les goutières) s&#8217;affichent dans le navigateur. En prime, vous obtiendrez les déclarations des styles CSS !</li>
    <li><a href="http://www.jotform.com/">JotForm</a> &#8212; Création de formulaires en ligne.</li>
    <li><a href="http://riddle.pl/emcalc/">Em Calculator</a> &#8212; Convertit vos pixels en `em` pour faciliter la mise en place de designs CSS fluides.</li>
    <li><a href="http://iceyboard.no-ip.org/projects/css_compressor">CSS Compressor</a> &#8212; Compressez vos feuilles de style CSS. Nombreuses options disponibles.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://css4design.com/7-outils-en-ligne-integration-html-css/feed</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Frameworks CSS &#8212; Blueprint vs 960 Grid System</title>
		<link>http://css4design.com/frameworks-css-blueprint-vs-960-grid-system</link>
		<comments>http://css4design.com/frameworks-css-blueprint-vs-960-grid-system#comments</comments>
		<pubDate>Fri, 30 Apr 2010 23:05:42 +0000</pubDate>
		<dc:creator>Bruno Bichet</dc:creator>
				<category><![CDATA[HTML & CSS]]></category>
		<category><![CDATA[Intégration web]]></category>
		<category><![CDATA[960.gs]]></category>
		<category><![CDATA[Blueprint]]></category>
		<category><![CDATA[Colonnes]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Edito]]></category>
		<category><![CDATA[Framework CSS]]></category>
		<category><![CDATA[Grille]]></category>
		<category><![CDATA[Tutoriels]]></category>

		<guid isPermaLink="false">http://css4design.com/?p=5782</guid>
		<description><![CDATA[Blueprint et 960 Grid System sont deux frameworks CSS que j&#8217;ai utilisés parmi les 25 que j&#8217;ai recensés et survolés dans Choisir un framework CSS. J&#8217;ai ainsi pu me faire une idée plus précise de leurs qualités respectives. Je ne me suis pas attardé sur les aspects typographiques &#8212; même s&#8217;ils ont leur importance : j&#8217;ai préféré faire l&#8217;analyse du système de grille de mise en page (grid.css et 960.css). Pourquoi comparer ces deux frameworks ? Tout simplement parce qu&#8217;ils proposent pratiquement les mêmes «fonctionnalités» avec quelques différences dans la mise en oeuvre. Après une rapide introduction sur Blueprint et [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 18px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fcss4design.com%2Fframeworks-css-blueprint-vs-960-grid-system">
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fcss4design.com%2Fframeworks-css-blueprint-vs-960-grid-system&amp;source=br1o&amp;style=normal&amp;service=bit.ly&amp;service_api=R_0c1ee4b64f105d1b2672690740a77d6a" height="61" width="50" />
			</a>
		</div><p><em>Blueprint</em> et <em>960 Grid System</em> sont deux frameworks CSS que j&#8217;ai utilisés parmi les 25 que j&#8217;ai recensés et survolés dans <a href="http://css4design.com/choisir-un-framework-css">Choisir un framework CSS</a>. J&#8217;ai ainsi pu me faire une idée plus précise de leurs qualités respectives. Je ne me suis pas attardé sur les aspects typographiques &#8212; même s&#8217;ils ont leur importance : j&#8217;ai préféré faire l&#8217;analyse du système de grille de mise en page (<em>grid.css</em> et <em>960.css</em>). Pourquoi comparer ces deux frameworks ? Tout simplement parce qu&#8217;ils proposent pratiquement les mêmes «fonctionnalités» avec quelques différences dans la mise en oeuvre. Après une rapide introduction sur Blueprint et 960 Grid System, vous trouverez dans la suite de cet article une comparaison et une explication de code.<span id="more-5782"></span></p>

<h2>Introduction</h2>

<p>Les frameworks CSS ont été conçus pour accélérer le processus de prototypage d&#8217;un site web tout en étant utilisables en production. Ils proposent généralement plusieurs fichiers dédiés à une tâche spécifique : reset CSS, gestion de la typographie, système de grille, etc. Les exemples de code proposés dans cet article ont été parfois remaniés par rapport aux originaux pour garder une certaine lisibilité.</p>

<h3>Blueprint &#8212; Raccourcir les temps de développement</h3>

<p>Créé par <a href="http://www.jdclayton.com/">Joshua Clayton</a>, <a href="http://blueprintcss.org/">Blueprint</a> est le plus connu. Il possède l&#8217;éco-système le plus riche : <a href="http://wiki.github.com/joshuaclayton/blueprint-css/">tutoriaux</a>, implémentation dans des thèmes WordPress ou Drupal, <a href="http://toki-woki.net/p/Boks/">générateurs de grilles</a>, etc. Il propose en outre une gestion complète des éléments HTML (notamment les formulaires). A côté du fichier <em>grid.css</em> nous trouvons : <em>reset.css</em>, <em>typography.css</em>, <em>ie.css</em> et <em>forms.css</em>, ainsi que :</p>

<ul>
    <li>Des «utilitaires» comme la mise en place de bordures entre les colonnes,</li>
    <li>Des plugins permettent d&#8217;affiner la gestion des boutons, de la typographie, des icônes de liens, ou encore de modifier le sens de lecture pour les langues qui s&#8217;écrivent de droite à gauche,</li>
    <li>Un modèle de page (<em>template</em>) au format <a href="http://github.com/joshuaclayton/blueprint-css/tree/master/templates/">.psd est disponible</a> pour faciliter la mise en place des maquettes,</li>
    <li><a href="http://github.com/joshuaclayton/blueprint-css">Blueprint est disponible sur Github</a>.</li>
</ul>

<h3>960 Grid System (ou 960.gs) &#8212; Fluidifier le flux de production</h3>

<p>Créé par <a href="http://sonspring.com/">Nathan Smith</a>, <a href="http://960.gs/">960 Grid System</a> propose également un <em>reset.css</em>, une gestion minimale (mais suffisante pour commencer) de la typographie avec <em>text.css</em> et le système de grille avec <em>960.css</em> ou <em>960_24_col.css</em>. Il n&#8217;y a pas de fichier <em>ie.css</em>.</p>

<p>Même si l&#8217;éco-système est un peu moins riche que Blueprint, il propose l&#8217;essentiel :</p>

<ul>
    <li>Fichiers de démonstration,</li>
    <li>Le <a href="http://www.spry-soft.com/grids/">générateur de grille</a> offre le choix entre un design liquide ou fixe (pourcentage ou fixe),</li>
    <li><a href="http://github.com/nathansmith/960-Grid-System/tree/master/sketch_sheets/">Fichier PDF</a> à imprimer pour dessiner des maquettes,</li>
    <li>Nombreux <a href="http://github.com/nathansmith/960-Grid-System/tree/master/templates/">modèles de page</a> pour Expression Engine, Fireworks, Flash, Illustrator, Indesign, Inskape, Omnigraffle, Photoshop et Visio,</li>
    <li><a href="http://github.com/nathansmith/960-Grid-System">960 Grid System est disponible sur Github</a>.</li>
</ul>

<p>Chacun des deux frameworks existe en plusieurs largeurs (950px, 960px) avec un nombre de colonnes allant de 12, 16 ou 24. Toutefois, les nombreux générateurs de grilles vous permettront de déterminer : largeur, nombre de colonnes et gouttière adaptés à vos besoins.</p>

<h2>Fonctionnalités principales des frameworks CSS</h2>

<h3>Largeur et centrage du site web</h3>

<p>Les deux frameworks proposent la même chose :
<pre>.container { width: 942px; margin: 0 auto; } // Blueprint</pre>
<pre>.container_16 { margin-left: auto; margin-right: auto;     width: 960px; } // 960.gs</pre>
<em>960 Grid System</em> se distingue tout de même en permettant de mélanger plusieurs grilles dans un même design. C&#8217;est pour cela que les classes sont préfixées : <code>.container_16 grid_1 {}</code> au cas où vous voudriez utiliser <code>.container_12 grid_1 {}</code> plus loin dans la page. C&#8217;est un détail qui peut présenter un avantage dans certains cas, même si j&#8217;imagine que les deux versions de la grille en 12 et 16 colonnes dans le fichier 960.css sont là pour n&#8217;avoir qu&#8217;un seul fichier à intégrer dans des projets différents.</p>

<p>En ce qui concerne le nombre de colonnes et la largeur des gouttières, je trouve Blueprint un peu radin avec ses 10px là où 960 Grid System offre généreusement le double, soit 20px d&#8217;espace entre les colonnes.</p>

<p>Le seul endroit où les 10px de gouttière sont intéressants, c&#8217;est dans la version en 24 colonnes, ce qui permet d&#8217;utiliser une colonne entière (30px) pour séparer des groupes de colonnes à certains endroits et garder l&#8217;espacement de 10px pour rapprocher des contenus possédant un corps de texte plus petit et/ou répartis sur un plus faible nombre de colonnes.</p>

<p>Dans les exemples qui suivent, j&#8217;ai utilisé la grille que j&#8217;ai conçu lors du <a href="http://css4design.com/css-4-design-nouvelle-charte-graphique-et-redesign-du-logo">redesign de ce blog</a> : 16 colonnes de 42px séparées par une gouttière de 18px pour une largeur totale de 942px.</p>

<h3>Créer des colonnes et des gouttières</h3>

<p>La création des colonnes pour le placement des contenus est l&#8217;élément fondamental d&#8217;un système de grille. Blueprint et 960 Grid System procèdent de manières différentes :</p>

<h4>Blueprint</h4>

<p><pre>.column, .span-1, .span-2, etc. {
    float: left;
    margin-right: 18px;
}
.span-1 { width: 42px; }
.last { margin-right: 0; }</pre></p>

<h4>960 Grid System</h4>

<p><pre>.grid_1,.grid_2, etc. {
    display:inline;
    float: left;
    position: relative;
    margin-left: 9px;
    margin-right: 9px;
}
.container_16 .grid_1 { width:42px; }
.alpha { margin-left: 0; }
.omega { margin-right: 0; }</pre>
Le point commun est l&#8217;utilisation de la propriété <code>float</code> pour placer les colonnes les unes à côté des autres. Pour la gouttière, Blueprint à choisi la simplicité : chaque bloc repousse le suivant avec <code>margin-right: 18px;</code>. En revanche, 960.gs réparti la moitié de la gouttière de part et d&#8217;autre de chaque colonne.</p>

<h5>.last but not .least</h5>

<p>Dans le cas de Blueprint, il faut ajouter une classe pour le dernier bloc afin d&#8217;annuler la marge de 18px avec <code>.last { margin-right: 0; }</code>. Quant à 960.gs, ce n&#8217;est pas la peine puisque les marges sont réparties de chaque côté. Là où ça se corse, c&#8217;est quand on a besoin d&#8217;imbriquer des colonnes.</p>

<p>Chez Blueprint, seule la classe <code>.last</code> est nécessaire pour chaque dernier bloc, tandis que 960.gs nécessite deux classes pour annuler les deux moitiés de marges : <code>.alpha { margin-left: 0; }</code> et <code>.omega { margin-right: 0; }</code>. Ca va sans dire mais mieux en le disant : on a pratiquement toujours besoin d&#8217;imbriquer des colonnes à un moment ou un autre.</p>

<h5>.column ?</h5>

<p>Cette classe peut servir à placer des blocs sans être obligé de leur donner une largeur. J&#8217;avoue m&#8217;en servir assez peu.</p>

<h5>display: inline et position: relative ?</h5>

<p>960 Grid System ajoute deux propriétés. La première (<code>display: inline</code>) sert à circonvenir un bug d&#8217;IE6 qui à tendance à doubler les marges lorsque des éléments flottent du même côté qu&#8217;un <code>margin</code>. <code>position:  relative</code> sert à positionner les blocs indépendamment de leur position dans le code HTML (voir plus bas).</p>

<h3>Créer des colonnes vides avant et/ou après le contenu</h3>

<p>Dans une maquette web, toutes les positions ne sont pas occupées par du contenu et il est bon que le site respire. Pour cela on pourra aérer toutes ces colonnes en créant du vide avant ou après. C&#8217;est là qu&#8217;interviennent les classes <code>.prefix_1</code> et <code>suffix_1</code> de 960.gs ou <code>.prepend-1</code> et <code>append-1</code> de Blueprint. Les deux frameworks ont opté pour un <code>padding-left</code> pour les premiers et un <code>padding-right</code> pour les seconds pour &laquo;&nbsp;remplir&nbsp;&raquo; les blancs afin de conserver une largeur égale à la largeur de votre <code>.container</code>.</p>

<h3>Positionner des blocs à l&#8217;écran indépendamment de leur position dans le code</h3>

<p>La position des éléments dans le code est souvent tributaire de la manière dont on veut les afficher à l&#8217;écran. Si vous désirez modifier la position de votre sidebar par rapport au contenu sans modifier l&#8217;ordre des blocs dans votre code HTML, il suffira d&#8217;utiliser les classes suivantes :</p>

<h4>960 Grid System</h4>

<p><pre>.container_16 .push_1 { left:60px; }
.container_16 .pull_1 { left:-60px; }</pre></p>

<h4>Blueprint</h4>

<p><pre>.push-1 { margin: 0 -60px 1.5em 60px; }
.push-1, .push-2, etc. { float: right; position: relative; }
.pull-1 { margin-left: -60px; }
.pull-1, .pull-1, etc. { float: left; position: relative; }</pre>
Là, tout d&#8217;un coup, on voit les avantages du <code>position: relative</code> de 960.gs vu plus haut qui fait gagner en concision et qui permettra de placer facilement du contenu en <code>position: absolute</code> si besoin. Quand à Blueprint, il est un peu trop verbeux sur ce coup-là à mon goût (les <code>etc.</code> étant bien entendu à remplacer par l&#8217;ensemble des sélecteurs nécessaires selon le nombre de colonnes).</p>

<h3>Rétablir le flux HTML après l&#8217;utilisation des flottants</h3>

<p>Pour rétablir votre flux HTML après les float: left, il existe plusieurs techniques dont j&#8217;ai déjà longuement parler dans les articles <a href="http://css4design.com/retablir-le-flux-apres-des-elements-flottants-en-css-sans-balise-html-supplementaire">Rétablir le flux après des éléments flottants en CSS sans balise HTML supplémentaire</a> et <a href="http://css4design.com/pour-retablir-le-flux-apres-un-float-vous-etes-plutot-hr-br-ou-div">Pour rétablir le flux après un float, vous êtes plutôt HR, BR ou DIV ?</a></p>

<p>Les deux frameworks proposent un jeu de classes CSS qui devrait vous permettre de voir venir. Pour info, voici la technique utilisée par 960.gs :
<pre>.clear {
    clear: both;
    display: block;
    overflow: hidden;
    visibility: hidden;
    width: 0;
    height: 0;
}
.clearfix:after {
    clear: both;
    content: ' ';
    display: block;
    font-size: 0;
    line-height: 0;
    visibility: hidden;
    width: 0;
    height: 0;
}
/<em> The following zoom:1 rule is specifically for IE6 + IE7.
Move to separate stylesheet if invalid CSS is a problem.</em>/
* html .clearfix,
*:first-child+html .clearfix {
    zoom: 1;
}</pre>
La différence avec Blueprint tient principalement à la classe <code>.clear</code> qui ne contient que le minimum :
<pre>.clear { clear:both; }</pre>
Les deux classes <code>.clear</code> ne s&#8217;utilisent pas de la même façon : celui de 960.gs s&#8217;utilisera de préférence sur une balise <code>hr</code>, <code>br</code>. On pourra également l&#8217;utiliser sur des balises <code>span</code> ou <code>div</code> à condition qu&#8217;elles n&#8217;aient pas vocation à afficher du contenu ; le <code>.clear</code> de Blueprint s&#8217;utilise sur n&#8217;importe quelle balise avec ou sans contenu. Traditionnellement, c&#8217;est celui qu&#8217;on utilise sur un <em>footer</em> qui doit passer sous la barre latérale et le contenu principal.</p>

<h2>Conclusion</h2>

<p>Il y a de bonnes idées dans les deux frameworks. Je ne suis pas fan de la gestion des marges de part et d&#8217;autre des colonnes de 960.gs : je préfére la simplicité de Blueprint. En revanche, je préfère les classes <code>.push</code> et <code>.pull</code> de 960 Grid System qui sont bien plus concises que celles de Blueprint. Pour finir, je trouve que le <code>.clear</code> de 960 Grid System mérite d&#8217;être renommé en <code>.clear-hide</code> pour pouvoir ajouter un <code>clear: both</code> simple mais toujours très pratique. Bref, il faut composer son propre framework CSS en piochant les bonnes idées à droite et à gauche.. <em>Stay tuned!</em></p>

<h2>Autres notes sur les frameworks CSS et le design par grille de mise en page</h2>

<h3><a rel="bookmark" href="http://css4design.com/framework-css-semantique-maquette-dynamique-et-autres-notes">Framework CSS — Sémantique, maquette dynamique et autres notes</a></h3>

<blockquote class="small">Les frameworks CSS ont fait couler beaucoup de pixels : d’un côté, ils proposent une méthode à l’épreuve des balles pour placer les blocs sur sur la page en tenant compte des contraintes <em>cross-browser </em>; de l’autre, ils ajoutent des classes CSS superflues dans le code HTML pour la présentation des contenus, ce qui n’est pas jugé «sémantique» par les farouches défenseurs d’une séparation entre le fond et la forme. <a href="http://css4design.com/framework-css-semantique-maquette-dynamique-et-autres-notes">[...]</a></blockquote>

<h3><a rel="bookmark" href="http://css4design.com/quelques-notes-sur-les-grilles-de-mise-en-page">Quelques notes sur les grilles de mise en page</a></h3>

<blockquote class="small">A mesure que les techniques des langages du web l’ont permis, des designers web talentueux ont travaillé à l’élaboration d’environnement de travail permettant de mettre en place des systèmes de grille adaptés aux contraintes de la création de pages web. Contrairement à l’imprimé où le langage de description de page<em>Postscript</em> d’Abode est un standard, il n’existe pas sur le web de dispositif « officiel » pour créer des colonnes à l’épreuve des différences de rendu entre les agents utilisateurs (les navigateurs). <a href="http://css4design.com/quelques-notes-sur-les-grilles-de-mise-en-page">[...]</a></blockquote>

<h3><a rel="bookmark" href="http://css4design.com/grid-design-quelques-notes-sur-linteret-des-grilles-de-mise-en-page">Grid Design — Quelques notes sur l’intérêt des grilles de mise en page</a></h3>

<blockquote class="small">La popularité des frameworks CSS s’accompagne d’une interrogation légitime sur le bien-fondé d’utiliser une grille pour le placement des éléments du design. Comme je l’ai déjà évoqué dansFramework CSS — mettez vos grilles au pas ! je m’interroge sur l’intérêt de travailler sans grille et je soupçonne leurs détracteurs de <em>jeter le bébé avec l’eau du bain</em>. Le problème vient sans doute du terme <em>grille</em> lui-même. Peu gratifiant, il évoque la prison, la clôture, la répétition, l’uniformité… Bref, tout le contraire des aspirations du créatif qui refuse de brider sa créativité sur l’autel d’une vision mécaniste du processus créatif <a href="http://css4design.com/grid-design-quelques-notes-sur-linteret-des-grilles-de-mise-en-page">[...]</a></blockquote>

<h3><a rel="bookmark" href="http://css4design.com/boks-editeur-visuel-de-grilles-css-pour-blueprint">Boks — Éditeur visuel de grilles CSS pour Blueprint, etc.</a></h3>

<blockquote class="small">Boks est un éditeur de grille CSS développé avec Air (utilisable sur Windows, Mac et Linux) qui fournit une interface visuelle pour travailler avec le framework CSS Blueprint. Les <em>frameworks</em> sont souvent très utiles mais le paramétrage d’un pas de grille personnalisé peut s’avérer fastidieux. Outre la configuration du nombre de colonnes, de la largeur de la page et de la valeur de la gouttière,<em>Boks</em> permet de configurer la grille verticale en déterminant les valeurs des principales balises HTML <a href="http://css4design.com/boks-editeur-visuel-de-grilles-css-pour-blueprint">[...]</a></blockquote>

<h3><a rel="bookmark" href="http://css4design.com/framework-css-semantique-comment-je-vois-les-choses">Framework CSS sémantique ? Comment je vois les choses</a></h3>

<blockquote class="small">Je reviens vers vous sur la question des frameworks CSS suite à la lecture de A Reflexion About Semantic Grids qui défend <em>grosso modo</em> le point de vue selon lequel les frameworks ne sont pas sémantiques et incitent à marcher sur la tête en bousculant le flux de production web. <a href="http://css4design.com/framework-css-semantique-comment-je-vois-les-choses">[...]</a></blockquote>

<h3><a rel="bookmark" href="http://css4design.com/choisir-un-frameworks-css">24 frameworks CSS — Mettez une grille (ou pas) dans votre site web</a></h3>

<blockquote class="small">Il existe de nombreuses raisons pour ne pas utiliser de frameworks CSS lors de la phase de conception ou d’intégration de votre site web : le poids, l’intrusion des classes CSS dans le code HTML qui devient la règle pour placer le moindre bloc de contenu, le fait que de nombreuses règles ne sont pas utilisées, etc. Pour ma part, j’aime bien tester les frameworks qui tombent à portée de souris, et je n’hésite pas à faire des expériences d’hybridation : rien de tel qu’un bout de reset CSS d’Eric Meyer avec la feuille de style de typogridphy, le tout mis en forme avec la robustesse de Blueprint. <a href="http://css4design.com/choisir-un-frameworks-css">[...]</a></blockquote>

<h3><a rel="bookmark" href="http://css4design.com/bic-framework-css-oriente-couleur-et-typographie">BIC, framework CSS orienté couleur et typographie</a></h3>

<blockquote class="small">BIC est un meta framework CSS basé d’une part sur le reset CSS d’Eric Meyer pour la remise aux valeurs par défaut des éléments HTML (<code>clean.css</code>) et le framework 960.gs pour la partie grille de mise en page (<code>layout.css</code>), et d’autre part sur de bonnes idées en ce qui concerne le traitement de la typographie et de la couleur (<code>typography.css</code> et <code>color.css</code>). <a href="http://css4design.com/bic-framework-css-oriente-couleur-et-typographie">[...]</a></blockquote>

<h3><a rel="bookmark" href="http://css4design.com/nombre-d-or-suite-de-fibonacci-et-autres-grilles-de-mise-en-page-pour-le-design-web">Nombre d’or, suite de Fibonacci et autres grilles de mise en page pour le design web</a></h3>

<blockquote class="small">Dans la série des thèmes WordPress minimalistes voilà The Ideal Website 1.1proposé par Information Architect (iA). L’équilibre graphique de ce thème provient essentiellement de l’application de la suite de Fibonacci — qui fournit des rapports très proches du nombre d’or — aux différentes proportions des éléments du design. Le résultat est ce que j’ai vu de mieux en matière de mise en page pour un blog. <a href="http://css4design.com/nombre-d-or-suite-de-fibonacci-et-autres-grilles-de-mise-en-page-pour-le-design-web">[...]</a></blockquote>

<h3><a rel="bookmark" href="http://css4design.com/frameworks-css-reset-css-design-from-scratch">Frameworks CSS + Reset CSS : design from scratch</a></h3>

<blockquote class="small">L’article fait ainsi le point sur la notion de framework CSS, ses avantages et ses inconvénients, décrit les frameworks les plus populaires et termine par une série de liens commentés à propos des Reset CSS et des styles de base. <a href="http://css4design.com/frameworks-css-reset-css-design-from-scratch">[...]</a></blockquote>

<h3><a rel="bookmark" href="http://css4design.com/framework-css-mettez-vos-grilles-au-pas">Framework CSS — mettez vos grilles au pas !</a></h3>

<blockquote class="small"><em>Grosso modo</em>, tout le monde reconnait que <em>oui, les frameworks c’est de la balle</em> mais que <em>non, ça n’est pas toujours possible</em> car les éléments du design, du <em>.psd</em>, de la charte graphique, etc. n’entrent pas forcément dans une grille horizontale. <a href="http://css4design.com/framework-css-mettez-vos-grilles-au-pas">[...]</a></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://css4design.com/frameworks-css-blueprint-vs-960-grid-system/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>CSS3, Please! Générateur de CSS3 Cross-Browser</title>
		<link>http://css4design.com/css3-please-generateur-de-css3-cross-browser</link>
		<comments>http://css4design.com/css3-please-generateur-de-css3-cross-browser#comments</comments>
		<pubDate>Mon, 19 Apr 2010 18:26:53 +0000</pubDate>
		<dc:creator>Bruno Bichet</dc:creator>
				<category><![CDATA[HTML & CSS]]></category>
		<category><![CDATA[Intégration web]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[CSS3]]></category>
		<category><![CDATA[Générateur]]></category>

		<guid isPermaLink="false">http://css4design.com/?p=6040</guid>
		<description><![CDATA[CSS3, Please! &#8211; Une belle page éditable avec l&#8217;essentiel des propriétés CSS3 : border-radius, box-shadow, Gradient, RGBa(), Transition, @font-face, etc. avec les filtres Microsoft pour IE6/7 et IE8 qui vont bien (ou mal). Un bloc de contenu reflète automatiquement les changements apportés aux déclarations avec la possibilité de désactiver les effets les uns après les autres pour mieux les percevoir. CSS3, Please! est certainement l&#8217;un des meilleurs générateurs de CSS3 disponibles. Toutes les valeurs soulignées sont éditables. Les valeurs saisies sont répercutées pour les autres navigateurs Toute la page est prête à être copiée-collée dans votre feuille de style. Bravo aux [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 18px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fcss4design.com%2Fcss3-please-generateur-de-css3-cross-browser">
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fcss4design.com%2Fcss3-please-generateur-de-css3-cross-browser&amp;source=br1o&amp;style=normal&amp;service=bit.ly&amp;service_api=R_0c1ee4b64f105d1b2672690740a77d6a" height="61" width="50" />
			</a>
		</div><p><a href="http://css3please.com/">CSS3, Please!</a> &#8211; Une belle page éditable avec l&#8217;essentiel des propriétés CSS3 : <em>border-radius</em>, <em>box-shadow</em>, <em>Gradient</em>, <em>RGBa()</em>, <em>Transition</em>, <em>@font-face</em>, etc. avec les filtres Microsoft pour IE6/7 et IE8 qui vont bien (ou mal). Un bloc de contenu reflète automatiquement les changements apportés aux déclarations avec la possibilité de désactiver les effets les uns après les autres pour mieux les percevoir. <em>CSS3, Please!</em> est certainement l&#8217;un des meilleurs générateurs de CSS3 disponibles.<span id="more-6040"></span></p>

<h6>Toutes les valeurs soulignées sont éditables. Les valeurs saisies sont répercutées pour les autres navigateurs</h6>

<div id="attachment_6041" class="wp-caption alignleft" style="width: 444px"><a href="http://css4design.com/wp-content/uploads/2010/04/css3-please.png"><img class="size-large wp-image-6041" title="css3-please" src="http://css4design.com/wp-content/uploads/2010/04/css3-please-434x224.png" alt="" width="434" height="224" /></a><p class="wp-caption-text">CSS3, Please! Cliquez pour agrandir l&#39;image.</p></div>

<p>Toute la page est prête à être copiée-collée dans votre feuille de style.</p>

<p>Bravo aux concepteurs <a href="http://paulirish.com/">Paul Irish</a> et <a href="http://twitter.com/jon_neal">Jonathan Neal</a> <small>en association avec <a href="http://www.boazsender.com/">Boaz Sender</a> et <a href="http://www.useragentman.com/">Zoltan Hawryluk</a>.</small></p>
]]></content:encoded>
			<wfw:commentRss>http://css4design.com/css3-please-generateur-de-css3-cross-browser/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Générateurs de CSS3 pour tous les navigateurs (ou presque)</title>
		<link>http://css4design.com/generateurs-de-css3-pour-tous-les-navigateurs-ou-presque</link>
		<comments>http://css4design.com/generateurs-de-css3-pour-tous-les-navigateurs-ou-presque#comments</comments>
		<pubDate>Mon, 19 Apr 2010 16:11:05 +0000</pubDate>
		<dc:creator>Bruno Bichet</dc:creator>
				<category><![CDATA[HTML & CSS]]></category>
		<category><![CDATA[Intégration web]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[CSS3]]></category>
		<category><![CDATA[Générateur]]></category>

		<guid isPermaLink="false">http://css4design.com/?p=6029</guid>
		<description><![CDATA[Même si tous les navigateurs ne prennent pas en charge les spécifications CSS3, il est intéressant de se pencher dessus, d&#8217;autant plus de que nombreux générateurs en ligne sont là pour adoucir la courbe d&#8217;apprentissage. Au menu : des générateurs de propriétés CSS3 comme border-radius, gradient, box-shadow, text-shadow, RGBa, @font-face, Multiple Columns, etc. ; des effets de texte  et une palanquée de ressources complémentaires. Générateurs de CSS3 CSS3 Gradient Generator &#8212; Faire un joli dégradé n&#8217;est pas si facile et la simplicité de l&#8217;outil ne pourra rien sans un minimum de goût. Maintenant que vous êtes prévenu, vous pouvez changer [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 18px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fcss4design.com%2Fgenerateurs-de-css3-pour-tous-les-navigateurs-ou-presque">
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fcss4design.com%2Fgenerateurs-de-css3-pour-tous-les-navigateurs-ou-presque&amp;source=br1o&amp;style=normal&amp;service=bit.ly&amp;service_api=R_0c1ee4b64f105d1b2672690740a77d6a" height="61" width="50" />
			</a>
		</div><p>Même si tous les navigateurs ne prennent pas en charge les spécifications CSS3, il est intéressant de se pencher dessus, d&#8217;autant plus de que nombreux générateurs en ligne sont là pour adoucir la courbe d&#8217;apprentissage. Au menu : des générateurs de propriétés CSS3 comme border-radius, gradient, box-shadow, text-shadow, RGBa, @font-face, Multiple Columns, etc. ; des effets de texte  et une palanquée de ressources complémentaires.<span id="more-6029"></span></p>

<h2><strong>Générateurs de CSS3</strong></h2>

<ul>
    <li><a href="http://gradients.glrzad.com/">CSS3 Gradient Generator</a> &#8212; Faire un joli dégradé n&#8217;est pas si facile et la simplicité de l&#8217;outil ne pourra rien sans un minimum de goût. Maintenant que vous êtes prévenu, vous pouvez changer la direction de votre dégradés, les couleurs et le seuil pour déterminer la position et l&#8217;intensité de l&#8217;effet de fondu entre les deux couleurs. Dans le doute, il est possible de générer un dégradé aléatoire pour se faire une idées des possibilités,</li>
    <li><a href="http://css3generator.com/">CSS3 Generator</a> &#8212; Ce générateur de CSS3 interactif est idéal pour faire entrer votre site web dans la modernité : border-radius, box-shadow, text-shadow, RGBa, @font-face, Multiple Columns, box-resize, box-sizing, outline,</li>
    <li><a href="http://border-radius.com/">Border Radius</a> &#8212; Générateur de coins arrondis,</li>
    <li><a href="http://css3please.com/">css3please</a> &#8212; Une générateur de CSS3 cross-browser,</li>
    <li><a href="http://westciv.com/tools/index.html">CSS3 Sandbox</a> &#8212; des outils à la pointe de la technologie, parce que vous le valez bien ! (CSS3n HTML5),</li>
    <li><a href="http://www.fontsquirrel.com/fontface/generator">Font-Face Kit Generator</a>,</li>
    <li><a href="http://www.incaseofstairs.com/border-image-generator/">Border Image Generator</a>,</li>
    <li><a href="http://css3please.com/">Cross Browser CSS3 Rule Generator</a>.</li>
</ul>

<h2>Miscellanées</h2>

<ul>
    <li><a href="http://fetchak.com/ie-css3/">IE-CSS3</a> &#8212; Ce composant .htc vous permettra d&#8217;utiliser certaines propriétés CSS3 dans Internet Explorer 6, 7 et 8, comme border-radius, box-shadow et text-shadow : <code>behavior: url(ie-css3.htc);</code></li>
    <li><a href="http://www.evotech.net/blog/2010/01/font-face-browser-support-tutorial/">@font-face Browser Support</a> &#8212; Le point sur la prise ne charge de la propriété `@font-face` qui permet d&#8217;embarquer n&#8217;importe quelle police de caractère dans votre page web. Via <a href="http://www.simpleentrepreneur.com/2010/03/04/le-support-de-la-propriete-font-face-pour-la-typographie/">Simple Entrepreneur</a>.</li>
    <li><a href="http://speckyboy.com/2010/03/15/15-css3-navigation-and-menu-tutorials-and-techniques/">15 CSS3 navigation and menu</a> &#8212; 15 tutoriels et techniques pour faire des menus de navigation en CSS3 via <a href="http://www.creamama.fr/15-tutoriels-CSS3-pour-vos-menus.html">creamama</a>.</li>
    <li><a href="http://www.webtoolkit.info/css-drop-shadow.html">Drop Shadow</a> &#8212; des ombres portées sans images, sans CSS3. Cette technique utilise pratiquement autant de balises div imbriquées que les techniques utilisant des images de fond.</li>
    <li><a href="http://webitect.net/design/uitutorials/350-amazing-css3-resources-all-youll-ever-need-to-become-a-css3-master/">350 CSS3 Resources</a> &#8212; 350 ressources à connaitre pour devenir un expert en CSS3. Via <a href="http://twitter.com/conseilsmkg">conseilsmkg</a>.</li>
    <li><a href="http://www.weedle.fr/css-3-les-effets-de-texte/">CSS3 les effets de texte</a> &#8212; Effets de texte avec CSS3.</li>
    <li><a href="http://www.w3avenue.com/2010/04/16/improve-your-css-skills-with-pure-css-ui-components/">Improve Your CSS Skills With Pure CSS UI Components</a> &#8212; Pourquoi utiliser Javascript alors que CSS se débrouille comme un grand !</li>
    <li><a href="http://www.tripwiremagazine.com/2010/03/35-essential-submit-button-enhancements.html">35 Essential Submit Button Enhancements</a> &#8212; 35 possibilités d&#8217;amélioration pour les boutons Submit.</li>
    <li><a href="http://www.crdp-toulouse.fr/spip.php?page=dossier&amp;article=17724&amp;theme=61&amp;num_dossier=2445&amp;univers=18">Internet et le droit d&#8217;auteur</a> &#8212;  Le dossier porte sur l’actualité des droits d’auteur et ses applications sur internet. Il a été réalisé à l’occasion d’une séance de formation qui s’est tenue au CDDP le 28 janvier 2009. Via <a href="http://www.lettrestice.com/2010/03/les-droits-dauteur-a-lheure-dinternet-un-dossier-recapitulatif/">Lettres Tice</a>.</li>
    <li><a href="http://www.1stwebdesigner.com/resources/powerful-css-tools-generators-automate-workflow/">CSS Tools Generators Automate Workflow</a> &#8212; Automatiser votre flux de production avec des outils en ligne pour gérer vos CSS.</li>
    <li><a href="http://html5test.com/">html5test</a> &#8212; Faites le test pour savoir dans quelle mesure votre navigateur prend en charge les spécifications HTML 5 !</li>
</ul>

<h2>Pour la route</h2>

<ul>
    <li><a href="http://css4design.com/le-petit-journal-du-web-1">Le petit journal du web #1</a></li>
    <li><a href="http://css4design.com/le-petit-journal-du-web-coins-arrondis-ombres-capture-d-ecran-dans-chrome-css3-et-autres-liens">Le petit journal du web #2</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://css4design.com/generateurs-de-css3-pour-tous-les-navigateurs-ou-presque/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Une Feuille de style et des « hacks CSS » pour cibler IE6, IE7 ou IE8</title>
		<link>http://css4design.com/une-feuille-de-style-et-des-hacks-css-pour-cibler-ie6-ie7-ou-ie8</link>
		<comments>http://css4design.com/une-feuille-de-style-et-des-hacks-css-pour-cibler-ie6-ie7-ou-ie8#comments</comments>
		<pubDate>Sun, 14 Mar 2010 20:38:27 +0000</pubDate>
		<dc:creator>Bruno Bichet</dc:creator>
				<category><![CDATA[HTML & CSS]]></category>
		<category><![CDATA[Intégration web]]></category>
		<category><![CDATA[Navigateurs]]></category>
		<category><![CDATA[Commentaires conditionnels]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Edito]]></category>
		<category><![CDATA[Google Chrome]]></category>
		<category><![CDATA[Hacks CSS]]></category>
		<category><![CDATA[IE6]]></category>
		<category><![CDATA[IE7]]></category>
		<category><![CDATA[IE8]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Navigateur]]></category>
		<category><![CDATA[Opera]]></category>
		<category><![CDATA[Safari]]></category>
		<category><![CDATA[Sélecteur]]></category>
		<category><![CDATA[Tutoriels]]></category>

		<guid isPermaLink="false">http://css4design.com/?p=5631</guid>
		<description><![CDATA[Les hacks CSS sont une utilisation peu conventionnelle des sélecteurs CSS pour s&#8217;adresser à un ou plusieurs navigateurs quand on doit servir une propriété ou une valeur CSS spécifique à un ou plusieurs navigateurs. Si IE6 fait la fine bouche devant sa soupe de balises, il peut être intéressant de lui servir le même plat mais dans une assiette différente (la comparaison est bancale). Ces hacks s&#8217;utilisent souvent pour cibler des versions spécifiques d&#8217;Internet Explorer (généralement IE6 et IE7). Toutefois, il en existe pour Firefox, Opéra, Safari, iPhone, etc. Par ailleurs, je n&#8217;utilise pas ces hacks CSS dans ma feuille [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 18px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fcss4design.com%2Fune-feuille-de-style-et-des-hacks-css-pour-cibler-ie6-ie7-ou-ie8">
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fcss4design.com%2Fune-feuille-de-style-et-des-hacks-css-pour-cibler-ie6-ie7-ou-ie8&amp;source=br1o&amp;style=normal&amp;service=bit.ly&amp;service_api=R_0c1ee4b64f105d1b2672690740a77d6a" height="61" width="50" />
			</a>
		</div><p>Les <em>hacks CSS</em> sont une utilisation peu conventionnelle des sélecteurs CSS pour s&#8217;adresser à un ou plusieurs navigateurs quand on doit servir une propriété ou une valeur CSS spécifique à un ou plusieurs navigateurs. Si IE6 fait la fine bouche devant sa soupe de balises, il peut être intéressant de lui servir le même plat mais dans une assiette différente (la comparaison est bancale). Ces <em>hacks</em> s&#8217;utilisent souvent pour cibler des versions spécifiques d&#8217;Internet Explorer (généralement IE6 et IE7). Toutefois, il en existe pour Firefox, Opéra, Safari, iPhone, etc. Par ailleurs, je n&#8217;utilise pas ces <em>hacks CSS</em> dans ma feuille de style principale, mais uniquement dans une CSS réservée à IE via les commentaires conditionnels.<span id="more-5631"></span></p>

<h2>Comment utiliser les hacks CSS ?</h2>

<p>Dans l&#8217;article <a href="http://css4design.com/un-seul-fichier-css-pour-cibler-ie6-et-ie7-avec-les-commentaires-conditionnels">Un seul fichier CSS pour cibler IE6 et IE7 avec les commentaires conditionnels</a>, j&#8217;utilisais un <a href="http://css4design.com/commentaires-conditionnels-d-internet-explorer-vs-hacks-css">commentaire conditionnel</a> pour cibler les versions inférieures ou égales à IE7. Toutefois, IE9 est sur les rails et il est temps de le prendre en compte, d&#8217;autant plus que<a href="http://www.zdnet.fr/actualites/internet/0,39020774,39710877,00.htm"> Microsoft veut en faire un champion</a> des standards du web en terme de rendu CSS3 et HTML5.</p>

<p>L&#8217;idée derrière la feuille de style unique pour IE est de ne pas augmenter inutilement le nombre de requêtes pour charger une CSS pour chaque version d&#8217;Internet Explorer. En attendant de voir ce que nous réserve IE9, j&#8217;ai décidé de cibler les versions inférieures ou égales à IE8 en espérant que IE9 tienne ses promesses et en attendant de voir s&#8217;il va continuer à gérer les commentaires conditionnels (auquel cas nous pourrions cibler les version inférieures à IE9).</p>

<h3>Cibler les versions &lt;= à IE8</h3>

<p><pre>&lt;!--[if lte IE 8]&gt;
    &lt;link rel="stylesheet" href="css/ie.css" type="text/css" media="screen,projection" /&gt;
&lt;![endif]--&gt;</pre>
De cette manière, les règles CSS placées dans <em>ie.css</em> s&#8217;adressent uniquement à Internet Explorer ; les autres navigateurs considèrent ces commentaires conditionnels comme de simples commentaires HTML. Ça va sans dire mais encore mieux en le disant : les déclarations situées dans <em>style.css</em> s&#8217;appliquent <strong>aussi</strong> à Internet Explorer ce qui implique que l&#8217;appel à  <em>ie.css</em> doit se situer <strong>après</strong> <em>style.css</em> pour surcharger les déclarations qui posent problème.</p>

<p class="small">Note : il existe une forme de commentaires conditionnels qui permet de cibler tous les navigateurs sauf Internet Explorer : <code>&lt;!--[if !IE]&gt; &lt;!--&gt; IE Windows ne lira pas ça &lt;!--&gt; &lt;![endif]--&gt;</code></p>

<p>Dans cette feuille de style <em>ie.css</em>, si IE6 (et seulement lui) ne se comporte pas comme prévu devant <code>#header { margin-top: 0; }</code>, il suffira d&#8217;y ajouter <code><strong>* html</strong> #header { margin-top: -5px; }</code> pour régler le problème. Si le problème concerne IE6 et IE7 et que IE8 se comporte de manière standard (c&#8217;est à dire que la règle située dans <em>style.css</em> suffit), il faudra utiliser les hacks de la manière suivante :
<pre>* html #search .submit { margin-top: -10px; } // IE6
*+html #search .submit { margin-top: -14px; } // IE7</pre>
En revanche, si vous avez également besoin d&#8217;une valeur différente pour IE8, il faudra prendre soin d&#8217;ajouter la règle CSS <code>#search .submit { margin-top: -7px; }</code> au-dessus des deux autres, soit :
<pre>&#35;search .submit { margin-top: -7px; }         //Toutes les versions d'IE
* html #search .submit { margin-top: -10px; } // Surcharge pour IE6 seulement
*+html #search .submit { margin-top: -14px; } // Surcharge pour IE7 seulement</pre></p>

<h2>Mettez vos frameworks CSS à jour</h2>

<p>Les <a href="http://css4design.com/choisir-un-frameworks-css">frameworks CSS</a> proposent souvent une feuille de style spécifique à Internet Explorer. Le plus souvent, le <em>hack</em> utilisé pour cibler IE7 est de la forme <code>html&gt;body</code> qui n&#8217;est pas pris en charge par IE6. Or, si l&#8217;on cible les versions &lt;= à IE8, ce <em>hack</em> est obsolète puisqu&#8217;il est compris par IE8. Pour y remédier, j&#8217;utilise <code>*+html</code> qui n&#8217;est compris que par IE7.</p>

<p>Ainsi, dans le fichier <em>ie.css</em> de <a href="http://www.blueprintcss.org/">Blueprint</a>, il sera nécessaire de modifier la ligne <code>html&gt;body p code { <em>white-space: normal; }</code> par <code></em>+html p code { *white-space: normal; }</code> pour éviter que IE8 ne s&#8217;emmêle les pinceaux ;)</p>

<h2>22 hacks CSS à consommer avec modération</h2>

<p>Cette liste de 22 contournements a été compilée par <a href="http://paulirish.com/2009/browser-specific-css-hacks/">Paul Irish</a>. Elle présente le double intérêt de la quasi-exhausitivité et de distinguer les <em>hacks</em> jouant sur les sélecteurs de ceux qui concernent les attributs.</p>

<h2>Hacks sur les sélecteurs</h2>

<ol>
    <li>
<h3>IE6 et inférieurs</h3>
<pre>* html .test  { color: red }</pre>
</li>
    <li>
<h3>IE7</h3>
<pre>*:first-child+html .test { color: red }</pre>
</li>
    <li>
<h3>IE7, Firefox, Safari, Opera</h3>
<pre>html&gt;body .test { color: red }</pre>
</li>
    <li>
<h3>IE8, Firefox, Safari, Opera <small>(Tout sauf IE 6,7)</small></h3>
<pre>html&gt;/**/body .test { color: red }</pre>
</li>
    <li>
<h3>Opera 9.27 et inférieurs, Safari 2</h3>
<pre>html:first-child .test { color: red }</pre>
</li>
    <li>
<h3>Safari 2 &#8212; 3</h3>
<pre>html[xmlns*=""] body:last-child .test { color: red }</pre>
</li>
    <li>
<h3>safari 3+, Chrome 1+, Opera9+, Firefox 3.5+</h3>
<pre>body:nth-of-type(1) .test { color: red }</pre>
</li>
    <li>
<h3>Safari 3+, Chrome 1+, Opera9+, Firefox 3.5+</h3>
<pre>body:first-of-type .test { color: red }</pre>
</li>
    <li>
<h3>Safaris 3+, Chrome1+</h3>
<pre>   @media screen and (-webkit-min-device-pixel-ratio:0) {
            .test  { color: red }
    }</pre>
</li>
    <li>
<h3>iPhone / Webkit mobile</h3>
<pre>   @media screen and (max-device-width: 480px) {
            .test { color: red }
    }</pre>
</li>
    <li>
<h3>Safari 2 &#8212; 3.1</h3>
<pre>html[xmlns*=""]:root .test  { color: red }</pre>
</li>
    <li>
<h3>Safari 2 &#8212; 3.1, Opera 9.25</h3>
<pre>*|html[xmlns*=""] .test { color: red }</pre>
</li>
    <li>
<h3>Tout sauf IE6 &#8212; 8</h3>
<pre>:root *&gt; .test { color: red  }</pre>
</li>
    <li>
<h3>IE7</h3>
<pre>*+html .test { color: red }</pre>
</li>
    <li>
<h3>Uniquement Firefox. 1+</h3>
<pre>.test,  x:-moz-any-link  { color: red }</pre>
</li>
    <li>
<h3>Firefox 3.0+</h3>
<pre>.test,  x:-moz-any-link, x:default  { color: red }</pre>
</li>
</ol>

<h2>Hacks sur les attributs</h2>

<ol>
    <li>
<h3>IE6</h3>
<pre>.test { _color: blue }</pre>
</li>
    <li>
<h3>IE6, IE7</h3>
<pre>.test { *color: blue /* or #color: blue */ }</pre>
</li>
    <li>
<h3>Tout sauf IE6</h3>
<pre>.test { color/**/: blue }</pre>
</li>
    <li>
<h3>IE6, IE7, IE8</h3>
<pre>.test { color: blue\9 }</pre>
</li>
    <li>
<h3>IE7, IE8</h3>
<pre>.test { color/*\**/: blue\9 }</pre>
</li>
    <li>
<h3>IE6, IE7 &#8212; fonctionne comme !important</h3>
<pre>.test { color: blue !ie } /* la chaine après <code>!</code> peut être n'importe quoi */</pre>
</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://css4design.com/une-feuille-de-style-et-des-hacks-css-pour-cibler-ie6-ie7-ou-ie8/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Framework CSS &#8212; Sémantique, maquette dynamique et autres notes</title>
		<link>http://css4design.com/framework-css-semantique-maquette-dynamique-et-autres-notes</link>
		<comments>http://css4design.com/framework-css-semantique-maquette-dynamique-et-autres-notes#comments</comments>
		<pubDate>Mon, 08 Mar 2010 07:12:41 +0000</pubDate>
		<dc:creator>Bruno Bichet</dc:creator>
				<category><![CDATA[Conception de site web]]></category>
		<category><![CDATA[HTML & CSS]]></category>
		<category><![CDATA[Intégration web]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Edito]]></category>
		<category><![CDATA[Framework CSS]]></category>
		<category><![CDATA[Grille]]></category>
		<category><![CDATA[Maquette]]></category>
		<category><![CDATA[Mise en page]]></category>
		<category><![CDATA[Sémantique]]></category>

		<guid isPermaLink="false">http://css4design.com/?p=5540</guid>
		<description><![CDATA[Les frameworks CSS ont fait couler beaucoup de pixels : d&#8217;un côté, ils proposent une méthode à l&#8217;épreuve des balles pour placer les blocs sur sur la page en tenant compte des contraintes cross-browser ; de l&#8217;autre, ils ajoutent des classes CSS superflues dans le code HTML pour la présentation des contenus, ce qui n&#8217;est pas jugé «sémantique» par les farouches défenseurs d&#8217;une séparation entre le fond et la forme. Voilà en gros l&#8217;avantage principal et l&#8217;inconvénient majeur qu&#8217;on peut dégager si on met de côté le faux problème du poids de ces frameworks. Après avoir donné mon point de [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 18px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fcss4design.com%2Fframework-css-semantique-maquette-dynamique-et-autres-notes">
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fcss4design.com%2Fframework-css-semantique-maquette-dynamique-et-autres-notes&amp;source=br1o&amp;style=normal&amp;service=bit.ly&amp;service_api=R_0c1ee4b64f105d1b2672690740a77d6a" height="61" width="50" />
			</a>
		</div><p>Les frameworks CSS ont fait couler beaucoup de pixels : d&#8217;un côté, ils proposent une méthode à l&#8217;épreuve des balles pour placer les blocs sur sur la page en tenant compte des contraintes <em>cross-browser </em>; de l&#8217;autre, ils ajoutent des classes CSS superflues dans le code HTML pour la présentation des contenus, ce qui n&#8217;est pas jugé «sémantique» par les farouches défenseurs d&#8217;une séparation entre le fond et la forme. Voilà en gros l&#8217;avantage principal et l&#8217;inconvénient majeur qu&#8217;on peut dégager si on met de côté le faux problème du poids de ces frameworks. Après avoir donné mon point de vue sur cette question de «sémantique» j&#8217;expliquerais comment l&#8217;ajout de classes liées à la présentation dans le HTML peut s&#8217;avérer très pratique à l&#8217;heure du web «sur-mesure».<span id="more-5540"></span></p>

<h2>Comment ça marche, un framework CSS ?</h2>

<p>Le positionnement des blocs avec un framework CSS s&#8217;effectue <em>grosso modo</em> en attribuant une classe CSS pour spécifier les propriétés <code>width</code> et <code>margin</code> aux blocs avec une ou <a href="http://css4design.com/retablir-le-flux-apres-des-elements-flottants-en-css-sans-balise-html-supplementaire">plusieurs techniques pour rétablir le flux HTML</a> après les éléments possédant la propriété <code>float</code>.</p>

<p>Dans une grille en 16 colonnes, pour placer une image sur 4 colonnes et du texte sur les 12 restantes, on pourra utiliser le marquage HTML suivant (je vous fais grâce des CSS, le code HTML est assez explicite) :
<pre>&lt;div id="header" class="grid_16 clear"&gt;
    &lt;div class="grid_4"&gt;&lt;img src="/img/logo.png" /&gt;&lt;/div&gt;
    &lt;div class="grid_12 last"&gt;Mon texte sur 12 colonnes&lt;/div&gt;
&lt;/div&gt;</pre>
Pour beaucoup, les classes .<em>col_16</em> et <em>last</em> (voire même .<em>clear</em>) sont une intrusion, que dis-je, une déclaration de guerre de la forme contre le fond. Pour tout dire, je suis assez partagé moi-même sur le sujet, mais je m&#8217;accroche&#8230; J&#8217;utilise souvent la partie «grille» des <em>frameworks</em> pour mettre en place la structure des pages car j&#8217;ai déjà l&#8217;habitude de concevoir le design d&#8217;un site avec un découpage en colonnes.</p>

<p>Attention, pas forcément du <em>tout fait</em> en <em>950px</em> ou <em>960px </em>mais en déterminant le «pas» de la grille selon <strong>mes</strong> besoins. Je laisse ensuite  les fastidieux calculs à un générateur de grille, qu&#8217;il s&#8217;agisse de <a href="http://css4design.com/boks-editeur-visuel-de-grilles-css-pour-blueprint">boks</a> pour <a href="http://www.blueprintcss.org/">Blueprint</a> ou encore de <a href="http://headless-studios.com/960.ls/">960 Layout System</a> pour <a href="http://960.gs/">960.gs</a>.</p>

<h2>Un peu (ou pas) de sémantique</h2>

<p>Les classes .<em>span-4</em> ou .<em>grid_4</em> ne sont pas sémantiques dans le sens où &#8212; pour certains &#8212; elles véhiculent une notion d&#8217;apparence et non pas d&#8217;utilité, de sens. Ainsi, une classe .<em>warning </em>est préférable à une classe .<em>rouge</em> même si la couleur de .<em>warning</em> est rouge ; si on change d&#8217;avis, on aura l&#8217;air fin avec notre classe .<em>rouge</em> affichant du texte orange. L&#8217;idée, c&#8217;est d&#8217;être à la fois très précis et suffisamment générique pour s&#8217;adapter à toutes les situations.</p>

<p>Pour revenir aux classes spécifiant la largeur des colonnes, j&#8217;ai toujours pensé qu&#8217;elles apportaient du sens, un peu à l&#8217;image de la presse quotidienne où l&#8217;on met un titre sur 8 colonnes, signifiant ainsi son importance par rapport aux autres contenus (à supposer que la maquette comporte un maximum de 8 colonnes).</p>

<p>Le côté sémantique de la chose est surtout à mettre en regard des contenus à maquetter : s&#8217;ils n&#8217;ont pas de sens en eux-mêmes, toute la sémantique du monde n&#8217;y pourra rien changer :D</p>

<p>Pour finir avec cette question de sémantique, il reste la possibilité de renommer les classes .<em>span-x</em> ou .<em>grid_x</em>. En fonction de votre projet, vous pourrez utiliser des termes plus en accord avec vos contenus comme .<em>a-la-une</em> pour .<em>span-16</em>, <em>.breves</em> pour <em>.span-4</em> ou encore <em>.entrefilet</em> pour <em>.span-2</em>, etc. On peut donc considérer que des contenus auxquels on applique un .<em>span-16</em> sont plus importants que ceux auxquels ont attribut la classe .<em>span-4</em> et ainsi de suite.</p>

<p>Comme j&#8217;ai déjà eu l&#8217;occasion de le dire dans <a href="http://css4design.com/framework-css-semantique-comment-je-vois-les-choses">Framework CSS sémantique ? Comment je vois les choses</a> (et au risque de me répéter) :</p>

<blockquote>[...] la suite des <em>.span-x</em> peut se comprendre comme l’importance accordées à chaque bloc : du moins important (<em>.span-1</em>) au plus important (<em>.span-24</em>), à l’image de la presse écrite où un article surmonté d’un titre en «8 colonnes à Une» mérite plus d’attention qu’un entrefilet sur 2 colonnes.</blockquote>

<h2>Les avantages des frameworks CSS</h2>

<h3>Standardiser les méthodes de travail</h3>

<p>Quand plusieurs personnes interviennent sur le code HTML pour placer ou déplacer des éléments (ex. supprimer ou ajouter une sidebar, un bloc de contenu, etc.) il vaut mieux avoir un jeu de classes CSS (issus d&#8217;un framework ou non, d&#8217;ailleurs) pour éviter que chaque intervenant bidouille le fichier CSS avec sa «méthode» : certains sont adeptes des <code>position: absolute</code>, d&#8217;autres raffolent des <code>float: left</code>, d&#8217;autres des <code>table</code>, etc. Avec des classes standardisées comme <em>span-x</em>, <em>last</em> et les <em>clearfix</em> qui vont avec, tout devient plus simple et cohérent.</p>

<h3>Des maquettes dynamiques côté serveur ou client grâce aux grilles</h3>

<p>Autre argument qui milite en faveur de la mise en place d&#8217;une grille avec un framework, c&#8217;est qu&#8217;en travaillant de cette manière, il devient possible de modifier dynamiquement la mise en page côté serveur avec PHP ou côté client avec Javascript.</p>

<p>Pour distribuer votre contenu sur 4 colonnes au lieu de 8, il suffira de modifier tout ou partie du nom de la classe utilisée (le «4» de col_4 par «8», par exemple) sans être obligé d&#8217;intervenir sur la feuille de style ou d&#8217;en charger une autre à la volée.</p>

<h3>Frameworks PHP, Javascript et pourquoi pas CSS ?</h3>

<p>Les critiques concernant les frameworks CSS sont souvent les mêmes que celles qui ont été faites contre les frameworks PHP ou Javascript avant que leur utilisation se généralise. Pour illustrer mon propos, voici un extrait de l&#8217;intervention de <a href="http://www.appli-box.com/">Didier Galland</a> sur <a href="http://groups.google.com/group/webdevfr?hl=fr">WebDevFr</a> à propos de l&#8217;industrialisation de l&#8217;intégration web :</p>

<blockquote>On a tenu exactement le même discours à propos de PHP, puis à propos de javascript. Les frameworks dans ces deux domaines ont largement prouvé qu&#8217;ils permettaient des améliorations. Je ne vois pas pourquoi l&#8217;intégration (css/html + javascript) ne pourrait pas bénéficier des mêmes améliorations. On a le droit d&#8217;utiliser son framework personnel dans son coin,  mais pour le bien de mon agence, je ne peux pas bloquer mes futures évolutions (en personne ou en techniques) à cause de cette attitude, j&#8217;aurais donc forcément tendance à privilégier un professionnel au courant de ces techniques dans mes recrutements ou mes contracteurs freelances.</blockquote>

<h3>Aller au bout de la logique du reset CSS</h3>

<p>Tout le monde connait le <a href="http://meyerweb.com/eric/tools/css/reset/">reset CSS d&#8217;Eric Meyer</a> que l&#8217;on trouve dans de nombreux framework. Quand on y réfléchit cinq minutes, la suite logique de ce reset, c&#8217;est le frameworks. Il faut bien voir que la plupart d&#8217;entre eux ne sont pas spécialement très lourds et quand on fait le compte des déclarations redondantes qui se trouvent dans une feuille de style un peu touffue (parce qu&#8217;évidement, si votre projet tient en 20 lignes de CSS, c&#8217;est peut-être pas la peine de se poser la question), on se rend compte que les frameworks ne sont pas si gourmands.</p>

<h3>Remplacer les styles par défaut des navigateurs</h3>

<p>J&#8217;ai toujours trouvé que les styles par défaut appliqués par les navigateurs manquait d&#8217;originalité et de <em>peps</em>. Il suffit de mettre un soupçon de <a href="http://code.google.com/p/css-boilerplate/">Boilerplate </a>ou de <a href="http://csswizardry.com/typogridphy/">Typogridfy </a>pour que de très banal, la mise en page par défaut prenne un coup de jeune et de modernité !</p>

<h2><strong>Comment déterminer le «pas de la grille»</strong></h2>

<p>Un argument récurrent qui va à l&#8217;encontre de l&#8217;utilisation des grilles concerne la partie conception graphique. Les grilles entraveraient la créativité. Pourquoi pas. Mais je mets au défi quiconque de proposer un design de site web qui ne rentrerait pas dans une grille. Une grille n&#8217;est pas forcément synonyme de 12, 16 ou 24 colonnes. Il peut s&#8217;agir de 2, 4, 6 ou 8 colonnes et pourquoi pas d&#8217;un nombre impair de colonnes comme 1 colonne (un peu le degré zéro de la grille, mais bon&#8230;), 3 ou 5 colonnes pour bénéficier d&#8217;une asymétrie créative ? Tout est possible.</p>

<p>Pour aller au plus simple, si l&#8217;on veut un site avec un bloc de contenu et une barre latérale, on pourra diviser la page en 3 parties pour obtenir les ratios 2/3 pour le contenu principal et 1/3 pour la sidebar ou en 4 parties, soit 3/4 pour le contenu principal et 1/4 pour la barre latérale. On pourra se baser sur les proportions 1/3 ou 1/4 pour la largeur des images accompagnant les textes.</p>

<p>Ensuite, rien n&#8217;empêche de diviser chaque colonne en plusieurs parties pour granulariser l&#8217;information selon les besoins : affichage de miniatures, etc. Celà permet d&#8217;obtenir une mise en page très simple tout en bénéficiant d&#8217;une système de grille souple et efficace.</p>

<h2>Quelques liens à propos des frameworks et des reset CSS</h2>

<ul>
    <li><a href="http://css4design.com/choisir-un-frameworks-css">24 frameworks CSS — Mettez une grille (ou pas) dans votre site web</a></li>
    <li><a href="http://css4design.com/frameworks-css-reset-css-design-from-scratch">Frameworks CSS + Reset CSS : design from scratch</a></li>
    <li><a href="http://css4design.com/quelques-notes-sur-les-grilles-de-mise-en-page">Quelques notes sur les grilles de mise en page</a></li>
    <li><a href="http://css4design.com/grid-design-quelques-notes-sur-linteret-des-grilles-de-mise-en-page">Grid Design — Quelques notes sur l’intérêt des grilles de mise en page</a></li>
    <li><a href="http://css4design.com/framework-css-semantique-comment-je-vois-les-choses">Framework CSS sémantique ? Comment je vois les choses</a></li>
    <li><a href="http://css4design.com/framework-css-mettez-vos-grilles-au-pas">Framework CSS — mettez vos grilles au pas !</a></li>
    <li><a href="http://css4design.com/nombre-d-or-suite-de-fibonacci-et-autres-grilles-de-mise-en-page-pour-le-design-web">Nombre d’or, suite de Fibonacci et autres grilles de mise en page pour le design web</a></li>
    <li><a rel="bookmark" href="http://css4design.com/apres-reset-reloaded-eric-meyer-fait-risette-avec-resetting-again">Styles CSS par défaut : après Reset Reloaded, Eric Meyer fait encore risette avec Resetting Again</a></li>
    <li><a rel="bookmark" href="http://css4design.com/5-reset-css-a-la-loupe-pour-une-remise-a-zero-des-valeurs-par-defaut-des-navigateurs">5 Reset CSS à la loupe pour une remise à zéro des valeurs par défaut des navigateurs</a></li>
</ul>

<h2>Pas de conclusion hâtive !</h2>

<p>Je pense que j&#8217;aurais l&#8217;occasion de revenir sur ces questions (oui encore) notamment sur la partie grille et créativité qui semble passionner beaucoup de monde à juste titre. N&#8217;hésitez pas à partager vos expériences en la matière. A bientôt !</p>
]]></content:encoded>
			<wfw:commentRss>http://css4design.com/framework-css-semantique-maquette-dynamique-et-autres-notes/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Générateur de coins arrondis avec border-radius</title>
		<link>http://css4design.com/generateur-de-coins-arrondis-avec-border-radius</link>
		<comments>http://css4design.com/generateur-de-coins-arrondis-avec-border-radius#comments</comments>
		<pubDate>Fri, 05 Mar 2010 05:28:08 +0000</pubDate>
		<dc:creator>Bruno Bichet</dc:creator>
				<category><![CDATA[HTML & CSS]]></category>
		<category><![CDATA[Navigateurs]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Border-radius]]></category>
		<category><![CDATA[Camino]]></category>
		<category><![CDATA[Coins arrondis]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[CSS3]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Gecko]]></category>
		<category><![CDATA[Générateur]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Outils]]></category>
		<category><![CDATA[Safari]]></category>
		<category><![CDATA[Webkit]]></category>

		<guid isPermaLink="false">http://css4design.com/?p=5598</guid>
		<description><![CDATA[La propriété CSS3 border-radius permet de faire des coins arrondis pour rendre nos pages web plus jolies à regarder. Tous les navigateurs ne prennent pas en charge la propriété CSS3 border-radius : les agents utilisateurs carburant au moteur de rendu Webkit (Chrome, Safari, iPhone, Android) utilisent -webkit-border-radius et ceux qui tournent sur Gecko (Firefox, Camino) utilisent -moz-border-radius. Quant à Internet Explorer, on peut garder l&#8217;espoir qu&#8217;avec IE9 ont verra un peu de lumière au bout du tunnel&#8230; Pour assurer une compatibilité maximum, il faut utiliser plein de déclarations CSS redondantes et c&#8217;est fastidieux. Heureusement, jacob bijani (Directeur de la création [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 18px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fcss4design.com%2Fgenerateur-de-coins-arrondis-avec-border-radius">
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fcss4design.com%2Fgenerateur-de-coins-arrondis-avec-border-radius&amp;source=br1o&amp;style=normal&amp;service=bit.ly&amp;service_api=R_0c1ee4b64f105d1b2672690740a77d6a" height="61" width="50" />
			</a>
		</div><p>La propriété CSS3 <code>border-radius</code> permet de faire des coins arrondis pour rendre nos pages web plus jolies à regarder. Tous les navigateurs ne prennent pas en charge la propriété CSS3 <code>border-radius</code> : les agents utilisateurs carburant au moteur de rendu <a href="http://fr.wikipedia.org/wiki/WebKit">Webkit</a> (Chrome, Safari, iPhone, Android) utilisent <code>-webkit-border-radius</code> et ceux qui tournent sur <a href="http://fr.wikipedia.org/wiki/Gecko_(moteur_de_rendu)">Gecko</a> (Firefox, Camino) utilisent <code>-moz-border-radius</code>. Quant à Internet Explorer, on peut garder l&#8217;espoir qu&#8217;avec IE9 ont verra un peu de lumière au bout du tunnel&#8230; <span id="more-5598"></span></p>

<p>Pour assurer une compatibilité maximum, il faut utiliser plein de déclarations CSS redondantes et c&#8217;est fastidieux. Heureusement, <a href="http://jacobbijani.com/">jacob bijani</a> (Directeur de la création de <a href="http://www.tumblr.com/">Tumblr</a> et à l&#8217;origine de <a href="http://start.io/">start.io</a>) a développé un générateur de coins arrondis qui s&#8217;appelle&#8230; <a href="http://border-radius.com/">border-radius.com</a> ;)</p>

<h2>Des coins arrondis différents à chaque angle</h2>

<h6>Il est possible de spécifier les coins arrondis pour Webkit, Gecko et CSS3 en cochant les cases appropriées</h6>

<div id="attachment_5599" class="wp-caption alignleft" style="width: 444px"><a href="http://css4design.com/wp-content/uploads/2010/03/border-radius-css3.jpg"><img class="size-large wp-image-5599" title="border-radius-css3" src="http://css4design.com/wp-content/uploads/2010/03/border-radius-css3-434x259.jpg" alt="" width="434" height="259" /></a><p class="wp-caption-text">Un générateur de coins arrondis en CSS3</p></div>

<h2>Exemple de coins arrondis en haut mais pas en bas</h2>

<p><pre>.roundies-top {
    -moz-border-radius: 5px 5px 0 0;
    -webkit-border-radius: 5px 5px 0 0;
    -webkit-border-top-left-radius: 5px; /* pour Chrome <em>/
    -webkit-border-top-right-radius: 5px; /</em> pour Chrome */
    border-radius: 5px 5px 0 0;
}</pre></p>

<p class="small">Google Chrome n&#8217;accepte pas les raccourcis : il faut ajouter explicitement chaque coins arrondis.</p>

<h2>Exemple de coins arrondis identiques</h2>

<p>Le générateur n&#8217;utilise pas la syntaxe raccourcie qui permet de gagner quelques lignes. Pour avoir des coins arrondis identiques pour les 4 angles avec une écriture plus concise on peut utiliser :
<pre>.rounded-all {
    -webkit-border-radius: 5px;
    -moz-border-radius: 5px;
    border-radius: 5px;
}</pre></p>

<h2>Pour terminer</h2>

<p>Je vous conseille la lecture de <a href="http://www.alsacreations.com/tuto/lire/891-coins-arrondis-css-sans-images.html">Créer des coins arrondis en CSS et sans images</a> pour plus d&#8217;informations, notamment en ce qui concerne Internet Explorer avec du Javascript et du composant <code>.htc</code> en veux-tu en voilà !</p>
]]></content:encoded>
			<wfw:commentRss>http://css4design.com/generateur-de-coins-arrondis-avec-border-radius/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>WordPress &#8212; Menus «funky» avec wp_list_bookmarks()</title>
		<link>http://css4design.com/wordpress-menu-funky-avec-wp_list_bookmarks</link>
		<comments>http://css4design.com/wordpress-menu-funky-avec-wp_list_bookmarks#comments</comments>
		<pubDate>Wed, 24 Feb 2010 18:56:47 +0000</pubDate>
		<dc:creator>Bruno Bichet</dc:creator>
				<category><![CDATA[Content Management System]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[CSS3]]></category>
		<category><![CDATA[Menu]]></category>
		<category><![CDATA[Navigation]]></category>
		<category><![CDATA[Système de gestion de contenu (CMS)]]></category>
		<category><![CDATA[Template]]></category>

		<guid isPermaLink="false">http://css4design.com/?p=5410</guid>
		<description><![CDATA[WordPress est un CMS formidable, ce qui ne l&#8217;empêche pas d&#8217;avoir des lacunes. L&#8217;une d&#8217;elle concerne la possibilité de construire des menus composés de liens vers des pages ou des articles publiés sur le blog, ce qui est courant avec des CMS comme Drupal ou Joomla. En général, je me contente de créer mon menu en HTML et ça fonctionne très bien. Toutefois, cette solution n&#8217;est pas toujours très évidente à maintenir. Voici la solution que j&#8217;ai retenue pour la mise en place des liens pointant vers les articles que je souhaitais mettre en avant sur ce blog. La fonction [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 18px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fcss4design.com%2Fwordpress-menu-funky-avec-wp_list_bookmarks">
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fcss4design.com%2Fwordpress-menu-funky-avec-wp_list_bookmarks&amp;source=br1o&amp;style=normal&amp;service=bit.ly&amp;service_api=R_0c1ee4b64f105d1b2672690740a77d6a" height="61" width="50" />
			</a>
		</div><p><a href="http://css4design.com/dites-wordpress-pas-weirdpress">WordPress est un CMS formidable</a>, ce qui ne l&#8217;empêche pas d&#8217;<a href="http://css4design.com/que-manque-t-il-a-wordpress">avoir des lacunes</a>. L&#8217;une d&#8217;elle concerne la possibilité de construire des menus composés de liens vers des pages ou des articles publiés sur le blog, ce qui est courant avec des CMS comme <a href="http://drupalfr.org/">Drupal</a> ou <a href="http://www.joomla.fr/">Joomla</a>. En général, je me contente de créer mon menu en HTML et ça fonctionne très bien. Toutefois, cette solution n&#8217;est pas toujours très évidente à maintenir. Voici la solution que j&#8217;ai retenue pour la mise en place des liens pointant vers les articles que je souhaitais mettre en avant sur ce blog.<span id="more-5410"></span></p>

<h2>La fonction wp_list_bookmarks()</h2>

<p>La fonction <a href="http://codex.wordpress.org/Template_Tags/wp_list_bookmarks">wp_list_bookmarks()</a> possède plusieurs arguments intéressants dont l&#8217;identifiant de la catégorie à afficher <em>category=386</em> et <em>before</em> et <em>after</em> qui permettent de spécifier les balises HTML que vous voulez avant et après chaque élément de liste. Par défaut, il s&#8217;agit de la balise <code>li</code>. Toutefois, pour une bonne gestion des coins arrondis, j&#8217;ai ajouté une balise <code>p</code> (oui, un <code>p</code> dans le <code>li</code>, ça manque d&#8217;élégance&#8230; ), ce qui oblige à préciser explicitement les balises <code>li</code>.
<pre>&lt;div id="featured-posts" class="wrapper"&gt;
    &lt;ul&gt;
        &lt;?php echo wp_list_bookmarks('title_li=&amp;categorize=0&amp;category=386&amp;before=&lt;li&gt;&lt;p&gt;&amp;after=&lt;/p&gt;&lt;/li&gt;'); ?&gt;
    &lt;/ul&gt;
&lt;/div&gt;</pre></p>

<h2>Une pincée de CSS3 pour épicer le menu</h2>

<p><pre>&#35;featured-posts ul {
    margin: 0;
    padding: 0;
    list-style: none;
}
&#35;featured-posts li {
    float: left;
    width: 102px;
    margin-right: 18px;
}
&#35;featured-posts li:hover {
    background: #2F0615;
    color: #fff;
/*
* Coins arrondis
<em>/
    -moz-border-radius: 5px 0 5px 0;
    -webkit-border-radius: 5px 0 5px 0;
    border-radius: 5px 0 5px 0;
    -webkit-border-top-left-radius: 5px;
    -webkit-border-top-right-radius: 0;
    -webkit-border-bottom-left-radius: 0;
    -webkit-border-bottom-right-radius: 5px;
/</em>
* Ombres portées
*/
    -webkit-box-shadow: #aaa 3px 3px 3px;
    -moz-box-shadow: #aaa 3px 3px 3px;
    box-shadow: #aaa 3px 3px 3px;
}</pre>
En fonction de la <a href="http://css4design.com/css-4-design-nouvelle-charte-graphique-et-redesign-du-logo">grille de mise en page</a> que j&#8217;ai mise en place sur ce blog, j&#8217;ai opté pour l&#8217;affichage de 8 liens occupant chacun 2 colonnes sur les 16 disponibles. Si vous voulez disposer d&#8217;un deuxième menu comme celui que j&#8217;ai ajouté dans mon pied de page, il suffit de dupliquer la fonction wp_list_bookmarks, de changer l&#8217;<code>id</code> de la catégorie des liens et de remplacer <code>#featured-posts</code> par <code>.featured-posts</code> <em>and the cat&#8217;s in the bag!</em></p>

<p class="small">Note : si vous aviez déjà utilisé le <em>Widget Liens</em> dans votre barre latérale, cette catégorie est affichée deux fois. Pour la supprimer de votre <em>blogroll</em> faites glisser le <em>Widget Liens</em>, sélectionnez la catégorie dans le menu déroulant et répétez l&#8217;opération autant de fois que nécessaire.</p>

<h2>Pour finir</h2>

<p>Oui,  toutes ces opérations sont un peu fastidieuses, mais je n&#8217;ai pas encore trouvé mieux à part attendre la sortie prochaine de WordPress 3.0. D&#8217;ailleurs, à ce propos, je vous propose de lire l&#8217;article <a href="http://www.wordpress-fr.net/blog/les-menus-lintegration-de-mu-et-une-course-aux-correctifs">Les menus, l’intégration de MU, et une course aux correctifs !</a> de Xavier Borderie sur <a href="http://www.wordpress-fr.net/blog/">WordPress Francophone</a> qui parle notamment de l&#8217;intégration prochaine d&#8217;une fonctionnalités permettant de faire des menus en veux-tu en voilà !</p>
]]></content:encoded>
			<wfw:commentRss>http://css4design.com/wordpress-menu-funky-avec-wp_list_bookmarks/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>27 frameworks CSS &#8212; Mettez une grille dans votre site web</title>
		<link>http://css4design.com/choisir-un-frameworks-css</link>
		<comments>http://css4design.com/choisir-un-frameworks-css#comments</comments>
		<pubDate>Wed, 10 Feb 2010 00:45:51 +0000</pubDate>
		<dc:creator>Bruno Bichet</dc:creator>
				<category><![CDATA[Conception de site web]]></category>
		<category><![CDATA[HTML & CSS]]></category>
		<category><![CDATA[Colonnes]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Edito]]></category>
		<category><![CDATA[Framework CSS]]></category>
		<category><![CDATA[Gouttière]]></category>
		<category><![CDATA[typographie]]></category>

		<guid isPermaLink="false">http://css4design.com/?p=4781</guid>
		<description><![CDATA[Il existe de nombreuses raisons pour ne pas utiliser de frameworks CSS lors de la phase de conception ou d&#8217;intégration de votre site web : le poids, l&#8217;intrusion des classes CSS dans le code HTML qui devient la règle pour placer le moindre bloc de contenu, le fait que de nombreuses règles ne sont pas utilisées, etc. Pour ma part, j&#8217;aime bien tester les frameworks qui tombent à portée de souris, et je n&#8217;hésite pas à faire des expériences d&#8217;hybridation : rien de tel qu&#8217;un bout de reset CSS d&#8217;Eric Meyer avec la feuille de style de typogridphy, le tout [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 18px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fcss4design.com%2Fchoisir-un-frameworks-css">
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fcss4design.com%2Fchoisir-un-frameworks-css&amp;source=br1o&amp;style=normal&amp;service=bit.ly&amp;service_api=R_0c1ee4b64f105d1b2672690740a77d6a" height="61" width="50" />
			</a>
		</div><p>Il existe de nombreuses raisons pour ne pas utiliser de <a href="http://css4design.com/frameworks-css-reset-css-design-from-scratch">frameworks CSS</a> lors de la phase de conception ou d&#8217;intégration de votre site web : le poids, l&#8217;intrusion des classes CSS dans le code HTML qui devient la règle pour placer le moindre bloc de contenu, le fait que de nombreuses règles ne sont pas utilisées, etc. Pour ma part, j&#8217;aime bien tester les frameworks qui tombent à portée de souris, et je n&#8217;hésite pas à faire des expériences d&#8217;hybridation : rien de tel qu&#8217;un bout de <a href="http://meyerweb.com/eric/tools/css/reset/">reset CSS</a> d&#8217;Eric Meyer avec la feuille de style de <a href="http://csswizardry.com/typogridphy/">typogridphy</a>, le tout mis en forme avec la robustesse de <a href="http://www.blueprintcss.org/">Blueprint</a>.<span id="more-4781"></span></p>

<dl>
<dt><a href="http://www.52framework.com/">52Framework</a></dt>
<dd>Ce framework est résoluement tourné vers l&#8217;avenir en utilisant HTML5 avec <code>header</code>, <code>nav</code>, <code>section</code>, <code>article</code>, <code>footer</code> et CSS3 avec le sélecteur <code>::selection</code>, les coins arrondis, les ombres portées pour le texte ou les blocs. La grille est composée de 16 colonnes de 52 pixels chacune séparées par une gouttière de 8 pixels. Les fichiers CSS de <em>52Framework</em> vont à l&#8217;essentiel et si je préfère le système de grille de Blueprint, ça vaut le coup de de s&#8217;inspirer de <em>reset.css</em> (avec les nouvelles balises HTML5) et de <em>general.css</em> pour avoir des éléments de formulaires avec des coins arrondis et des ombres portées.</dd>

<dt><a href="http://elements.projectdesigns.org/">Element CSS Framework</a></dt>
<dd>Ce framework propose un environement global pour créer un site web avec un ensemble de dossiers prêts à être remplis : <em>/clientFiles</em>, <em>/concepts</em>, <em>/copy</em>, <em>/js</em>,  etc. et d&#8217;autres contenant les éléments de base du framework comme <em>/css</em> (qui contient les fichiers du framework proprement dit) et <em>/﻿elementsImages</em> qui contient les icônes qui accompagnent <em>externalLinks.css.</em> Ces deux derniers éléments faisant tout le charme de ce framework en fournissant des classes CSS et des icônes pour représenter les liens externes.</dd>

<dt><a href="http://baselinecss.com/">Baseline CSS</a></dt>
<dd>Aligner des lignes comportant des textes de tailless différentes n&#8217;est pas toujours facile et c&#8217;est l&#8217;objectif de ce framework moderne (oui, ça veut dire qu&#8217;il y a un soupçon de HTML5et de CSS3 dedans). Notez que la compatibilité avec IE6 n&#8217;est pas garantie. Au menu : un reset CSS avec certaines des nouvelles balises HTML5 (mais curieusement avec des balises HTML dépréciées également), un système de grille, des styles de formulaires et un peu de  typographie pour terminer.</dd>

<dt><a href="http://960.gs/">960.gs</a></dt>
<dd>Ce système de grille est conçu pour fluidifier votre chaine de production avec des dimensions communément utilisées à partir d&#8217;une largeur de 960 pixels. Existe en deux parfums : 12, 16 ou 24 colonnes. Des classes comme <code>push_XX</code> ou <code>pull_XX</code> permettent de réarranger les blocs indépendamment de leur ordre d&#8217;apparition dans le code HTML. Un <a href="http://www.spry-soft.com/grids/">générateur de grille</a> personnalisée permet de spécifier la largeur et le nombre des colonnes et la taille de la gouttière. Il existe même un <a href="http://headless-studios.com/960.ls/">générateur de blocs</a> permettant de définir votre mise en page .</dd>

<dt><a href="http://devkick.com/lab/tripoli/">tripoli</a></dt>
<dd>Redéfinit une feuille de style par défaut pour les balises HTML de manière à assurer un rendu identique sur les navigateurs présents sur le marché. Propose de nombreux fichiers additionnels comme <code>layout.css</code> pour la grille ou <code>negative.css</code> pour inverses les contrastes, etc.</dd>

<dt><a href="http://www.yaml.de/en/">yaml</a></dt>
<dd><em>Yet Another Multicolumn Layout</em> est un framework (x)html/css pour la création de maquettes robustes et flexibles centré sur la légèreté et l&#8217;accessibilité. Propose un générateur WYSIWYG <a href="http://builder.yaml.de/">YAML Builder</a> pour construire votre mise en page.</dd>

<dt><a href="http://bluetrip.org/">bluetrip</a></dt>
<dd>Le meilleur de <em>Blueprint</em> et de <em>Tripoli</em> avec un zeste de <em>Hartija</em> pour la feuille de style à l&#8217;impression, la simplicité de <em>960 Grid System</em>. Le fichier screen.css regroupe le reset CSS d&#8217;Eric Meyer, le système de grille, la gestion des liens externes (icône selon l&#8217;extension ou la destination) et de l&#8217;inversion des contraste, plus des styles pratiques pour la gestion des textes.</dd>

<dt><a href="http://csswizardry.com/typogridphy/">typogridphy</a></dt>
<dd>Basé sur <em>960 Grid System</em>, ce framework permet de créer des grilles flexibles d&#8217;une grande beauté typographique.</dd>

<dt><a href="https://developer.yahoo.com/yui/grids/">yui grids</a></dt>
<dd>Offre un jeu prédéfinit de largeur de page comprenant six <em>templates</em> avec la possibilité de subdiviser les blocs. Au total c&#8217;est plus de 1 000 combinaisons de maquettes pour seulement <em>4kb</em>.</dd>

<dt><a href="http://elasticss.com/">elasticss</a></dt>
<dd>Basé sur des techniques de colonnage traditionnel en 4 colonnes, ce framework permet de multiples combinaisons et subdivisions. Il se distingue des autres par sa capacité à produire facilement des design fixes, liquides ou élastiques.</dd>

<dt><a href="http://sencss.kilianvalkhof.com/">sencss</a></dt>
<dd>Un frameword <em>zen</em> qui ne vous obligera pas à adopter un système de grille particulier mais qui fournit plutôt un ensemble de styles pour les parties les plus répétitives de votre travail sans trop s&#8217;éloigner du style par défaut des navigateurs. Grille verticale en 18 pixels. Fournit des jeux de polices de caractères spécifiques pour Windows, Mac et Linux.</dd>

<dt><a href="http://code.google.com/p/the-golden-grid/">the golden grid</a></dt>
<dd>Ce système de grille est le fruit d&#8217;une recherche constante de la grille parfaite : rien de tel que le <a href="http://css4design.com/nombre-dor-suite-de-fibonacci-et-autres-grilles-de-mise-en-page-pour-le-design-web">nombre d&#8217;Or</a> pour se rapprocher des dieux !</dd>

<dt><a href="http://code.google.com/p/css-boilerplate/">css-boilerplate</a></dt>
<dd>Par l&#8217;un des créateurs de <em>Blueprint</em> qui a décidé de se remettre à l&#8217;ouvrage pour aboutir à un framework qui ne vous obligera plus à choisir entre sémantique et efficacité : c&#8217;est vous qui décidez d&#8217;utiliser <code>float: left; width: 240px; margin-right: 110px</code> ou <code>class="column span-2 append-1"</code> !</dd>

<dt><a href="http://github.com/pocky/BIC-CSS">BIC</a></dt>
<dd>De bonnes idées en ce qui concerne le traitement de la typographie et de la couleur (typography.css et color.css). Cf. <a href="http://www.css4design.com/blog/bic-framework-css-oriente-couleur-et-typographie">BIC, un framework orienté couleur et typographie</a>.</dd>

<dt><a href="http://giz404.freecontrib.org/bungee/">bungee</a></dt>
<dd>Propose une grille de 12 colonnes dont la plus petite subdivision vaut 4em. Pour les nostalgiques des pixels, ça fait environ 64px. Avec un niveau de zoom par défaut, un site construit avec Bungee mesure 768px de large, et s&#8217;affiche donc parfaitement sur un écran de faible résolution.w</dd>

<dt><a href="http://code.google.com/p/sparkl/">sparkl</a></dt>
<dd>Combine un <a href="http://www.css4design.com/blog/sandbox-un-theme-wordpress-pour-integrateurs-html-chic-qui-aiment-les-microformats">marquage HTML CHIC</a> (Code HTML Intrinsèquement Classe &#8212; POSH en anglais) et du<a href="http://www.css4design.com/blog/framework-jquery-pour-ecrire-du-javascript-non-intrusif"> javascript non-intrusif</a> pour créer des sites web à l&#8217;épreuve des balles et conformes aux Standards. Ce framework CSS très modulaire vous permettra de vous concentrer sur vos besoins.</dd>

<dt><a href="http://code.google.com/p/hartija/">hartija</a></dt>
<dd>Regroupe les meilleures pratiques en matière de feuille de style destinées à l&#8217;impression.</dd>

<dt><a href="http://www.1kbgrid.com">The 1Kb CSS Grid</a></dt>
<dd>Une grille minimaliste qui tient en une quinzaine de déclarations CSS idéale pour les débutant qui veulent comprendre le principe général des frameworks et pour les intégrateurs aguerris qui verront là un moyen économique de donner un rythme horizontal à leur mise en page. Choix du nombre de colonnes, de la gouttière et de la largeur totale avant le téléchargement.</dd>

<dt><a href="http://www.vcarrer.com/2009/06/1-line-css-grid-framework.html">1 line CSS Grid Framework</a></dt>
<dd>Vous avez bien lu, il s&#8217;agit d&#8217;un framework qui tient en une seule déclaration <code>.dp50 {width:50%; float:left; display: inline; *margin-right:-1px; }</code> Etonnant, non ?</dd>

<dt><a href="http://code.google.com/p/emastic/">emastic</a></dt>
<dd>Très complète, cette bibliothèque CSS s&#8217;utilise aussi bien avec des <code>em</code> qu&#8217;avec des <code>%</code> et s&#8217;accommode de largeur fixes ou fluides pour un poids de <em>4Kb</em> pour la version compressée. Nombreuses démonstrations disponibles pour voir ce qu&#8217;il est possible de faire.</dd>

<dt><a href="http://code.google.com/p/malo/">malo</a></dt>
<dd>Petit frère de <em>emastic</em>, <em>malo</em> se distingue par sa légèreté au service d&#8217;une grille en pourcentage.</dd>

<dt><a href="http://code.google.com/p/logicss/">logicss</a></dt>
<dd>basé sur le principe d&#8217;un rendu homogène entre les navigateurs sans <a href="http://www.css4design.com/blog/5-reset-css-a-la-loupe-pour-une-remise-a-zero-des-valeurs-par-defaut-des-navigateurs">reset CSS</a>. Travail sur la typographie avec des jeux de polices de caractères harmonieux, des possibilités de redimensionnements de texte et un rythme vertical. Trois systèmes de grilles très souples personnalisables à l&#8217;aide d&#8217;une boite à outils. Design élastique avec l&#8217;unité <code>em</code>, liquide via les pourcentages <code>%</code> ou fixe avec les <code>px</code>.</dd>

<dt><a href="http://kailoon.com/mycss-grid-system/">MyCSS Grid System</a></dt>
<dd>Système de grille en 960px avec une utilisation du nombre d&#8217;or pour obtenir des proportions harmonieuses. Assez verbeux dans le nombre de classes pour placer des éléments.</dd>

<dt><a href="http://www.contentwithstyle.co.uk/content/a-css-framework">A CSS Framework</a></dt>
<dd>Cet ensemble de fichiers CSS propose des maquettes prêtes à l&#8217;emploi en 1, 2 ou 3 colonnes avec un <em>header</em>, <em>footer</em>, <em>sidebar</em> et <em>navigation</em> horizontale ou verticale. Un fichier <em>framework.html</em> est disponible pour commencer.</dd>

<dt><a href="http://frame.serverboy.net/">Frame</a></dt>
<dd><em>Frame: A CSS framework from the year 2050</em> se veut la nouvelle manière de mettre en page les contenus et de construire des interfaces web. Il combine les idées de 960.gs, de Blueprint et de nombreuses techniques pour obtenir le framework css le plus simple et le plus fluide de tous les temps !</dd>

<dt><a href="http://www.formee.org/">Formee</a></dt>
<dd>Formee est un framework spécialisé dans la mise en forme des éléments de formulaires. Le système de grille pour l&#8217;alignement des <em>labels</em> et autres <em>input</em> est basé sur <a href="http://960.gs/">960.gs</a>. Ce mini-framework est composé de deux feuilles de style : form-style.css et form-structure.css qui parlent d&#8217;elles-mêmes.</dd>

<dt><a href="http://www.markercss.com/en/index.php">Marker CSS</a></dt>
<dd>Marker CSS se distingue par une syntaxe prenant en compte un nombre important de propriétés. Peut-être trop à mon humble avis, mais tout les goûts sont dans la nature ! Par exemple <code>&lt;body class="A s13 c666 tc"&gt;</code> signifie : <code>A</code> pour famille de police Arial ; <code>s13</code> font-size 13 pixels ; <code>c666</code> couleur présélectionnée ; et <code>tc</code> pour avoir le texte aligné au centre.</dd>
</dl>

<p><strong>PS :</strong> Cette liste est une version réactualisée de celle que j&#8217;ai <strong>déjà publiée en juin 2009</strong> à la fin de l&#8217;article <a href="http://css4design.com/framework-css-mettez-vos-grilles-au-pas">Frameworks CSS, mettez vos grilles au pas !</a>. Toute ressemblance avec des listes de frameworks CSS publiées ces derniers temps, bla bla bla&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://css4design.com/choisir-un-frameworks-css/feed</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>CleverCSS &#8212; Mettez un Python dans vos CSS</title>
		<link>http://css4design.com/clevercss-mettez-un-python-dans-vos-css</link>
		<comments>http://css4design.com/clevercss-mettez-un-python-dans-vos-css#comments</comments>
		<pubDate>Fri, 05 Feb 2010 17:10:32 +0000</pubDate>
		<dc:creator>Bruno Bichet</dc:creator>
				<category><![CDATA[HTML & CSS]]></category>
		<category><![CDATA[Intégration web]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Optimisation]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://css4design.com/?p=5169</guid>
		<description><![CDATA[CleverCSS est une manière de produire des CSS inspirée par le langage de programmation Python : les accolades sont remplacées par l&#8217;indentation des différentes règles CSS et les déclarations sont introduites par le signe deux-points. Jusque-là, rien de bien fou, mais CleverCSS ne s&#8217;arrête pas à l&#8217;économie de quelques signes et propose de nombreuses améliorations à CSS  : de l&#8217;optimisation de la syntaxe à l&#8217;utilisation des constantes en passant par le calcul sur les valeurs, y compris les couleurs. Référence a: &#38;:hover: color: red &#38;:visited: color: blue Attributs &#35;main p: font-&#62; family: Verdana, sans-serif size: 1.1em style: italic Constantes background_color [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 18px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fcss4design.com%2Fclevercss-mettez-un-python-dans-vos-css">
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fcss4design.com%2Fclevercss-mettez-un-python-dans-vos-css&amp;source=br1o&amp;style=normal&amp;service=bit.ly&amp;service_api=R_0c1ee4b64f105d1b2672690740a77d6a" height="61" width="50" />
			</a>
		</div><p><a href="http://sandbox.pocoo.org/clevercss/">CleverCSS</a> est une manière de produire des CSS inspirée par le langage de programmation <a href="http://www.python.org/">Python</a> : les accolades sont remplacées par l&#8217;indentation des différentes règles CSS et les déclarations sont introduites par le signe deux-points. Jusque-là, rien de bien fou, mais <em>CleverCSS</em> ne s&#8217;arrête pas à l&#8217;économie de quelques signes et propose de nombreuses améliorations à CSS  : de l&#8217;optimisation de la syntaxe à l&#8217;utilisation des constantes en passant par le calcul sur les valeurs, y compris les couleurs.<span id="more-5169"></span></p>

<h2>Référence</h2>

<p><pre>a:
    &amp;:hover:
      color: red
    &amp;:visited:
      color: blue</pre></p>

<h2>Attributs</h2>

<p><pre>&#35;main p:
    font-&gt;
      family: Verdana, sans-serif
      size: 1.1em
      style: italic</pre></p>

<h2>Constantes</h2>

<p><pre>background_color = #ccc</p>

<p>&#35;main:
  background-color: $background_color</pre></p>

<h2>Calcul sur les valeurs</h2>

<p><pre>&#35;fff - &#35;ccc            -&gt; &#35;333333
cornflowerblue - coral   -&gt; &#35;00169d
crimson - 20             -&gt; &#35;c80028
10px * 2                 -&gt; 20px</pre></p>

<h2>Faudrait pas que le python étouffe l&#8217;éléphant ;)</h2>

<p><em>cleverCSS</em> est très séduisant et la seule chose que l&#8217;on peut lui reprocher est d&#8217;être un script Python et non PHP !</p>

<p><strong>Notes :</strong> il existe des scripts dans d&#8217;autres langages comme Ruby ou PHP :</p>

<ul>
    <li><a href="http://www.shauninman.com/archive/2008/05/30/check_out_css_cacheer">CSS Cacheer</a> (PHP)</li>
    <li><a href="http://lesscss.org/">LESS</a> (Ruby)</li>
    <li><a href="http://css4design.com/feuille-de-style-css-dynamique-avec-php">ALAMANO</a> ;) (PHP)</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://css4design.com/clevercss-mettez-un-python-dans-vos-css/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk
Page Caching using disk (enhanced) (user agent is rejected)

Served from: css4design.com @ 2010-09-02 15:55:15 -->