<?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 - CSS</title>
  <link>http://blog.britoweb.net/</link>
  <atom:link href="http://blog.britoweb.net/feed/category/CSS/rss2" rel="self" type="application/rss+xml"/>
  <description>Le Web à la sauce standard</description>
  <language>fr</language>
  <pubDate>Mon, 08 Mar 2010 10:28:09 +0100</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>N'oublions pas les sélecteurs CSS 2.1</title>
    <link>http://blog.britoweb.net/post/2010/02/05/N-oublions-pas-les-selecteurs-CSS-2.1</link>
    <guid isPermaLink="false">urn:md5:7291a2dff6ddf87999140e58f1cd1f28</guid>
    <pubDate>Fri, 05 Feb 2010 09:08:00 +0100</pubDate>
    <dc:creator>Victor Brito</dc:creator>
        <category>CSS</category>
        <category>css</category><category>internet explorer 6</category><category>sélecteurs css</category>    
    <description>&lt;p&gt;Tel est le message que souhaite faire passer le site 456 &lt;span xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;Berea Street&lt;/span&gt; dans un billet publié hier et intitulé &lt;a href=&quot;http://www.456bereastreet.com/archive/201002/forgotten_css_selectors/&quot; hreflang=&quot;en&quot;&gt;&lt;em xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;Forgotten CSS selectors&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;    &lt;p&gt;Ce billet présente brièvement quelques sélecteurs avancés de la spécification CSS 2.1 qui ont été oubliés jusqu'à présent, à cause qu'Internet Explorer 6 ne les prend pas du tout en charge ou très partiellement, mais auxquels on peut songer, vu qu'&lt;abbr title=&quot;Internet Explorer&quot;&gt;IE&lt;/abbr&gt; 6 a atteint des parts de marché suffisamment basses pour que la prise en compte de cette version de navigateur ne soit plus synonyme de «&amp;nbsp;rendu visuel au pixel près&amp;nbsp;».&lt;/p&gt;
