<?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 &#38; Webdesign &#187; HR</title>
	<atom:link href="http://css.4design.tl/tag/hr/feed" rel="self" type="application/rss+xml" />
	<link>http://css.4design.tl</link>
	<description>Le blog de l&#039;intégrateur web</description>
	<lastBuildDate>Thu, 24 May 2012 16:31:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Rétablir le flux après des éléments flottants en CSS sans balise HTML supplémentaire</title>
		<link>http://css.4design.tl/retablir-le-flux-apres-des-elements-flottants-en-css-sans-balise-html-supplementaire</link>
		<comments>http://css.4design.tl/retablir-le-flux-apres-des-elements-flottants-en-css-sans-balise-html-supplementaire#comments</comments>
		<pubDate>Tue, 26 Feb 2008 21:14:45 +0000</pubDate>
		<dc:creator>Bruno Bichet</dc:creator>
				<category><![CDATA[HTML & CSS]]></category>
		<category><![CDATA[Intégration web]]></category>
		<category><![CDATA[Clear]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[DIV]]></category>
		<category><![CDATA[Float]]></category>
		<category><![CDATA[Flottants]]></category>
		<category><![CDATA[HR]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[IE6]]></category>
		<category><![CDATA[IE7]]></category>
		<category><![CDATA[Tutoriels]]></category>
		<category><![CDATA[XHTML]]></category>

		<guid isPermaLink="false">http://www.css4design.com/retablir-le-flux-apres-des-elements-flottants-en-css-sans-balise-html-supplementaire</guid>
		<description><![CDATA[Il y a quelques temps, je m&#8217;étais interrogé sur les différentes manières de rétablir le flux après un float. A l&#8217;époque, mon vocabulaire en la matière était rustique mais solide : je contentais souvent d&#8217;un coup de clear: both appliqué soit à une balise div, hr ou br. Comme j&#8217;en ai appris un peu plus sur le clearing suite aux commentaires qui ont suivi, j&#8217;assure le service après-vente, ce qui fait de moi une espèce de Darty Monsieur Plus du CSS&#8230;  Pour &#171;&#160;clearer&#160;&#187; les &#171;&#160;float&#160;&#187;, j&#8217;utilise désormais en première intention un overflow: hidden dont j&#8217;applique soigneusement la pommade sur le [...]]]></description>
			<content:encoded><![CDATA[<p>Il y a quelques temps, je m&#8217;étais interrogé sur les différentes manières de <a href="http://www.css4design.com/pour-retablir-le-flux-apres-un-float-vous-etes-plutot-hr-br-ou-div">rétablir le flux après un float</a>. A l&#8217;époque, mon vocabulaire en la matière était rustique mais solide : je contentais souvent d&#8217;un coup de clear: both appliqué soit à une balise div, hr ou br. Comme j&#8217;en ai appris un peu plus sur le <em>clearing</em> suite aux commentaires qui ont suivi, j&#8217;assure le service après-vente, ce qui fait de moi une espèce de <del>Darty</del> Monsieur Plus du CSS&#8230; <span id="more-206"></span></p>

<p>Pour &laquo;&nbsp;clearer&nbsp;&raquo; les &laquo;&nbsp;float&nbsp;&raquo;, j&#8217;utilise désormais en première intention un overflow: hidden dont j&#8217;applique soigneusement la pommade sur le bloc qui contient les éléments flottants de manière à créer un <a href="http://www.blog-and-blues.org/articles/Float,_clear_et_contextes_de_formatage">contexte de formatage</a>, le tout agrémenté d&#8217;une pincée de <em>Ouidzzz !</em>, de <em>Zzoum !</em> ou de <em>Héiiiitt&#8230;</em> pour IE6 qui a besoin d&#8217;un petit câlin pour déclencher son <del>fumeux</del> fameux <a href="http://forum.alsacreations.com/faq/faq-91-Qu039est-ce-que-le-HasLayout-et-comment-l039utiliser.html">hasLayout</a> sur lequel vous trouverez tout ce qu&#8217;il faut savoir chez <a href="http://www.blog-and-blues.org/">blog-and-blues</a> qui a mené de <a href="http://www.blog-and-blues.org/tests/">nombreux tests XHTML et CSS</a> sur le sujet.</p>

<p>Voici quelques exemples de code que j&#8217;utilise pour rétablir le flux :</p>

<h2>Avec overflow: hidden</h2>

<p><pre>.container-with-overflow {
    overflow: hidden;
    height: 1%;
}</pre>
La propriété height: 1% peut être remplacée par zoom: 1; pour déclencher le <em>hasLayout</em> dans IE 6, à servir de préférence dans une feuille de style inclue à l&#8217;aide d&#8217;un <a href="http://www.css4design.com/commentaires-conditionnels-d-internet-explorer-vs-hacks-css">commentaire conditionnel</a>. A noter que IE7 &laquo;&nbsp;comprend&nbsp;&raquo; l&#8217;overflow (ce qui peut permettre de cibler uniquement IE6 dans ce cas-là). Notez que zoom: 1; est une propriété &laquo;&nbsp;propriétaire&nbsp;&raquo; de IE qui ne passe pas le validateur.</p>

<h2>Avec la pseudo-classe :after</h2>

<p><pre>.container-with-generated-content {
    height: 1%;
}
.container-with-generated-content:after {
    content: ".";
    display: block;
    height: 0;
    clear: both;
    visibility: hidden;
}</pre>
Vous avez remarqué que le height: 1% (ou zoom: 1) est toujours nécessaire pour déclencher le <em>hasLayout</em> chez IE 6 et IE 7 (et oui, ce dernier ne &laquo;&nbsp;comprend&nbsp;&raquo; pas la pseudo-classe :after&#8230;</p>

<p>Pourquoi présenter deux méthodes ? Simplement parce que si on utilise overflow: hidden pour déclencher le contexte de formatage, il ne pert pas pour autant sa fonction première : masquer le contenu qui dépasse d&#8217;un bloc. C&#8217;est souvent très pratique, par exemple lorsqu&#8217;on ne veut pas trop se soucier de la largeur des images, mais parfois très ennuyeux lorsque le bloc en question doit inclure un menu déroulant, car ce dernier risque d&#8217;être masqué lui aussi&#8230;</p>

<h2>En faisant flotter le container lui aussi !</h2>

<p>Une troisième méthode consiste à donner une largeur de 100% à l&#8217;élément <em>container</em> et à le faire flotter lui aussi :
<pre>.container-with-float {
    float: left;
    width: 100%;
}</pre>
Est-ce la fin des anciennes méthodes ? C&#8217;est bien possible, même si dans la plupart des cas, le clear: both appliqué à une balise hr ou br peut se justifier, vu que généralement lorsqu&#8217;on a besoin de rétablir le flux, c&#8217;est qu&#8217;il y a une légère rupture sémantique qui peut être rendu par une ligne horizontale (peut-être moins un br, mais bon&#8230;). Disons que le test est simple : si en l&#8217;absence de CSS, les lignes hr ont l&#8217;air d&#8217;être posées comme un cheveu sur la soupe, c&#8217;est qu&#8217;il n&#8217;y en a pas besoin ;)</p>

<p>Pour en savoir plus sur les avantages et inconvénients de ces trois techniques, je vous invite à jeter un oeil chez <a href="http://www.robertnyman.com/2007/04/12/how-to-clear-css-floats-without-extra-markup-different-techniques-explained/">Robert Nyman</a> et chez <a href="http://www.covertprestige.net/">Florent Verschelde</a> pour tout savoir sur les <a href="http://web.covertprestige.info/test/31-marges-et-contexte-de-formatage.html">marges et contexte de formatage</a>.</p>

<h2>Clearfix reloaded ! (màj du 23/02/2011)</h2>

<p>Voici une nouvelle méthode pour le clearing permettant de mieux gérer la fusion des marges (cf.<a href="http://www.yuiblog.com/blog/2010/09/27/clearfix-reloaded-overflowhidden-demystified/"> Clearfix Reloaded + overflow:hidden Demystified</a>) :
<pre>.clearfix:before,
.clearfix:after {
    content: ".";
    display: block;
    height: 0;
    overflow: hidden;
}
.clearfix:after { clear: both; }
.clearfix { zoom: 1; }</pre>
Une variante utilisée dans <a href="http://fr.html5boilerplate.com/">HTML5 Boilerplate</a>. Notez le remplacement de la propriété <code>overflow: hidden</code> par <code>visibility: hidden</code> :
<pre>.clearfix:before,
.clearfix:after {
    content: "020";
    display: block;
    height: 0;
    visibility: hidden;
}
.clearfix:after { clear: both; }
.clearfix { zoom: 1; }</pre>
L&#8217;absence de la propriété <code>overflow: hidden</code> peut entrainer des problèmes d&#8217;espaces au-dessus de certains éléments. Pour y remédier, il est possible d&#8217;utiliser :
<pre>.clearfix2:before,
.clearfix2:after {
    content: "020";
    display: block;
    height: 0;
    overflow: hidden;
}
.clearfix2:after { clear: both; }
.clearfix2 { zoom: 1; }</pre></p>

<h2>Quelques liens</h2>

<ul>
    <li>Très bonne analyse de Florent Verschelde en quatre parties sur les problèmes liés à l&#8217;utilisation des flottants. De nombreux exemples avec capture d&#8217;écran pour montrer les problèmes rencontrés sur les différents navigateurs :
<ol>
    <li><a href="http://web.covertprestige.info/test/03-elements-flottants-et-element-parent-1.html">Exposé du problème</a></li>
    <li><a href="http://web.covertprestige.info/test/03-elements-flottants-et-element-parent-2.html">Exemples avec un élément parent de largeur fixe, et exposé des solutions disponibles</a></li>
    <li><a href="http://web.covertprestige.info/test/03-elements-flottants-et-element-parent-3.html">Exemples avec un élément parent sans largeur fixe (non doté du layout)</a></li>
    <li><a href="http://web.covertprestige.info/test/03-elements-flottants-et-element-parent-4.html">Pour IE Win : divers moyens de doter l&#8217;élément parent du layout</a></li>
</ol>
</li>
    <li><a href="http://remiprevost.com/2007/09/clearer-des-floats-sans-elementsuperflu">Clearer des floats sans élément superflu</a></li>
    <li> <a href="http://www.robertnyman.com/2007/04/12/how-to-clear-css-floats-without-extra-markup-different-techniques-explained/"><strong>How to clear CSS floats without extra markup &#8211; different techniques explained</strong></a> &#8212; Le site sur lequel j&#8217;ai copié-collé les exemples pour illustrer cet article. Des explications concises et efficaces.</li>
    <li><a href="http://www.ejeliot.com/59"><strong>Methods for Containing Floats</strong></a> &#8212; Contient des tableaux récapitulatifs des différentes méthodes de clearing et leur support par les navigateurs. Un <em>must-read</em>.</li>
    <li><a href="http://www.positioniseverything.net/easyclearing.html">How To Clear Floats Without Structural Markup</a></li>
    <li><a href="http://www.complexspiral.com/publications/containing-floats/">Containing Floats</a></li>
    <li><a href="http://www.satzansatz.de/cssd/rpfloat.html">IE/Win: relatively positioned parent and floated child – disappearance</a></li>
    <li><a href="http://www.456bereastreet.com/archive/200603/new_clearing_method_needed_for_ie7/">New clearing method needed for IE7?</a></li>
</ul>

<h3>Pour la route&#8230;</h3>

<p>J&#8217;en profite pour vous annoncer que la <a href="http://css.developpez.com/tutoriels/retablissement-flux/">première partie</a> de ce billet est également disponible sur le portail <a href="http://www.developpez.com/">developpez.com</a>, dans <a href="http://css.developpez.com/">la rubrique CSS</a> \o/</p>

<p>Developpez.com, c&#8217;est LE site de référence pour tout ce qui concerne les techniques de programmation. Je vous conseille tout particulièrement l&#8217;excellent <a href="http://giminik.developpez.com/xhtml/">outil XHTML développé par giminik</a> (Matthieu Petiot) pour connaitre la hiérarchie des éléments et les imbrications autorisées par les spécifications.</p>

<h3 class='related_post_title'>Articles sur le même sujet</h3>

<ul class='related_post'><li><a href='http://css.4design.tl/pour-retablir-le-flux-apres-un-float-vous-etes-plutot-hr-br-ou-div' title='Pour rétablir le flux après un float, vous êtes plutôt HR, BR ou DIV ?'>Pour rétablir le flux après un float, vous êtes plutôt HR, BR ou DIV ?</a></li><li><a href='http://css.4design.tl/quelques-notes-sur-la-bibliotheque-javascript-ie7-de-dean-edwards' title='Quelques notes sur la bibliothèque Javascript IE7 de Dean Edwards'>Quelques notes sur la bibliothèque Javascript IE7 de Dean Edwards</a></li><li><a href='http://css.4design.tl/resolu-les-folles-journees-de-l-integrateur-html-et-ses-petits-tracas' title='[résolu] Les folles journées de l&#039;intégrateur HTML et ses petits tracas&#8230;'>[résolu] Les folles journées de l&#039;intégrateur HTML et ses petits tracas&#8230;</a></li><li><a href='http://css.4design.tl/programme-formation-html-css' title='Quelques notes &#8212; Programme de formation HTML &amp; CSS'>Quelques notes &#8212; Programme de formation HTML &amp; CSS</a></li><li><a href='http://css.4design.tl/une-feuille-de-style-et-des-hacks-css-pour-cibler-ie6-ie7-ou-ie8' title='Une Feuille de style et des « hacks CSS » pour cibler IE6, IE7 ou IE8'>Une Feuille de style et des « hacks CSS » pour cibler IE6, IE7 ou IE8</a></li></ul>
 <p><a href="http://css.4design.tl/?flattrss_redirect&amp;id=206&amp;md5=c77880ff449b9d5d1abd0246a9c51f57" title="Flattr" target="_blank"><img src="http://css.4design.tl/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://css.4design.tl/retablir-le-flux-apres-des-elements-flottants-en-css-sans-balise-html-supplementaire/feed</wfw:commentRss>
		<slash:comments>26</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=br1o&amp;popout=1&amp;url=http%3A%2F%2Fcss.4design.tl%2Fretablir-le-flux-apres-des-elements-flottants-en-css-sans-balise-html-supplementaire&amp;language=fr_FR&amp;category=text&amp;title=R%C3%A9tablir+le+flux+apr%C3%A8s+des+%C3%A9l%C3%A9ments+flottants+en+CSS+sans+balise+HTML+suppl%C3%A9mentaire&amp;description=Il+y+a+quelques+temps%2C+je+m%26%238217%3B%C3%A9tais+interrog%C3%A9+sur+les+diff%C3%A9rentes+mani%C3%A8res+de+r%C3%A9tablir+le+flux+apr%C3%A8s+un+float.+A+l%26%238217%3B%C3%A9poque%2C+mon+vocabulaire+en+la+mati%C3%A8re+%C3%A9tait+rustique+mais+solide...&amp;tags=Clear%2CCSS%2CDIV%2CFloat%2CFlottants%2CHR%2CHTML%2CIE6%2CIE7%2CTutoriels%2CXHTML%2Cblog" type="text/html" />
	</item>
		<item>
		<title>Pour rétablir le flux après un float, vous êtes plutôt HR, BR ou DIV ?</title>
		<link>http://css.4design.tl/pour-retablir-le-flux-apres-un-float-vous-etes-plutot-hr-br-ou-div</link>
		<comments>http://css.4design.tl/pour-retablir-le-flux-apres-un-float-vous-etes-plutot-hr-br-ou-div#comments</comments>
		<pubDate>Fri, 22 Jun 2007 00:02:06 +0000</pubDate>
		<dc:creator>Bruno Bichet</dc:creator>
				<category><![CDATA[HTML & CSS]]></category>
		<category><![CDATA[Commentaires conditionnels]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[DIV]]></category>
		<category><![CDATA[Float]]></category>
		<category><![CDATA[Flottants]]></category>
		<category><![CDATA[HR]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Tutoriels]]></category>
		<category><![CDATA[XHTML]]></category>

		<guid isPermaLink="false">http://www.css4design.com/blog-reloaded/?p=103</guid>
		<description><![CDATA[Dans le prolongement du billet précédent concernant une mise en pages CSS avec la propriété float, je me suis intéressé aux différentes manières de styler la balise hr pour rétablir le flux après en avoir sorti des éléments en les faisant flotter à gauche ou à droite. J&#8217;utilise généralement hr avec le traditionnel clear: both et visibility: hidden et je jongle ensuite avec les marges ou la hauteur pour espacer les éléments. Or, depuis que j&#8217;utilise le reset.css d&#8217;Eric Meyer, j&#8217;ai tendance à supprimer les marges de tout ce qui bouge, mais cette chère règle horizontale reste récalcitrante à la [...]]]></description>
			<content:encoded><![CDATA[<p>Dans le prolongement du billet précédent concernant une <a href="http://www.css4design.com/quelques-notes-autour-du-design-fluide-avec-3-colonnes-du-collectif-alsacreations">mise en pages CSS avec la propriété float</a>, je me suis intéressé aux différentes manières de styler la balise <em>hr</em> pour rétablir le flux après en avoir sorti des éléments en les faisant flotter à gauche ou à droite. J&#8217;utilise généralement <em>hr</em> avec le traditionnel  <em>clear: both</em> et <em>visibility: hidden</em> et je jongle ensuite avec les marges ou la hauteur pour espacer les éléments. Or, depuis que j&#8217;utilise le <a href="http://meyerweb.com/eric/thoughts/2007/05/01/reset-reloaded/">reset.css</a> d&#8217;Eric Meyer, j&#8217;ai tendance à supprimer les marges de tout ce qui bouge, mais cette chère <em>règle horizontale</em> reste récalcitrante à la remise à zéro <em>cross browser</em>&#8230;<span id="more-106"></span></p>

<h3>Un HR cross-browser cachère</h3>

<p>Il existe heureusement des solutions pour palier les insuffisances du dernier de la classe. <a href="http://forum.alsacreations.com/faq/faq-63-Styler-la-balise-lthr-gt-sous-Internet-Explorer.html">L&#8217;une d&#8217;entre elles</a> repose sur l&#8217;application d&#8217;un <em>margin-top</em> et <em>margin-bottom</em> négatif :</p>

<p>hr {
height: 1px;
margin: -0.5em 0;
padding: 0;
color: #F00;
background-color: #F00;
border: 0;
}</p>

<p>J&#8217;ajoute à celà les propriétés <em>clear: both</em> et <em>visibility: hidden</em>, je mets la hauteur à zéro et je supprime les couleurs pour obtenir un <em>spacer</em> de bon aloi. Les valeurs de <em>margin</em> ne convenant pas dans mon cas, j&#8217;ai tâtonné pour trouver une valeur satisfaisante :
<pre>hr {
     height: 0;
     margin: -1.2ex 0;
     padding: 0;
     border: 0;
     clear: both;
     visibility: hidden;
 }</pre>
Une autre solution trouvée cette fois sur <a href="http://www.ultra-fluide.com/ressources/css/css-hacks.htm#hr">ultra-fluide</a> transforme le <em>hr</em> en bloc pour mieux maitriser son comportement dans le but de créer une ligne rouge horizontale de 1 pixel d&#8217;épaisseur sans marge :
<pre>hr {
     display:  block;
     height: 1px;
     margin: 0;
     _margin: -7px 0;
     padding: 0;
     color: #F00;
     background-color: #F00;
     border: 0;
 }</pre>
Pour mes besoins, j&#8217;applique la recette précédente :
<pre>hr {
     display: block;
     height: 0;
     margin: 0;
     _margin: -7px 0;
     padding: 0;
     border: 0;
     visibility: hidden;
 }</pre>
Il y a bien ce <em>_margin</em> qui peut être gênant, mais il reste toujours la possibilité de le caser dans une feuille de style dédiée à IE avec les <a href="http://www.css4design.com/commentaires-conditionnels-d-internet-explorer-vs-hacks-css">commentaires conditionnels</a>.</p>

<p>La différence avec la méthode précédente est qu&#8217;une fois transformé en <em>block</em> (l&#8217;auteur de l&#8217;astuce ayant habilement déterminé que le <em>hr</em> se comportait par certains côtés comme un élément en ligne) le <em>margin: 0</em> suffit à supprimer les marges pour les navigateurs modernes. le <em>_margin: -7px 0</em> s&#8217;adressant plus spécifiquement à IE6. Reste à savoir comment se comporte IE7 dans les mêmes circonstances.</p>

<h4>Deux, c&#8217;est trop</h4>

<p>Ces deux techniques fonctionnent assez bien pour donner le même rendu aux traits horizontaux ou pour rétablir le flux. Malheureusement pour moi, j&#8217;ai deux blocs imbriqués contenant des <em>float: left</em> et <em>float: right</em>, ce qui implique deux <em>hr</em> l&#8217;un en dessous de l&#8217;autre :
<pre>             &lt;/div&gt;&lt;!-- end .pix --&gt;
             &lt;hr class="spacer" /&gt;
         &lt;/div&gt;&lt;!-- end .contents --&gt;
         &lt;hr class="spacer" /&gt;
     &lt;/div&gt;&lt;!-- end #container --&gt; &lt;/body&gt;</pre>
Ces deux <em>hr</em> successifs m&#8217;ennuient (un peu) car en l&#8217;absence de prise en charge des feuilles de style, je me retrouve avec deux vilains traits de séparation. Et puis, si je me suis mis à utiliser le <em>reset.css</em>, c&#8217;est pour éviter au maximum d&#8217;utiliser des CSS spécifiques à certains navigateurs, alors, bon&#8230;</p>

<p>Je tiens à préciser que j&#8217;utilise généralement <em>clear: both</em> sur le blocs eux-mêmes au lieu de créer un <em>spacer</em> superflu. Mais curieusement, les blocs en question se retrouvaient sous les colonnes latérales&#8230; la technique utilisée pour créer les colonnes latérales reposant également sur la propriété <em>float</em>, j&#8217;ai le sentiment qu&#8217;au bout d&#8217;un moment on se retrouve dans la situation où il devient interdit d&#8217;interdire à un bloc d&#8217;avoir des voisins à droite ou à gauche : les <em>spacers</em> indépendants deviennent indispensables.</p>

<h4>C&#8217;était mieux avant ?</h4>

<p>Avant d&#8217;utiliser les <em>hr</em> pour rétablir le flux, j&#8217;utilisais une &lt;div class=&nbsp;&raquo;spacer&nbsp;&raquo;&gt;&lt;/div&gt; qui fonctionnait furieusement bien malgré l&#8217;absence de sémantique associée :x</p>

<h3>Styler la balise BR</h3>

<p>J&#8217;ai essayé d&#8217;utiliser la balise <em>br</em> en lui associant un <em>clear: both</em>. Tout a l&#8217;air de fonctionner, mais si le flux est bien rétabli sous Firefox, IE6 ne passe pas le test de la bordure : elle n&#8217;encadre pas l&#8217;ensemble de la <em>div</em> comme si un <em>clear: both</em> n&#8217;avait pas d&#8217;effet sur un <em>br</em>&#8230;</p>

<p>C&#8217;est dommage parce que lorsqu&#8217;il s&#8217;agit simplement de rétablir le flux et non de créer une séparation entre deux contenus, cette balise <em>br</em> aurait presque été sémantique : un retour à la ligne&#8230; Que demander de mieux (oué, que ça fonctionne sous IE6, je sais&#8230;) ?</p>

<p>Je garde cette solution sous le coude pour tests complémentaires. En attendant, j&#8217;ai trouvé sur <a href="http://www.dimension-internet.com/images/gabarits/2colsSidebar_rHeaderFooter.html">dimension-internet</a> un gabarit utilisant la balise <em>br</em> pour rétablir le flux :
<pre>br.clearfloat {
     clear: both;
     height: 0;
     font-size: 1px;
     line-height: 0px;
 }</pre></p>

<h3>La rustine</h3>

<p>En désespoir de cause, je me suis résolu à utiliser &lt;div class=&nbsp;&raquo;spacer&nbsp;&raquo;&gt;&lt;/div&gt; lorsqu&#8217;il s&#8217;agit seulement de rétablir le flux, et &lt;div class=&nbsp;&raquo;spacer&nbsp;&raquo;&gt;&lt;hr /&gt;&lt;/div&gt; lorsque j&#8217;ai besoin de séparer aussi des contenus :
<pre>.spacer {
     clear: both;
 }
.spacer hr {
     display: none;
 }</pre>
Ce n&#8217;est pas super <a href="http://microformateurs.org/">CHIC</a>, mais au moins la feuille de style est allégée et ne nécessite ni <em>hacks</em> ni commentaires conditionnels. Si j&#8217;utilise souvent ces derniers, ça m&#8217;ennuie de les mettre en place pour une ou deux déclarations seulement. Bien évidemment, j&#8217;utilise et je recommande fortement l&#8217;usage du <em>hr</em> pour rétablir le flux lorsqu&#8217;un espacement est souhaité entre deux blocs, ou mieux encore, l&#8217;application du <em>clear: both</em> sur les blocs eux-mêmes.</p>

<h3>Quelques mots sur la remise à zéro des éléments HTML</h3>

<p>Au cours de mes recherche sur <em>hr</em>, je suis tombé sur une intervention de Florent V. qui <a href="http://forum.alsacreations.com/posting.php?action=newp&amp;tid=25546&amp;fid=23&amp;p=1&amp;q=193535">fait part de ses réserves</a> quant à l&#8217;utilisation d&#8217;une remise à zéro des éléments. L&#8217;utilisation d&#8217;un <em>reset</em> présente selon lui deux écueils. D&#8217;une part, il serait facile d&#8217;oublier de styler une balise et d&#8217;autre part, il ne serait pas souhaitable de vouloir tout maîtriser : un peu de <em>lâcher prise</em> serait bienvenue.</p>

<p>Si je partage cette dernière opinion, je ne suis pas totalement d&#8217;accord avec la première : les balises HTML ne sont pas en nombre infini, et au pire, en cas d&#8217;oubli, il est facile de palier le problème. Pour ma part, en complément de <em>reset.css</em>, j&#8217;utilise un fichier <em>html.css</em> pour donner un nouveau style &laquo;&nbsp;par défaut&nbsp;&raquo; aux éléments HTML.</p>

<p>Ce fichier est similaire à la partie /* basics <em>/ de l&#8217;<a href="http://larlet.fr/css/style.css">exemple fourni</a> par <a href="http://www.biologeek.com/journal/">david larlet de biologeek</a>. Notons que la partie /</em> reset */ de ce fichier ne reprend qu&#8217;une partie du <a href="http://meyerweb.com/eric/thoughts/2007/05/01/reset-reloaded/">reset.css d&#8217;Eric Meyer</a>.</p>

<h4>Faire <em>reset</em>, c&#8217;est rigolo tout le temps ?</h4>

<p>Il y a évidemment des cas où l&#8217;utilisation d&#8217;un <em>reset</em> est à prendre avec des pincettes : lorsque vous intervenez sur une partie d&#8217;une page déjà construite, ou dans une moindre mesure, lorsque d&#8217;autres personnes sont susceptibles d&#8217;intervenir. Je ne conseillerais pas non plus l&#8217;utilisation de la remise à zéro dans le cadre d&#8217;une formation : si vous commencez l&#8217;étude des CSS, il vaut peut-être mieux connaître les bases avant de faire table rase ;)</p>

<h3>En guise de conclusion</h3>

<p>En tout état de cause, si la théorie nous dicte la bonne conduite à tenir, force est de constater que la pratique nous joue parfois des tours de cochons ^_^</p>

<p><strong>Mise à jour du 28/02/08 :</strong> la deuxième partie intitulée <a href="http://www.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> vient de sortir.</p>

<h3 class='related_post_title'>Articles sur le même sujet</h3>

<ul class='related_post'><li><a href='http://css.4design.tl/retablir-le-flux-apres-des-elements-flottants-en-css-sans-balise-html-supplementaire' title='Rétablir le flux après des éléments flottants en CSS sans balise HTML supplémentaire'>Rétablir le flux après des éléments flottants en CSS sans balise HTML supplémentaire</a></li><li><a href='http://css.4design.tl/exercice-de-style-css-et-html-table-vs-div' title='Exercice de style CSS et HTML : table vs div'>Exercice de style CSS et HTML : table vs div</a></li><li><a href='http://css.4design.tl/programme-formation-html-css' title='Quelques notes &#8212; Programme de formation HTML &amp; CSS'>Quelques notes &#8212; Programme de formation HTML &amp; CSS</a></li><li><a href='http://css.4design.tl/design-css-liquide-ou-fluide-encadre-d-images-repetees-sans-table' title='Design CSS liquide (ou fluide) encadré d&#039;images répétées&#8230; sans table'>Design CSS liquide (ou fluide) encadré d&#039;images répétées&#8230; sans table</a></li><li><a href='http://css.4design.tl/quelques-notes-sur-la-bibliotheque-javascript-ie7-de-dean-edwards' title='Quelques notes sur la bibliothèque Javascript IE7 de Dean Edwards'>Quelques notes sur la bibliothèque Javascript IE7 de Dean Edwards</a></li></ul>
 <p><a href="http://css.4design.tl/?flattrss_redirect&amp;id=106&amp;md5=8f2fa813daaac67046d4ef2e92d03207" title="Flattr" target="_blank"><img src="http://css.4design.tl/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://css.4design.tl/pour-retablir-le-flux-apres-un-float-vous-etes-plutot-hr-br-ou-div/feed</wfw:commentRss>
		<slash:comments>20</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=br1o&amp;popout=1&amp;url=http%3A%2F%2Fcss.4design.tl%2Fpour-retablir-le-flux-apres-un-float-vous-etes-plutot-hr-br-ou-div&amp;language=fr_FR&amp;category=text&amp;title=Pour+r%C3%A9tablir+le+flux+apr%C3%A8s+un+float%2C+vous+%C3%AAtes+plut%C3%B4t+HR%2C+BR+ou+DIV+%3F&amp;description=Dans+le+prolongement+du+billet+pr%C3%A9c%C3%A9dent+concernant+une+mise+en+pages+CSS+avec+la+propri%C3%A9t%C3%A9+float%2C+je+me+suis+int%C3%A9ress%C3%A9+aux+diff%C3%A9rentes+mani%C3%A8res+de+styler+la+balise+hr+pour+r%C3%A9tablir...&amp;tags=Commentaires+conditionnels%2CCSS%2CDIV%2CFloat%2CFlottants%2CHR%2CHTML%2CTutoriels%2CXHTML%2Cblog" type="text/html" />
	</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Page Caching using disk: basic

Served from: css.4design.tl @ 2012-05-24 18:25:25 -->
