<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="http://blog.britoweb.net/feed/rss2/xslt" ?><rss version="2.0"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:wfw="http://wellformedweb.org/CommentAPI/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/"
  xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
  <title>Blog - Britoweb - Tag - design fluide</title>
  <link>http://blog.britoweb.net/</link>
  <atom:link href="http://blog.britoweb.net/feed/tag/design%20fluide/rss2" rel="self" type="application/rss+xml"/>
  <description>Le Web à la sauce standard</description>
  <language>fr</language>
  <pubDate>Wed, 28 Jul 2010 16:01:30 +0200</pubDate>
  <copyright>Billets sous licence Creative Commons BY-NC-SA</copyright>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Dotclear</generator>
  
    
  <item>
    <title>Du pixel aux unités relatives ou de l'art de dompter les grilles fluides</title>
    <link>http://blog.britoweb.net/post/2009/03/03/Du-pixel-aux-unites-relatives-ou-de-l-art-de-dompter-les-grilles-fluides</link>
    <guid isPermaLink="false">urn:md5:2632348ea3d788f4d9495ebbb4d49839</guid>
    <pubDate>Tue, 03 Mar 2009 19:57:00 +0100</pubDate>
    <dc:creator>Victor Brito</dc:creator>
        <category>CSS</category>
        <category>design fluide</category><category>taille em</category><category>taille pixels</category><category>taille polices</category><category>taille polices relative</category><category>taille pourcentage</category>    
    <description>&lt;p&gt;Puisque &lt;a href=&quot;http://blog.britoweb.net/post/2009/02/26/Agrandissement-de-texte-le-pixel-n-est-toujours-pas-conseille&quot; title=&quot;Billet exposant les raisons de ne pas utiliser le pixel comme unité dans les feuilles de style&quot;&gt;le pixel n'est pas une unité recommandée&lt;/a&gt; pour créer des feuilles de styles soucieuses de permettre l'agrandissement du texte, on doit se contenter des unités relatives restantes, comme l'em ou le pourcentage. Mais, il reste le problème de reproduire &lt;em&gt;fidèlement&lt;/em&gt; une maquette réalisée sous Photoshop (ou tout autre logiciel de graphisme), où tout est figé en pixels.&lt;/p&gt;
&lt;p&gt;Heureusement, il existe des astuces permettant d'obtenir un design fluide et j'ai déjà eu l'occasion d'en rapporter dans un &lt;a href=&quot;http://blog.britoweb.net/post/2008/04/16/Taille-des-polices-une-raison-de-ne-pas-se-caler-au-pixel-pres&quot; title=&quot;Billet rapportant des astuces pour obtenir l'équivalent en taille relative d'une taille de police fixe&quot;&gt;précédent billet&lt;/a&gt;. &lt;span xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;A List Apart&lt;/span&gt; vient de publier un &lt;a href=&quot;http://www.alistapart.com/articles/fluidgrids&quot; hreflang=&quot;en&quot; title=&quot;Article d'A List Apart sur une manière d'adapter des tailles en pixels à un design fluide pour le texte et les dimensions des blocs&quot;&gt;article&lt;/a&gt; qui présente une astuce qui va plus loin que le traitement de la taille du texte.&lt;/p&gt;    &lt;p&gt;Partons du bout de code HTML suivant&amp;nbsp;:&lt;/p&gt;
&lt;pre xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;&amp;lt;div id=&quot;page&quot;&amp;gt;
  &amp;lt;h1&amp;gt;Some header&amp;lt;/h1&amp;gt;
  &amp;lt;p&amp;gt;Some text&amp;lt;/p&amp;gt;