&lt;p&gt;Les sélecteurs évoqués dans le billet de 456 &lt;span xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;Berea Street&lt;/span&gt; sont les suivants&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;le sélecteur d'élément enfant (&lt;code&gt;E &amp;gt; F&lt;/code&gt;),&lt;/li&gt;
&lt;li&gt;le sélecteur d'élément frère adjacent (&lt;code&gt;E + F&lt;/code&gt;),&lt;/li&gt;
&lt;li&gt;le sélecteur d'attribut (&lt;code&gt;E[attribut]&lt;/code&gt; et &lt;code&gt;E[attribut=valeur]&lt;/code&gt;, notamment),&lt;/li&gt;
&lt;li&gt;la pseudo-classe &lt;code xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;:first-child&lt;/code&gt;,&lt;/li&gt;
&lt;li&gt;la pseudo-classe &lt;code xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;:hover&lt;/code&gt; applicable à n'importe quel élément et non seulement à l'élément &lt;code&gt;a&lt;/code&gt;,&lt;/li&gt;
&lt;li&gt;la pseudo-classe &lt;code&gt;:focus&lt;/code&gt;,&lt;/li&gt;
&lt;li&gt;le sélecteur de classes multiples (&lt;code&gt;E.classe1.classe2&lt;/code&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;L'enjeu de l'utilisation des sélecteurs avancés de CSS est résumé ainsi&amp;nbsp;:&lt;/p&gt;
&lt;blockquote cite=&quot;http://www.456bereastreet.com/archive/201002/forgotten_css_selectors/&quot; xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;
&lt;p&gt;What these selectors offer us is cleaner HTML, since we can drop a lot of class names, and in some cases JavaScript, that were only necessary to achieve visual equivalence in IE 6. I am not saying that you should “drop support” for IE 6, just that it’s ok for some things to not look perfect in a Web browser that is eight and a half years old. Besides, &lt;a href=&quot;http://dowebsitesneedtolookexactlythesameineverybrowser.com/&quot; hreflang=&quot;en&quot;&gt;Do websites need to look exactly the same in every browser?&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;En français&amp;nbsp;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Ce que ces sélecteurs nous offrent est du HTML plus propre, puisque nous pouvons retirer beaucoup de noms de classe, et de JavaScript dans certains cas, qui n'étaient nécessaires que pour parvenir à un visuel équivalent sous IE 6. Je ne dis pas que vous devriez «&amp;nbsp;laisser tomber la prise en charge&amp;nbsp;» d'IE 6, mais seulement de ce qui est bon pour que certaines choses n'aient pas l'air parfaites sous un navigateur Web qui a huit ans et demi. D'ailleurs, &lt;a href=&quot;http://dowebsitesneedtolookexactlythesameineverybrowser.com/&quot; hreflang=&quot;en&quot;&gt;Les sites Web ont-ils besoin d'être exactement pareils sous chaque navigateur&amp;nbsp;?&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;La réponse est non. Du moins, à partir du moment où l'on se soucie de &lt;em&gt;dégradation élégante&lt;/em&gt; pour les navigateurs obsolètes (ou d'&lt;em&gt;amélioration progressive&lt;/em&gt; pour les navigateurs les plus avancés en matière de prise en compte des standards et de leur respect).&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.britoweb.net/post/2010/02/05/N-oublions-pas-les-selecteurs-CSS-2.1#comment-form</comments>
      <wfw:comment>http://blog.britoweb.net/post/2010/02/05/N-oublions-pas-les-selecteurs-CSS-2.1#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.britoweb.net/feed/atom/comments/248</wfw:commentRss>
      </item>
    
  <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>
    
  <item>
    <title>Agrandissement de texte : le pixel n'est toujours pas conseillé</title>
    <link>http://blog.britoweb.net/post/2009/02/26/Agrandissement-de-texte-le-pixel-n-est-toujours-pas-conseille</link>
    <guid isPermaLink="false">urn:md5:eeba53e7bf3516e899fb7d803f19d7b3</guid>
    <pubDate>Thu, 26 Feb 2009 22:01:00 +0100</pubDate>
    <dc:creator>Victor Brito</dc:creator>
        <category>CSS</category>
        <category>internet explorer 8</category><category>taille pixels</category><category>taille polices</category><category>taille polices css</category><category>taille polices relative</category><category>unités relatives</category>    
    <description>    &lt;p&gt;Pour des raisons liées à l'accessibilité, la taille de police utilisée pour le texte contenu dans une page Web doit être exprimée dans une unité relative, surtout quand l'affichage du texte en question est destiné à un écran (que ce soit un écran d'ordinateur ou un écran de n'importe quel support mobile pouvant tenir dans une seule main)&amp;nbsp;: en effet, une unité relative permet l'agrandissement du texte pour un meilleur confort de lecture.&lt;/p&gt;
&lt;p&gt;La spécification CSS 2.1 du &lt;acronym title=&quot;World Wide Web Consortium&quot;&gt;W3C&lt;/acronym&gt; inclut, parmi les &lt;a href=&quot;http://www.w3.org/TR/CSS21/syndata.html#absrel-units&quot; hreflang=&quot;en&quot; title=&quot;Définition des unités absolues et relatives par la spécification CSS 2.1 du W3C&quot;&gt;unités relatives&lt;/a&gt;, le pixel. Toutefois, &lt;strong&gt;il n'est toujours pas conseillé d'utiliser le pixel&lt;/strong&gt; pour définir une taille de texte.&lt;/p&gt;
&lt;p&gt;En effet, comme le rapporte le site &lt;a href=&quot;http://www.456bereastreet.com/archive/200902/ie_8_still_does_not_resize_text_sized_in_pixels/&quot; hreflang=&quot;en&quot; title=&quot;Billet de 456 Berea Street sur l'impossibilité pour Internet Explorer 8 d'agrandir du texte dont la taille est fixée en pixels&quot;&gt;456 &lt;span xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;Berea Street&lt;/span&gt;&lt;/a&gt;, &lt;strong&gt;Internet Explorer 8 refuse encore d'agrandir un texte dont la taille est fixée en pixels&lt;/strong&gt;, pas même dans son mode de rendu «&amp;nbsp;super&amp;nbsp;» standard.&lt;/p&gt;
&lt;p&gt;Par conséquent, les pourcentages, cadratins et autres hauteurs d'x continueront toujours d'avoir l'exclusive préférence.&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>CSS 2 - Pratique du design Web de Raphaël Goetter, troisième édition : note de lecture</title>
    <link>http://blog.britoweb.net/post/2009/01/11/CSS-2-Pratique-du-design-Web-de-Raphael-Goetter-troisieme-edition-note-de-lecture</link>
    <guid isPermaLink="false">urn:md5:679a8007909b471b5c6fab13e477e781</guid>
    <pubDate>Sun, 11 Jan 2009 02:10:00 +0100</pubDate>
    <dc:creator>Victor Brito</dc:creator>
        <category>CSS</category>
        <category>css</category><category>livre css</category>    
    <description>&lt;p&gt;Les éditions &lt;a href=&quot;http://www.eyrolles.com&quot;&gt;Eyrolles&lt;/a&gt; viennent de publier la troisième édition de &lt;em&gt;&lt;a href=&quot;http://www.eyrolles.com/Informatique/Livre/css-2-pratique-du-design-web-9782212124613&quot; title=&quot;Fiche du livre CSS 2 - Pratiques du design Web, de Raphaël Goetter, sur le site des éditions Eyrolles&quot;&gt;CSS 2 - Pratique du design Web&lt;/a&gt;&lt;/em&gt;, de Raphaël Goetter.&lt;/p&gt;    &lt;p&gt;S'il y a un seul ouvrage qui m'ait marqué dans mon parcours dans le Web, c'est bien celui de Raphaël Goetter&amp;nbsp;: en effet, la lecture de la première édition, en 2006, m'a incité à plus de rigueur dans mon code, plus particulièrement dans le respect du balisage sémantique, tout en me faisant prendre conscience des problèmes de compatibilité entre navigateurs.&lt;/p&gt;
&lt;p&gt;Cette troisième édition, tout en tenant compte des nouveautés de Firefox 3 et, surtout, d'Internet Explorer 8, reste fidèle à l'esprit des deux précédentes éditions. En effet, le livre commence par un exposé sur les standards du Web, tout en soulignant l'importance de l'accessibilité du Web, de la séparation entre la structure d'un document Web et sa présentation et de la sémantique de chaque balise HTML. Ensuite, après plusieurs chapitres théoriques sur l'essentiel des CSS, le livre aborde des cas concrets et très courants d'application de CSS, comme le centrage d'un élément ou l'habillage d'un menu de navigation. Enfin, le livre présente un exemple d'application de la matière abordée à un projet de site Web de qualité professionnelle, tout en offrant une méthodologie simple permettant aux concepteurs de sites Web plus ou moins maladroits de coder avec rigueur et de résoudre les problèmes d'affichage (et ce sans même recourir à des outils comme l'extension &lt;span xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;Firebug&lt;/span&gt; de Firefox).&lt;/p&gt;
&lt;p&gt;En somme, c'est un livre indispensable pour connaître l'essentiel des CSS, tout en ayant conscience de certaines bonnes pratiques de conception de sites Web.&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Feuilles de styles, médias CSS et navigateurs mobiles : une astuce pour garantir compatibilité et confort d'utilisation</title>
    <link>http://blog.britoweb.net/post/2009/01/06/Feuilles-de-styles-medias-CSS-et-navigateurs-mobiles-une-astuce-pour-garantir-compatibilite-et-confort-d-utilisation</link>
    <guid isPermaLink="false">urn:md5:2d0fe648513898d3476f65b1678be0e2</guid>
    <pubDate>Tue, 06 Jan 2009 20:17:00 +0100</pubDate>
    <dc:creator>Victor Brito</dc:creator>
        <category>CSS</category>
        <category>css</category><category>feuilles de style handheld</category><category>feuilles de style mobiles</category><category>média handheld</category><category>média screen</category><category>médias css</category><category>navigateurs mobiles</category>    
    <description>&lt;p&gt;Que l'on déplore ou non, le Web sur les mobiles est de moins en moins négligeable, d'autant moins qu'il peut compter sur le succès, entre autres, de l'&lt;span xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;iPhone&lt;/span&gt;. Or, consulter un site Web depuis un mobile peut devenir un casse-tête quand le site consulté utilise des feuilles de style inadaptées aux mobiles ou que le navigateur mobile utilisé implémente mal les différents médias CSS ou n'en reconnaît pas certains.&lt;/p&gt;    &lt;p&gt;En effet, une feuille de style destinée à un écran d'ordinateur (utilisant donc le média &lt;code xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;screen&lt;/code&gt;) peut être remplie de règles CSS dont l'objectif est d'afficher tout ou partie du contenu en colonnes (avec les propriétés &lt;code xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;display&lt;/code&gt; et &lt;code xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;float&lt;/code&gt;, notamment), en tenant compte d'une taille d'écran au moins égale à 800 ou à 1024 pixels de large. Or, sur un mobile, une telle feuille de style induira soit la présence d'une barre de défilement horizontale soit le recours à une fonctionnalité permettant de zoomer le contenu auquel on veut accéder, la page Web entière s'adaptant dans un premier temps à la largeur d'écran disponible, réduisant la taille des polices à un niveau tel qu'un problème d'accessibilité se pose.&lt;/p&gt;
&lt;p&gt;Heureusement, en HTML 4 et en XHTML, il est possible de préciser le(s) média(s) concerné(s) par la feuille de style lorsqu'on l'appelle au moyen de l'élément &lt;code xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;link&lt;/code&gt;, grâce à l'attribut &lt;code xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;media&lt;/code&gt;. Il en est de même en CSS 2, grâce à la règle &lt;code xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;@media&lt;/code&gt;, d'une part, et à la possibilité de préciser le(s) média(s) concerné(s) par la feuille de style appelée au moyen de la règle &lt;code xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;@import&lt;/code&gt;. Ainsi, on peut créer plusieurs feuilles de styles, dont une ciblant les mobiles en utilisant le média &lt;code xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;handheld&lt;/code&gt;&amp;nbsp;:&lt;/p&gt;
&lt;pre xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;&amp;lt;link rel=&quot;stylesheet&quot; href=&quot;http://blog.britoweb.net/post/2009/01/06/screen.css&quot; media=&quot;screen,handheld&quot; /&amp;gt;
&amp;lt;link rel=&quot;stylesheet&quot; href=&quot;http://blog.britoweb.net/post/2009/01/06/handheld.css&quot; media=&quot;handheld&quot; /&amp;gt;&lt;/pre&gt;
&lt;pre xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;@import &quot;screen.css&quot; screen;
@import &quot;handheld.css&quot; handheld;&lt;/pre&gt;
&lt;pre xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;@media screen {
  /* &lt;span xml:lang=&quot;fr&quot; lang=&quot;fr&quot;&gt;Règles CSS pour les écrans d'ordinateur&lt;/span&gt; */
}
@media handheld {
  /* &lt;span xml:lang=&quot;fr&quot; lang=&quot;fr&quot;&gt;Règles CSS pour les mobiles&lt;/span&gt; */
}&lt;/pre&gt;
&lt;p&gt;Seulement voilà&amp;nbsp;: si certains navigateurs mobiles implémentent le média &lt;code xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;handheld&lt;/code&gt;, d'autres, en revanche, l'ignorent et, qui plus est, iront même jusqu'à ne lire que les feuilles de style ciblant le media &lt;code xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;screen&lt;/code&gt;&amp;nbsp;! Et je ne me hasarde pas à parler des &lt;em xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;media queries&lt;/em&gt;, un module de CSS 3 qui permettra de cibler plus finement les médias (par exemple, ne cibler que les écrans dont la taille ne dépasse pas 480 pixels de largeur, ce qui donne le code suivant pour l'attribut &lt;code xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;media&lt;/code&gt; et les règles &lt;code xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;@media&lt;/code&gt; et &lt;code xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;@import&lt;/code&gt;&amp;nbsp;: &lt;code xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;only screen and (max-device-width:480px)&lt;/code&gt;)&amp;nbsp;; mais, ce genre de requête n'est, pour l'instant, implémenté que par Opera et Safari.&lt;/p&gt;
&lt;p&gt;Malgré tous ces points délicats, il est possible de fournir à l'ensemble des navigateurs mobiles une feuille de style adaptée au support mobile. &lt;a href=&quot;http://www.alistapart.com&quot; hreflang=&quot;en&quot;&gt;&lt;span xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;A List Apart&lt;/span&gt;&lt;/a&gt; vient de publier un &lt;a href=&quot;http://www.alistapart.com/articles/returnofthemobilestylesheet&quot; hreflang=&quot;en&quot; title=&quot;Article d'A List Apart sur les feuilles de style pour les mobiles et une astuce pour la compatibilité entre navigateurs mobiles&quot;&gt;article&lt;/a&gt; indiquant une astuce garantissant à la fois un &lt;strong&gt;confort d'utilisation&lt;/strong&gt; du mobile pour consulter un site et la &lt;strong&gt;compatibilité&lt;/strong&gt; entre navigateurs mobiles.&lt;/p&gt;
&lt;p&gt;L'astuce part du principe de deux feuilles de style distinctes, l'une (&lt;code&gt;ecran.css&lt;/code&gt;) pour les écrans d'ordinateurs, l'autre (&lt;code&gt;correctifs-mobile.css&lt;/code&gt;) pour les mobiles (dont le rôle est d'annuler les règles énoncées par &lt;code&gt;ecran.css&lt;/code&gt; qui sont inadaptées aux écrans de mobile). Ces deux feuilles sont appelées par une troisième (&lt;code&gt;noyau.css&lt;/code&gt;), qui contient le code suivant&amp;nbsp;:&lt;/p&gt;
&lt;pre xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;@import &quot;&lt;span xml:lang=&quot;fr&quot; lang=&quot;fr&quot;&gt;ecran.css&lt;/span&gt;&quot;;
@import &quot;&lt;span xml:lang=&quot;fr&quot; lang=&quot;fr&quot;&gt;correctifs-mobile.css&lt;/span&gt;&quot; handheld;
@import &quot;&lt;span xml:lang=&quot;fr&quot; lang=&quot;fr&quot;&gt;correctifs-mobile.css&lt;/span&gt;&quot; only screen and (max-device-width:480px);&lt;/pre&gt;
&lt;p&gt;Une quatrième feuille de style (&lt;code&gt;mobile.css&lt;/code&gt;) apporte des styles supplémentaires pour les mobiles.&lt;/p&gt;
&lt;p&gt;Les différentes feuilles de style sont appelées comme suit&amp;nbsp;:&lt;/p&gt;
&lt;pre xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;&amp;lt;link rel=&quot;stylesheet&quot; href=&quot;http://blog.britoweb.net/post/2009/01/06/&lt;span xml:lang=&quot;fr&quot; lang=&quot;fr&quot;&gt;noyau.css&lt;/span&gt;&quot; media=&quot;screen&quot; /&amp;gt;
&amp;lt;link rel=&quot;stylesheet&quot; href=&quot;http://blog.britoweb.net/post/2009/01/06/&lt;span xml:lang=&quot;fr&quot; lang=&quot;fr&quot;&gt;mobile.css&lt;/span&gt;&quot; media=&quot;handheld, only screen and (max-device-width:480px)&quot; /&amp;gt;&lt;/pre&gt;
&lt;p&gt;Ainsi, les navigateurs mobiles ne tenant compte que du média &lt;code xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;handheld&lt;/code&gt; ne chargeront que la feuille de style &lt;code&gt;mobile.css&lt;/code&gt;&amp;nbsp;; ceux qui tiennent compte à la fois des médias &lt;code xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;screen&lt;/code&gt; et &lt;code xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;handheld&lt;/code&gt; chargeront toutes les feuilles de style, de même pour ceux qui ne tiennent compte que du média &lt;code xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;screen&lt;/code&gt; tout en implémentant le module &lt;em xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;media queries&lt;/em&gt; de CSS 3. Quant à ceux qui ignorent ce module de CSS 3 et qui ne connaissent que le média &lt;code xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;screen&lt;/code&gt;, ils ne chargeront que la feuille de style &lt;code&gt;ecran.css&lt;/code&gt;.&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Connaissez-vous les JSSS ?</title>
    <link>http://blog.britoweb.net/post/2008/06/23/Connaissez-vous-les-JSSS</link>
    <guid isPermaLink="false">urn:md5:d7505e5236415392791d5f6f13e09736</guid>
    <pubDate>Mon, 23 Jun 2008 22:12:00 +0200</pubDate>
    <dc:creator>Victor Brito</dc:creator>
        <category>CSS</category>
        <category>css</category><category>internet explorer</category><category>javascript</category><category>jsss</category><category>netscape</category><category>netscape 4</category><category>netscape 6</category><category>w3c</category>    
    <description>&lt;p&gt;En lisant un &lt;a href=&quot;http://openweb.eu.org/articles/interview_glazman_css/&quot;&gt;entretien accordé par Daniel Glazman à Openweb sur les CSS&lt;/a&gt;, je suis tombé sur le sigle suivant&amp;nbsp;: &lt;abbr title=&quot;JavaScript StyleSheets&quot;&gt;JSSS&lt;/abbr&gt;.&lt;/p&gt;    &lt;p&gt;J'ai ainsi appris qu'il y a une décennie (ce qui, à l'échelle du Web, veut dire dans l'Antiquité), Netscape mit au point les feuilles de style JavaScript (en anglais &lt;em xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;JavaScript StyleSheets&lt;/em&gt;), qui concurrençaient les CSS.&lt;/p&gt;
&lt;p&gt;Si elles pouvaient être puissantes pour des &lt;q cite=&quot;http://en.wikipedia.org/wiki/JSSS&quot;&gt;calculs dynamiques hautement complexes&lt;/q&gt;&amp;nbsp;; en revanche, elles se rélévaient bien pauvres à côté des CSS, en ne supportant que le sélecteur d'élément simple. De plus, la syntaxe, issue de JavaScript, était plus verbeuse et sensible à la casse&amp;nbsp;: là où en CSS on écrit &lt;code xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;h1 { font-size: 20pt; }&lt;/code&gt;, en JSSS on écrivait &lt;code xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;document.tags.H1.fontSize = &quot;20pt&quot;;&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Bien que &lt;a href=&quot;http://www.w3.org/Submission/1996/1/WD-jsss-960822&quot; hreflang=&quot;en&quot; title=&quot;Proposition des JSSS comme standard par Netscape au W3C&quot;&gt;Netscape eût soumis les JSSS au &lt;acronym title=&quot;World Wide Web Consortium&quot;&gt;W3C&lt;/acronym&gt;&lt;/a&gt;, elles ne furent jamais acceptées comme standard. Qui pis est, elles furent d'autant plus boudées par le marché que le principal concurrent de Netscape, Internet Explorer, n'hésita pas à adopter les CSS comme langage de feuille de style. Seul Netscape 4, sorti en 1997, supportait les JSSS&amp;nbsp;; mais, très vite, la société Netscape laissa tomber la promotion de ce langage propriétaire pour s'intéresser aux CSS et cessa tout support des JSSS à la sortie de Netscape 6, en 2000.&lt;/p&gt;
&lt;p&gt;Pour plus de détails, un &lt;a href=&quot;http://en.wikipedia.org/wiki/JSSS&quot; hreflang=&quot;en&quot; title=&quot;Article de la version anglaise de Wikipédia sur les JSSS&quot;&gt;article de Wikipédia&lt;/a&gt; lui est consacré, qui m'a servi de source pour les propos tenus dans ce billet.&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Taille des polices : une raison de ne pas se caler au pixel près ?</title>
    <link>http://blog.britoweb.net/post/2008/04/16/Taille-des-polices-une-raison-de-ne-pas-se-caler-au-pixel-pres</link>
    <guid isPermaLink="false">urn:md5:4668ed8f0a1e9e12ba3d2358696eef04</guid>
    <pubDate>Wed, 16 Apr 2008 15:53:00 +0200</pubDate>
    <dc:creator>Victor Brito</dc:creator>
        <category>CSS</category>
        <category>compatibilité navigateurs</category><category>internet explorer</category><category>taille em</category><category>taille pixels</category><category>taille polices</category><category>taille polices css</category><category>taille polices fixe</category><category>taille polices relative</category><category>taille pourcentage</category>    
    <description>&lt;p&gt;Pour d'évidentes raisons d'accessibilité, l'utilisation de tailles fixes pour les polices est à éviter. Qui plus est, même s'il est rangé parmi les tailles relatives, le pixel n'est pas recommandable, parce qu'Internet Explorer refuse d'agrandir les polices dont la taille est exprimée en pixels (sauf à cocher «&amp;nbsp;Ignorer les tailles de polices spécifiées sur les pages Web&amp;nbsp;» dans les options d'accessibilité, ce qui oblige à recourir au zoom, qui, en attendant la version 8, ne vaut pas celui d'Opera). Et ce n'est pas tout au chapitre du casse-tête de la compatibilité des tailles de polices entre les navigateurs&amp;nbsp;; bref, de quoi vous donner &lt;q cite=&quot;http://blog.temesis.com/2008/04/16/306-taille-des-polices-sur-openweb&quot;&gt;envie d'étrangler le directeur général ou de massacrer votre designer &lt;img src=&quot;http://blog.britoweb.net/themes/normal-marron/smilies/wink.png&quot; alt=&quot;;-)&quot; class=&quot;smiley&quot; /&gt; &lt;/q&gt;.&lt;/p&gt;    &lt;p&gt;Cela dit, il existe des moyens permettant d'utiliser les tailles relatives (notamment le pourcentage et l'em) de manière à produire une taille de police équivalente à celle exprimée en pixels.&lt;/p&gt;
&lt;p&gt;Ces moyens sont décrits dans un &lt;a href=&quot;http://openweb.eu.org/articles/compatibilite_taille_polices/&quot; title=&quot;Compatibilité multi-navigateurs des polices de caractères&amp;nbsp;: article d'Openweb&quot;&gt;article d'Aurélien Levy sur Openweb&lt;/a&gt;, qui privilégie le pourcentage. Pour l'em, on consultera le &lt;a href=&quot;http://www.blog-and-blues.org/weblog/2004/05/24/214-font-size-em&quot;&gt;billet de Laurent Denis sur la définition de la taille de texte en ems&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Toutefois, les méthodes proposées ne sont pas exemptes d'approximations, outre qu'il faut tenir compte que l'utilisateur peut configurer le navigateur de manière à utiliser une taille de polices par défaut autre que 16 pixels, voire ajouter une feuille de style utilisateur susceptible d'écraser les règles CSS de la feuille de style auteur (par exemple, avec un &lt;code xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;body { font-size: 150% !important; }&lt;/code&gt;), sans compter l'héritage de la taille quand on utilise les pourcentages et les ems.&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Les CSS et les commentaires conditionnels, ou l'art d'user de ces derniers avec une certaine modération</title>
    <link>http://blog.britoweb.net/post/2008/04/11/Les-CSS-et-les-commentaires-conditionnels-ou-l-art-d-user-de-ces-derniers-avec-une-certaine-moderation</link>
    <guid isPermaLink="false">urn:md5:e5a9162c7b58a06a258d376e20e283bd</guid>
    <pubDate>Fri, 11 Apr 2008 21:49:00 +0200</pubDate>
    <dc:creator>Victor Brito</dc:creator>
        <category>CSS</category>
        <category>commentaires conditionnels</category><category>hacks css</category><category>internet explorer</category>    
    <description>&lt;p&gt;Le site &lt;a href=&quot;http://www.lesintegristes.net&quot; title=&quot;Les intégristes&amp;nbsp;: site sur l'intégration HTML, les CSS, l'accessibilité et l'ergonomie&quot;&gt;Les intégristes&lt;/a&gt; a récemment publié un billet intitulé &lt;a href=&quot;http://www.lesintegristes.net/2008/04/08/cibler-internet-explorer-dans-une-css-oui-et-sans-hack/&quot;&gt;&lt;em&gt;Cibler Internet Explorer dans une CSS&amp;nbsp;? Oui, et sans hack&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;    &lt;p&gt;Un tel intitulé montre de bonnes intentions en matière de bonne pratique de codage CSS dans le cadre de la prise en compte des lacunes d'Internet Explorer.&lt;/p&gt;
&lt;p&gt;Toutefois, il est regrettable que la méthode privilégiée ne soit pas celle de l'ajout de feuilles de style ciblant Internet Explorer ou l'une de ses versions. En effet, le billet préconise d'écrire dans le code HTML des balises &lt;code&gt;div&lt;/code&gt; entourées de commentaires conditionnels et comportant un attribut &lt;code&gt;id&lt;/code&gt; dont la valeur permet de cibler telle ou telle version d'&lt;abbr title=&quot;Internet Explorer&quot;&gt;IE&lt;/abbr&gt;, IE toutes versions confondues ou les autres navigateurs. Autrement dit, on aurait un code HTML ressemblant, par exemple, à cela (code inspiré de celui proposé par le billet)&amp;nbsp;:&lt;/p&gt;
&lt;pre&gt;&amp;lt;body&amp;gt;
&amp;lt;!--[if IE 6]&amp;gt;&amp;lt;div id=&quot;IE6&quot;&amp;gt;&amp;lt;![endif]--&amp;gt;
&amp;lt;!--[if IE 7]&amp;gt;&amp;lt;div id=&quot;IE7&quot;&amp;gt;&amp;lt;![endif]--&amp;gt;
&amp;lt;!--[if gte IE 8]&amp;gt;&amp;lt;div id=&quot;IE8&quot;&amp;gt;&amp;lt;![endif]--&amp;gt;
&amp;lt;!--[if !IE]&amp;gt;&amp;lt;--&amp;gt;&amp;lt;div id=&quot;NOTIE&quot;&amp;gt;&amp;lt;!--&amp;gt;&amp;lt;![endif]--&amp;gt;
&amp;lt;!-- Contenu de la page --&amp;gt;
&amp;lt;/div&amp;gt;
&amp;lt;/body&amp;gt;&lt;/pre&gt;
&lt;p&gt;Ce qui aurait comme avantage &lt;em&gt;apparent&lt;/em&gt; de n'utiliser qu'une seule feuille de style contenant des règles comme celles-ci (code inspiré de celui proposé par le billet)&amp;nbsp;:&lt;/p&gt;
&lt;pre&gt;.mon_element {
  &lt;span xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;margin-left: 2px;&lt;/span&gt;
}
#IE8 .mon_element {
  &lt;span xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;margin-left: 3px;&lt;/span&gt;
}
#IE6 .mon_element {
  &lt;span xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;margin-left: 4px;&lt;/span&gt;
}
#IE7 .mon_element {
  &lt;span xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;margin-left: 5px;&lt;/span&gt;
}
#NOTIE .mon_element {
  &lt;span xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;margin-left: 6px;&lt;/span&gt;
}&lt;/pre&gt;
&lt;p&gt;Or, on retombe dans l'inconvénient de la méthode des hacks CSS (soit dit en passant, j'estime que le sélecteur d'élément enfant, quoi qu'en dise le billet des Intégristes, n'en est pas un), qui consiste à «&amp;nbsp;polluer&amp;nbsp;» une feuille de style qui, avant tout, ne devrait contenir que les règles CSS &lt;em&gt;idéales&lt;/em&gt; pour le style que l'on cherche à appliquer et appliquées sans broncher par les navigateurs respectueux des standards. Comme le dit si bien Vincent Voyer dans son commentaire&amp;nbsp;: &lt;q cite=&quot;http://www.lesintegristes.net/2008/04/08/cibler-internet-explorer-dans-une-css-oui-et-sans-hack/#comment-2501&quot;&gt;ça alourdit inutilement les CSS des autres navigateurs pour rien. Et eux ils ont rien demandé&amp;nbsp;! &lt;img src=&quot;http://blog.britoweb.net/themes/normal-marron/smilies/smile.png&quot; alt=&quot;:)&quot; class=&quot;smiley&quot; /&gt;&lt;/q&gt;. En outre, ça alourdit le code HTML.&lt;/p&gt;
&lt;p&gt;Bref, il vaut mieux utiliser les commentaires conditionnels pour appeler des feuilles de style supplémentaires ou pour afficher (ou masquer) du &lt;strong&gt;&lt;em&gt;contenu&lt;/em&gt;&lt;/strong&gt; ciblant ou excluant IE (ou telle ou telle version d'IE).&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Les CSS mises à nu</title>
    <link>http://blog.britoweb.net/post/2008/04/09/Les-CSS-mises-a-nu</link>
    <guid isPermaLink="false">urn:md5:7cb0ee56017a7d6075a1563bd14bcfe3</guid>
    <pubDate>Wed, 09 Apr 2008 00:00:00 +0200</pubDate>
    <dc:creator>Victor Brito</dc:creator>
        <category>CSS</category>
        <category>css</category><category>css naked day</category>    
    <description>&lt;p&gt;Où est donc passé l'habillage du site&amp;nbsp;? Le site se serait-il mis à poil&amp;nbsp;?&lt;/p&gt;
&lt;p&gt;En quelque sorte, oui. Aujourd'hui, c'est la troisième édition du &lt;a href=&quot;http://naked.dustindiaz.com&quot; hreflang=&quot;en&quot;&gt;&lt;em xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;CSS Naked Day&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;    &lt;p&gt;Il s'agit d'une initiative, lancée par Dustin Diaz, qui consiste à dépouiller, pour une journée, un site Web de ses feuilles de style, afin de promouvoir les standards du Web, et plus particulièrement le bon usage du &lt;abbr title=&quot;(eXtensible) HyperText Markup Language&quot;&gt;(X)HTML&lt;/abbr&gt;, le balisage sémantique et la bonne hiérarchisation de la structure d'une page Web. Bref, il s'agit de montrer qu'une bonne structure (X)HTML se moque de la mise en forme et de la présentation et reste parfaitement consultable, voire accessible, puisqu'elle va à l'essentiel&amp;nbsp;: le contenu et la nature de ce contenu.&lt;/p&gt;
&lt;p&gt;Sur ce, si votre site Web est une charmante jeune femme en lingerie, qu'elle ose ôter son &lt;code xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;&amp;lt;body&amp;gt;&lt;/code&gt; et se mette à poil&amp;nbsp;! &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>
    
  <item>
    <title>CSS, PNG : ne pas rester prisonnier d'Internet Explorer 6</title>
    <link>http://blog.britoweb.net/post/2008/03/24/CSS-PNG-ne-pas-rester-prisonnier-d-Internet-Explorer-6</link>
    <guid isPermaLink="false">urn:md5:ec69801c5185fbb1d9d90c4599823e14</guid>
    <pubDate>Mon, 24 Mar 2008 23:19:00 +0100</pubDate>
    <dc:creator>Victor Brito</dc:creator>
        <category>CSS</category>
        <category>commentaires conditionnels</category><category>css</category><category>dom</category><category>hacks css</category><category>internet explorer</category><category>internet explorer 6</category><category>navigateurs</category><category>png</category><category>standards web</category><category>sélecteurs css</category><category>w3c</category>    
    <description>&lt;p&gt;La &lt;a href=&quot;http://www.w3.org/TR/CSS21/&quot; hreflang=&quot;en&quot; title=&quot;Spécification CSS 2.1 du W3C&quot;&gt;spécification CSS 2.1&lt;/a&gt; offre des possibilités d'appliquer un style à un document Web si riches (et je ne parle pas de ce que nous réserve CSS 3…) qu'elle paraît trop en avance pour les navigateurs «&amp;nbsp;mauvais élèves&amp;nbsp;», comme Internet Explorer 6. Même si ce dernier est encore, hélas&amp;nbsp;! répandu, ce n'est pas une raison de ne pas utiliser toute la puissance des CSS.&lt;/p&gt;    &lt;p&gt;Prenons l'exemple de ce bout de code HTML&amp;nbsp;:&lt;/p&gt;
&lt;pre&gt;&amp;lt;div id=&quot;exemple&quot;&amp;gt;
  &amp;lt;h1&amp;gt;Titre&amp;lt;/h1&amp;gt;
  &amp;lt;ul&amp;gt;
    &amp;lt;li&amp;gt;&amp;lt;a href=&quot;http://blog.britoweb.net/post/2008/03/24/section1.html&quot;&amp;gt;Section 1&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
    &amp;lt;li&amp;gt;
      &amp;lt;a href=&quot;http://blog.britoweb.net/post/2008/03/24/section2.html&quot;&amp;gt;Section 2&amp;lt;/a&amp;gt;
      &amp;lt;ul&amp;gt;
        &amp;lt;li&amp;gt;&amp;lt;a href=&quot;http://blog.britoweb.net/post/2008/03/24/section2-1.html&quot;&amp;gt;Section 2.1&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
        &amp;lt;li&amp;gt;
          &amp;lt;a href=&quot;http://blog.britoweb.net/post/2008/03/24/section2-2.html&quot;&amp;gt;Section 2.2&amp;lt;/a&amp;gt;
          &amp;lt;ul&amp;gt;
            &amp;lt;li&amp;gt;&amp;lt;a href=&quot;http://blog.britoweb.net/post/2008/03/24/section2-2-1.html&quot;&amp;gt;Section 2.2.1&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
            &amp;lt;li&amp;gt;&amp;lt;a href=&quot;http://blog.britoweb.net/post/2008/03/24/section2-2-2.html&quot;&amp;gt;Section 2.2.2&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
          &amp;lt;/ul&amp;gt;
        &amp;lt;/li&amp;gt;
        &amp;lt;li&amp;gt;&amp;lt;a href=&quot;http://blog.britoweb.net/post/2008/03/24/section2-3.html&quot;&amp;gt;Section 2.3&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
      &amp;lt;/ul&amp;gt;
    &amp;lt;/li&amp;gt;
    &amp;lt;li&amp;gt;&amp;lt;a href=&quot;http://blog.britoweb.net/post/2008/03/24/section3.html&quot;&amp;gt;Section 3&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
    &amp;lt;li&amp;gt;&amp;lt;a href=&quot;http://blog.britoweb.net/post/2008/03/24/section4.html&quot;&amp;gt;Section 4&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
    &amp;lt;li&amp;gt;&amp;lt;a href=&quot;http://blog.britoweb.net/post/2008/03/24/section5.html&quot;&amp;gt;Section 5&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
  &amp;lt;/ul&amp;gt;
&amp;lt;/div&amp;gt;&lt;/pre&gt;
&lt;p&gt;Nous voulons que chaque élément de liste ait une bordure en haut, sauf le premier de chaque liste, et que les listes imbriquées aient une couleur d'arrière-plan différente de celle de la liste qui la contient. Pour corser les choses, le deuxième élément de chaque liste doit avoir son texte en gras.&lt;/p&gt;
&lt;p&gt;Il est possible de réaliser cette volonté &lt;strong&gt;sans qu'on touche au code HTML&lt;/strong&gt;, en codant, par exemple, le code CSS suivant&amp;nbsp;:&lt;/p&gt;
&lt;pre&gt;/* Texte en gras pour le deuxième élément li de chaque liste */
#exemple li:&lt;span xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;first-child&lt;/span&gt; + li {
  &lt;span xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;font-weight: bold;&lt;/span&gt;
}
/* Si ce deuxième élément contient une liste,
   seul le deuxième élément de cette dernière est en gras
   (le reste est en graisse normale) */
