0

ここにデモがあります> http://jsfiddle.net/AndyMP/4hzXe/

コンテナDIVが拡張されない理由がわかりません。

CSS

#container { 
position: relative;
width: 400px;
border: solid 1px #333;
padding: 20px;
}
#left { 
position: relative;
float: left;
width: 100px;
height: 100px;
border: 1px solid blue;
margin: 10px;
overflow: hidden;
}

HTML

<div id="container">

<div id="left"></div>
<div id="left"></div>
<div id="left"></div>
<div id="left"></div>
<div id="left"></div>
<div id="left"></div>

</div>
4

3 に答える 3

1

これを試して

.left { 
    position: relative;
    display: inline-block;
    width: 100px;
    height: 100px;
    border: 1px solid blue;
    margin: 10px;
    overflow: hidden;
}

<div id="left"></div>に変更されました<div class="left"></div>

デモ: http: //jsfiddle.net/4hzXe/6/

于 2012-05-19T18:21:57.477 に答える
1

フロートをクリアする必要があります。http://jsfiddle.net/4hzXe/2/

行を追加しました。clearfixoverflow: hidden;を使用できます。私はほとんどの場合clearfixソリューションを使用しています

#container { /* Preview content box */
    position: relative;
    width: 400px;
    border: solid 1px #333;
    padding: 20px;
    overflow: hidden;
}

また、をに変更しid="left"ましたclass="left"。idはページに1回だけ表示されます。

于 2012-05-19T17:51:31.593 に答える
1

フロートを封じ込めるテクニックが必要です。少なくとも2つの可能性:

  1. フロートとフロートを含む
  2. フロートをクリアで囲みます

あなたに最適な方法はどれですか?(私の推薦)

  1. クリアの仕事を引き受けることができる要素(たとえばhr)がある場合は、それを使用します。

  2. 親の幅を設定できる場合は、floatプロパティをwidthと組み合わせて使用​​します(これがあなたの場合です)。

  3. それ以外の場合はEasyclearingを使用してください

  4. 単純な状況ではオーバーフロープロパティを使用します

于 2012-05-19T17:53:16.563 に答える