2012-12-11 9 views
5

私はこのようになりますいくつかのHTMLを持っている:組み合わせ表示:明らかとインラインブロック:両方の垂直スタッキングないのdiv

<div class="TheContainer"> 

<div class="TheData">this is some text inline-block with clear</div> 
<div class="TheData">this is some other text inline-block but not clearing</div> 

</div> 

CSSは次のようになります。私が使用している

.TheContainer{ 
margin:20px 20px; 
background:red;} 

.TheData{ 
display:inline-block; 
clear:both; 
background:yellow; 
padding:5px 5px; 
margin:10px 10px;} 

inline-blockのように、TheData divは合計幅をTheContainerに拡張するのではなく、コンテンツの周りをうまくラップします。私はclear:bothも使用していますので、これらのTheData divが積み重なっています。

ただし、要素がinline-blockに設定されている場合、clear:bothは適用されないようです。ここでJSFiddleがこれを実証しています。

inline-blockをどのように使用して、divsスタックを垂直にしますか?

ありがとうございました。

答えて

7

clearはあなたが望む効果を得るためにfloat

をクリアするため、.TheDatafloat:leftを置いています。おそらく、div.TheDataより下の要素がclearで、floatでない要素が正しい高さでレンダリングされていることを確認したい場合もあります。

Updated fiddle

+0

おかげ。問題を解決しました。 – frenchie

+0

なぜディスプレイ上で浮動小数点を使用するのですか:インラインブロックですか?インラインブロックの機能を失ってしまいます。 – Stevus

1

私が何をしたいことはthe one clear-fix to rule them allだと思います。

display: inline-block;とは思っていません。実際には動作しているからです。あなたの内側の要素にfloat: left; clear: both;とコンテナ要素を明確にした修正としたほうが良いかもしれません:

CSS:あなたの答えのための

TheContainer{ 
    margin:20px 20px; 
    padding:10px 10px; 
    background:red; 
    clear:both; 
} 

.TheData{ 
    float:left; 
    clear: both; 
    background:yellow; 
    padding:5px 5px; 
    margin:10px; 
} 

/* For modern browsers */ 
.cf:before, 
.cf:after { 
    content:""; 
    display:table; 
} 
.cf:after { 
    clear:both; 
} 
/* For IE 6/7 (trigger hasLayout) */ 
.cf { 
    zoom:1; 
}. 

<div class="TheContainer cf"> 

    <div class="TheData">smaller</div> 
    <div class="TheData">smaller a</div> 
    <div class="TheData">smaller a b</div> 
    <div class="TheData">smaller a b c</div> 
    <div class="TheData">smaller a b c d</div> 
    <div class="TheData">this is some other text inline-block but not clearing</div> 
</div> 

jsFiddle

+0

私はそれが働いているので、それをupvoted;それはちょうど非常に複雑に思えます。 – frenchie

+0

ねえ、ありがとう:)ええ、私は同意します、それはより複雑ですが、余分なDOM要素を追加する必要がないという利点があります。あなたが他の答えを好む場合でも、upvoteに感謝します! – tiffon

関連する問題