#exemple li &amp;gt; ul {
  &lt;span xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;font-weight: normal;&lt;/span&gt;
}
/* Bordure */
#exemple li {
  &lt;span xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;border-top: 1px solid black;&lt;/span&gt;
}
/* Pas de bordure pour chaque premier élément li */
#exemple li:&lt;span xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;first-child&lt;/span&gt; {
  &lt;span xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;border-top: none;&lt;/span&gt;
}
/* Couleurs d'arrière-plan différentes pour les listes selon leur niveau */
#exemple &amp;gt; ul {
  &lt;span xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;background-color: yellow;&lt;/span&gt;
}
#exemple &amp;gt; ul &amp;gt; li &amp;gt; ul {
  &lt;span xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;background-color: orange;&lt;/span&gt;
}
#exemple &amp;gt; ul &amp;gt; li &amp;gt; ul &amp;gt; li &amp;gt; ul {
  &lt;span xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;background-color: red;&lt;/span&gt;
}&lt;/pre&gt;
&lt;p&gt;Pour résumer, nous recourons aux sélecteurs d'élément enfant (&lt;code&gt;&amp;gt;&lt;/code&gt;) et adjacent (&lt;code&gt;+&lt;/code&gt;), ainsi qu'à une pseudo-classe (&lt;code&gt;:&lt;span xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;first-child&lt;/span&gt;&lt;/code&gt;), pour traiter les différents niveaux de liste. Et ça marche sous Firefox 2, Opera 9 et Safari 3, ainsi que sous Internet Explorer 7.&lt;/p&gt;
&lt;p&gt;&lt;q&gt;Ça ne marche pas sous &lt;abbr title=&quot;Internet Explorer&quot;&gt;IE&lt;/abbr&gt; 6&lt;/q&gt;, me direz-vous. C'est un fait, certes&amp;nbsp;; mais, &lt;strong&gt;cela ne doit pas être une excuse&lt;/strong&gt; pour mépriser les sélecteurs évoqués ci-dessus, sous prétexte que cela compliquerait la maintenance pour les intégrateurs ou que tout ce qui en CSS n'est pas compris par IE 6 est à ignorer parce que les utilisateurs d'IE 6 sont la cible principale.&lt;/p&gt;
&lt;p&gt;Pour ma part, j'estime que la maintenance est plus compliquée lorsqu'on doit ajouter des attributs &lt;code xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;class&lt;/code&gt; (ou quelques &lt;code&gt;id&lt;/code&gt; lorsque le contexte du code HTML le permet), au risque de friser la &lt;q cite=&quot;http://forum.alsacreations.com/topic-6-18704-1-Mon-site-est-il-parfaitement-accessible-.html#p141123&quot;&gt;classite aiguë&lt;/q&gt; (comme dirait Raphaël Goetter), alors qu'en utilisant toute la puissance des CSS, notamment grâce à ses sélecteurs, on garde la faculté d'alléger le code HTML (et donc de réaliser des économies de bande passante, même s'il ne s'agit que de quelques kilo-octets &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;
&lt;p&gt;&lt;strong&gt;Cela ne veut pas dire, pour autant, qu'il faille interdire l'utilisation des classes en CSS.&lt;/strong&gt; Si l'on souhaite ou doit tenir compte d'IE 6, on peut s'en servir dans notre exemple (pour distinguer les éléments &lt;code&gt;li&lt;/code&gt; devant être mis en gras). Mais, la classe ajoutée &lt;em&gt;ne servira qu'au correctif pour IE 6&lt;/em&gt; si l'on veut y reproduire le style recherché. Auquel cas il faudra créer une feuille de style à part, qui ne servira &lt;em&gt;que&lt;/em&gt; pour IE 6 (et les versions antérieures à la 6, si l'on veut) et qu'on appellera par un &lt;a href=&quot;http://www.blog-and-blues.org/articles/Les_syntaxes_de_commentaires_conditionnels_pour_IE_Windows&quot; title=&quot;Syntaxe des commentaires conditionnels pour Internet Explorer Windows&quot;&gt;commentaire conditionnel&lt;/a&gt;. C'est une méthode à la fois plus pérenne et plus propre, en ce sens qu'une fois qu'IE 6 aura disparu du marché des navigateurs (et plus vite il disparaîtra, mieux ce sera &lt;img src=&quot;http://blog.britoweb.net/themes/normal-marron/smilies/normal.png&quot; alt=&quot;:-|&quot; class=&quot;smiley&quot; /&gt; ), on pourra non seulement ôter les classes du code HTML, mais surtout supprimer la feuille de style pour IE 6, &lt;strong&gt;sans qu'on ait besoin de maintenir la feuille de style principale&lt;/strong&gt;, contrairement à la méthode des hacks CSS (ou de l'utilisation d'une seule feuille de style, qui mélange règles CSS standards et corrections pour IE), qui pollue une feuille de style qui, après tout, ne doit contenir que des règles CSS conçues pour être appliquées sans broncher par les navigateurs, à commencer par ceux qui respectent les standards.&lt;/p&gt;
&lt;p&gt;On peut en dire tout autant concernant les images en &lt;abbr title=&quot;Portable Network Graphics&quot;&gt;PNG&lt;/abbr&gt; contenant une couche de transparence. Sous prétexte qu'IE 6 ne gère pas nativement la transparence du format PNG, beaucoup en viennent à brider la créativité en matière de design Web, en se contentant du format &lt;acronym title=&quot;Graphics Interchange Format&quot;&gt;GIF&lt;/acronym&gt; pour utiliser de la transparence, mais sans pouvoir utiliser de couche Alpha ni aller au-delà de 256 couleurs (ce qui condamne l'utilisation de dégradés de couleurs). Si l'on souhaite ou doit tenir compte d'IE 6, même motif, même punition que pour les CSS&amp;nbsp;: un commentaire conditionnel, où l'on remplacera le PNG qui ne passe pas par un GIF ou, mieux, par un &lt;acronym title=&quot;Joint Photographic Experts Group&quot;&gt;JPEG&lt;/acronym&gt; équivalent, l'idéal étant que l'image en question soit une image générée en CSS (même si l'on peut utiliser les commentaires conditionnels pour afficher ou masquer un contenu HTML à Internet Explorer).&lt;/p&gt;
&lt;p&gt;Et je ne vais pas me hasarder à parler du &lt;acronym title=&quot;Document Object Model&quot;&gt;DOM&lt;/acronym&gt; et de la manière standard de parcourir l'arborescence d'un document HTML, où l'on peut jongler à merveille entre les liens de parenté qu'entretiennent les élements entre eux, voire boucler entre éléments frères. &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;
&lt;p&gt;Bref, tout cela pour dire que, malheureusement, même dans le milieu des agences Web, on continue encore à coder «&amp;nbsp;à la cochonne&amp;nbsp;», en n'osant pas exploiter à fond toutes les possibilités des CSS parce qu'on reste prisonnier d'un navigateur et d'une version qui ne respectent pas les standards du Web&amp;nbsp;: on crée des classes pour sélectionner le premier élément enfant, on pollue la feuille de style principale de hacks et de propriétés CSS propriétaires (comme &lt;code xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;filter&lt;/code&gt; ou &lt;code xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;zoom&lt;/code&gt;) qui l'invalident dès qu'elle passe au validateur CSS du &lt;acronym title=&quot;World Wide Web Consortium&quot;&gt;W3C&lt;/acronym&gt;… Même s'il faut tenir compte des problèmes de compatibilité entre les navigateurs et entre les versions d'un même navigateur, &lt;strong&gt;il ne faut pas rester prisonnier de ce cancre qu'est Internet Explorer 6&lt;/strong&gt;, d'autant moins que la version 7 fait son bonhomme de chemin, que la version 8 pointe déjà son nez et qu'un code pérenne doit se tourner vers cet avenir, de plus en plus présent, qu'est la généralisation des standards du Web.&lt;/p&gt;
&lt;p&gt;Il est &lt;em&gt;important d'&lt;a href=&quot;http://css.alsacreations.com/Faire-une-mise-en-page-sans-tableaux/Mise-en-page-CSS-avancee-grace-a-la-propriete-display&quot; title=&quot;Exemple d'utilisation de la puissance des CSS&amp;nbsp;: mise en page avancée avec la propriété display&quot;&gt;avancer en CSS&lt;/a&gt;&lt;/em&gt;&amp;nbsp;; sinon, nous en serions à coder en &lt;a href=&quot;http://blog.alsacreations.com/2005/08/01/183-choix-dune-dtd-le-doctype-switching-nest-pas-pour-nous&quot; title=&quot;L&amp;#039;utilisation du mode Quirks et du doctype switching n&amp;#039;est pas pour nous&quot;&gt;mode &lt;em xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;Quirks&lt;/em&gt;&lt;/a&gt;, ce qui n'arrangerait pas du tout le W3C, dont le travail &lt;em&gt;essentiel&lt;/em&gt; est de faire en sorte que, sur le Web, tout le monde parle les mêmes langages côté client, afin de faciliter la tâche des concepteurs de sites.&lt;/p&gt;</description>
    
    
    
      </item>
    
</channel>
</rss>