2011-09-07 13 views
5
<style> 
.cl {clear:both;} 
.block {} 
.left {float:left;} 
</style> 

<div class="block"> 
    <div class="left">Title 1</div> 
    <div class="left">Value 1</div> 
    <div class="cl"></div> 
</div> 
<div class="block"> 
    <div class="left">Title 2</div> 
    <div class="left">Value 2</div> 
    <div class="cl"></div> 
</div> 

.blockの末尾に<div class="cl"></div>を追加することは避けられますか?クリアする方法:両方;正しく?

+0

あなたが.block 'のようなものを使用してみました'?セレクタの前または後を使ってみたことがないので、どのように動作するのかわかりません。 – animuson

答えて

0

.blockoverflow:hiddenを試してみることがありますが、時々修正されることがあります。

<style> 
    br {clear:both;} 
</style> 
<div class="block"> 
    <div class="left">Title 2</div> 
    <div class="left">Value 2</div> 
</div> 
<br/> 

番目のオプションの再:あなたがこれを行うことができ

1

@animusonコメント

<style> 
    .container br {clear:both;} 
</style> 
<div class="container"> 
    <div class="block"> 
     <div class="left">Title 2</div> 
     <div class="left">Value 2</div> 
    </div> 
    <br/> 
</div> 
+1

あなたは本当にブレークのためにクラス名を使う必要があります。だから、あなたのドキュメントの*すべてのブレークには当てはまりません。しかし、そうすれば、それはOPの例とはまったく違うものではありません。 – animuson

+0

ええ、それで、私は要素レベルでそれをやったよ。 – Eonasdan

5

をこの問題には、2つの共通ソリューションがあります。

  1. 浮上要素(したがって、この場合、.block)の親にoverflow: hiddenを加えます。
  2. 使用 "clearfix":ここhttp://nicolasgallagher.com/micro-clearfix-hack/

いくつかのより多くの情報:あなたすでにはそれを追加するために利用可能な要素を持っている場合Is clearfix deprecated?


clear: bothを使用するには良い時期です。例えば

、フッターと浮かん列の一般的なケース:http://jsfiddle.net/thirtydot/vhBkM/

+0

+1: 'overflow:hidden 'を使うと、浮動小数点をブロック要素内にとどめるようにすることができます。 'clear'は仕事の間違ったツールです。 –

+0

@SørenLøvborgなぜ仕事に間違っているのですか?学習体験のための本物の質問。 – Eonasdan

+0

@ Eonasdan:これはうまくいきますが、より洗練された選択肢があります。 'overflow:hidden'は、CSSに' overflow:hidden'を追加するだけです。これは、浮動小数点数をクリアするという唯一の目的のために、HTMLに余分な要素を追加するよりもきれいです。一方、clearfixは、余分な要素を追加するよりもクリーンである、HTMLに余分なクラスだけを追加することを含みます。 – thirtydot

1

あなたは全く<div class="cl"></div> divを必要はありません。ブロックdivにclear: bothを置くだけです。

例:http://jsfiddle.net/mKazr/

CSS

.block { 
    clear: both; 
    overflow: hidden; /* If you want to make the div size to the contents and not collapse use this line (from thirtydot answer) */ 
} 
.left { float:left; } 

HTML

<div class="block"> 
    <div class="left">Title 1</div> 
    <div class="left">Value 1</div> 
</div> 
<div class="block"> 
    <div class="left">Title 2</div> 
    <div class="left">Value 2</div> 
</div> 

編集:{クリア:両方}の後に:追加されたコード

+0

これも私の最初の考えでした。しかし、テストされていません。 – diggersworld

関連する問題