&amp;lt;/div&amp;gt;&lt;/pre&gt;
&lt;p&gt;D'abord, fixons la taille de police globale à 100&amp;nbsp;% de la taille par défaut de la police utilisée.&lt;/p&gt;
&lt;pre xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;
body {
  font-size: 100%;
}
&lt;/pre&gt;
&lt;p&gt;Nous avons une maquette qui nous présente le texte de l'élément &lt;code&gt;h1&lt;/code&gt; comme ayant une taille de 24 pixels.&lt;/p&gt;
&lt;p&gt;Pour traduire la taille en pixels vers la taille équivalente en ems, nous emploierons l'équation suivante&amp;nbsp;: &lt;code&gt;&lt;var&gt;taille ciblée&lt;/var&gt; ÷ &lt;var&gt;taille du contexte&lt;/var&gt; = &lt;var&gt;taille résultante&lt;/var&gt;&lt;/code&gt;. La &lt;em&gt;taille ciblée&lt;/em&gt; est celle dont on souhaite obtenir l'équivalent en ems, la &lt;em&gt;taille du contexte&lt;/em&gt; est la taille de texte utilisée par l'élément parent de celui contenant le texte ciblé (ou, à défaut de taille déclarée, par l'élément ancêtre le plus proche) et la &lt;em&gt;taille résultante&lt;/em&gt; est le résultat obtenu par la division de la première par la deuxième.&lt;/p&gt;
&lt;p&gt;Lorsque la taille du contexte est égale à 100&amp;nbsp;%, elle correspond à la taille par défaut de la police, telle que fixée par le navigateur, soit la plupart du temps 16 pixels. À partir de cette donnée précieuse, nous pouvons calculer la taille en ems de l'élément &lt;code&gt;h1&lt;/code&gt; comme suit&amp;nbsp;: &lt;code&gt;24 ÷ 16 = 1,5&lt;/code&gt;&amp;nbsp;; l'élément &lt;code&gt;h1&lt;/code&gt; aura donc une taille de texte de 1,5 ems.&lt;/p&gt;
&lt;pre xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;
h1 {
  font-size: 1.5em;
}
&lt;/pre&gt;
&lt;p&gt;Notre maquette indique que le texte du paragraphe &lt;code&gt;p&lt;/code&gt; a une taille de 14 pixels. Pour en obtenir l'équivalent en pixels&amp;nbsp;: &lt;code&gt;14 ÷ 16 = 0,875&lt;/code&gt;, soit 0,875 em.&lt;/p&gt;
&lt;pre xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;
p {
  font-size: 0.875em;
}
&lt;/pre&gt;
&lt;p&gt;Ce qui est possible pour la taille de texte l'est également pour la dimension des blocs. En effet, &lt;strong&gt;une maquette rigide ne contenant que des blocs définis en pixels peut produire un design fluide&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Reprenons notre maquette, qui nous dit que l'ensemble du contenu (représenté par l'élément &lt;code&gt;div&lt;/code&gt; dont l'identifiant est &lt;code&gt;&quot;page&quot;&lt;/code&gt;) tient dans une largeur de 988 pixels et que l'élément &lt;code&gt;h1&lt;/code&gt; occupe une largeur de 700 pixels, avec une marge de 144 pixels à sa gauche.&lt;/p&gt;
&lt;p&gt;Pour calculer l'équivalent en ems de la largeur du &lt;code&gt;div&lt;/code&gt;, nous nous basons sur la taille par défaut de la police, soit les fameux 16 pixels, ce qui donne &lt;code&gt;988 ÷ 16 = 61,75&lt;/code&gt;, soit 61,75 ems.&lt;/p&gt;
&lt;pre xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;#page {
  width: 61.75em;
}&lt;/pre&gt;
&lt;p&gt;Pour calculer la largeur du bloc &lt;code&gt;h1&lt;/code&gt;, nous devons partir de celle du plus proche ancêtre déclaré, à savoir l'élément &lt;code&gt;div&lt;/code&gt; en question. Ainsi, le calcul est le suivant&amp;nbsp;: &lt;code&gt;700 ÷ 988 = 0,7085&lt;/code&gt; (résultat arrondi). Le résultat peut être exploité sous forme de pourcentage, puisque l'élément &lt;code&gt;h1&lt;/code&gt; occupe non seulement 700 pixels de la page &lt;em&gt;hors tout&lt;/em&gt;, mais surtout &lt;strong&gt;700 des 988 pixels du &lt;code&gt;div&lt;/code&gt;&lt;/strong&gt;, soit 70,85&amp;nbsp;%. Pour la marge de 144 pixels, même motif, même punition&amp;nbsp;: &lt;code&gt;144 ÷ 988 = 0,14575&lt;/code&gt; (résultat arrondi). Ce qui, dans la feuille de style, s'écrit&amp;nbsp;:&lt;/p&gt;
&lt;pre xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;h1 {
  width: 70.85%;
  margin-left: 14.575%;
}&lt;/pre&gt;
&lt;p&gt;Ainsi, &lt;strong&gt;la page Web intégrée sera fluide&lt;/strong&gt; non seulement &lt;strong&gt;pour la taille de texte&lt;/strong&gt; (et la nécessité, parfois, de l'agrandir), mais aussi &lt;strong&gt;pour les taille et résolution d'écran disponibles&lt;/strong&gt;. Bref, ce n'est pas sorcier de faire entrer un carré dans un cercle. &lt;img src=&quot;http://blog.britoweb.net/themes/normal-marron/smilies/wink.png&quot; alt=&quot;;)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;</description>
    
    
    
      </item>
    
</channel>
</rss>