2009-05-17 8 views
9

次のコードでは、divの高さと3 'xの高さを一致させるために' y 'のdivを使用します。注意すべきフローティング内部divを最高divと同じ高さにする方法

<div style="border: 0px solid red; margin: 0px 0px 5px; overflow: hidden;"> 
<div style="border: 1px solid rgb(129, 11, 0); margin: 0px; padding: 5px; background-color: rgb(30, 23, 22); width: 312px; float: left;"> 
    x<br/>x<br/>x 
</div> 
<div style="border: 1px solid rgb(129, 11, 0); margin: 0px; padding: 5px; width: 312px; background-color: rgb(30, 23, 22); float: right;"> 
    y 
</div> 

物事は、内側のdivが浮遊しているされています。

+0

おそらく[CSS等高線](http://matthewjamestaylor.com/blog/equal-height-columns-cross-browser-css-no-hacks)トリックを使うことができますか? –

答えて

3

することは、あなたはEqualHeightを使用することができ、それはあなたが私はあなたが与える別にリスト(と思う)、で見た解決策がありました

+0

私はこの種のものにJavascriptを使用するのは嫌ですが、プロジェクトはすでにJQueryを使用しているのでこれが適しています。 –

+1

これは、回答が選択されたときに機能した可能性がありますが、jQueryのそれ以降のバージョンではまったく動作しません。 a) '$ .browser.msie'はもう存在しません(' $ .support.boxModel'に変更)、b)最小高さを設定します。どのように起こるか、私は知らない)。それらの2つのものが固定されていても、正しく高さを設定していません。 – andrewtweber

5

3つのオプションがあります。

  1. 内側のdivを外側のdivと同じ高さにします。これはあまりにも難しくありません。
  2. 内側のdivを別のdivに入れて、高さや高さを100%とし、含めるdivと同じ高さにしますが、これは含まれているdivがおそらく高さそのdivまたはページを含むしかし、それはショットの価値があるかもしれません。または、最も簡単なもの
  3. テーブルを使用します。この問題は、テーブルでは些細なことです。 pure CSS deficienciesの良い例です。

2つのdivの「共有」高さに簡単な方法はありません。 100%の高さのようなトリックは、あなたが使用する必要があるCSS属性と使用している罫線の両方でブラウザ間で問題があります。ボーダーは通常、使用する高さに加えてあります。

一部の人はdisplay:table-cellと言っているかもしれませんが、そのサポートはIE上ではかなり制限されています。あなたはjQueryのスポットへの悪影響はない場合

+1

+1時々あなたはそれを噛んでテーブルを使用するだけです。 –

+0

テーブルが+1されていれば、開発時間が短縮されます。 –

+0

-1テーブル用 - これは、純粋に視覚的なハッキングのためにセマンティックマークアップを使用しているのでアクセスできません。スクリーンリーダーのユーザーは非常に動揺します。 –

12

たい何をすべき2つの内側の列は巨大な底部の詰め物ですが、負の余白と同じ大きな値です。これは、カラムが32000px以上でない限り動作しますが、これはまれです。次のようなものがあります。

.col { 
    float: left; 
    padding-bottom: 32000px; 
    margin-bottom: -32000px; 
} 

...ここで、「col」は任意の列のクラス名です。個別の列をスタイルすることもできますが、別のクラスを使用することもできます。

<div class="col xxx">x<br />x<br />x</div> 
<div class="col yyy">y</div> 

別のオプションは、など、あなたの国境、このアプローチは、明らかにそれは少し難しく列(幅、色が)一度設定変更のだ意味を含め、外側のdivに背景画像を使用することです。

+1

コンテナに 'overflow:hidden'を設定した後、これは私のために働きました(IE 7-9とFF)。 – mlhDev

+3

非常にいいですが、かなりありません!内側のdivに境界線や丸みを帯びたコーナーを適用すると、下側が切り取られます。 – emrys57

関連する問題