2011-07-20 9 views
4

2011年には2列のレイアウトで困惑しました。私は恥ずかしいと思います。 ;)CSSカラム:流体と幅の両方が柔軟なもの

課題は、この思い付くことです:

+--------------------------------------++----------------+ 
| This is a header with potentially || button div  | 
|          ||    | 
| long text that will wrap most likely |+----------------+ 
|          | 
| but can't go under the button to the | 
|          | 
| right        | 
+--------------------------------------+ 

ないあなたが右のdiv要素のそれと等しくなるように、左の列のマージンを設定し、一般的な2列のレイアウトと大したこと。しかし、この特定の例の変数は、いつでも右のdivがどれほど広がっているのか分かりません。(変化するテキストの行に基づいています)

要約すると、 :

  • は、両方の列が右の列は、それが左に
  • 列が含まれているテキストと同じ幅である
  • が残ったスペースと同じ幅である全幅に取る2列のレイアウト

私はこれを前もって構築しなければならなかったようですが、私は困惑しています。

私はCSS、JS、またはjQueryソリューションを利用できます。

EDIT:

実は、私はすでにかなり簡単jQueryのソリューションを見ることができます。私は右のdivのレンダリングされた幅をつかむことができますし、親コンテナの幅からその幅を減算し、左の列の幅を同じに設定するいくつかの計算を行います。クリーンなCSSオプションがないと、それは私の代替計画になるでしょう。

+0

列の高さは同じでなければなりませんか?どのブラウザをサポートする必要がありますか? – thirtydot

+0

いいえ...同じ高さの必要はありません。ブラウザのサポート...今のところ、Webkit(有効なブラウザ)を言いましょう。 –

答えて

9

を参照してください:http://jsfiddle.net/vpADP/

それはIE7 +およびすべての最新ブラウザで動作します。

HTML:

<div id="buttonDiv">button div as wide as text</div> 
<div id="leftDiv"> 
    left div 
</div> 

CSS:

#leftDiv { 
    overflow: hidden 
} 
#buttonDiv { 
    float: right 
} 

overflow: hiddenread this for detailsの典型的な使用ではありません。

+0

ブリリアント!私はその技術について全く知らなかった。それは素晴らしいことです。ちょうどニッピックピックはマークアップの内容の流れを逆転させるということですが、それは私がこの特定の例で幸せに生きることができる副作用です。 –

+0

ええ、それは欠点です。この手法では解決できません。 [This](http://stackoverflow.com/questions/6483603/2-div-columns-fixed-and-liquid-fixed-one-must-be-removable-liquid-one-must-be)の種類です。あなたが試してみると狂ったことが起こります:) – thirtydot

+0

私はこれもやっていますが、要件が逆転しています(左の列が優先され、右の列がスクラップを取得します)。私はフィドルを弄ってみましたが、うまく動作しません。 – RTF

関連する問題