2011-02-07 8 views
3

を壊すことなく、流体とすることができるようにする方法は、私は次のようにありますHTML - 表を考えると、1列レイアウト

<div style="width:100%;"> 

<table> 
    <tr> 
    <td style="width:30px;">hi</td> 
    <td style="width:40px;">hi</td> 

    <td id="lotoftext" style="width:auto;white-space:nowrap;overflow:hidden;">LOTS Of text in here, LOTS</td> 

    <td style="width:25px;">hi</td> 
    </tr> 
</table> 

</div> 

私は起こるしたい何この表はの可能性を100%に拡大するとのためであります外側DIV。問題は、ID = 'lotoftext'の内部にたくさんのテキストがあるテーブルが、テーブルを外側のdivより大きくしてページを分割してしまうことです。

アイデア?ありがとう

+0

次の2つのことを試してください:表にwidth = "100%"を追加し、cssではなくwidth = "30px"を使用してtd幅を設定します。そして、これはすべてのブラウザで起こっていますか? – Sean

答えて

0

あなたはmax-widthを使用できますか?その特定のTDの中にdivを入れて、最大幅を与える必要があるかもしれません。

+0

ページが流動的であるという問題があります。だから私は最大の幅を知らない。私はすべてのCSSオプションを使い果たすまで、私はむしろやりたいJSを使わなければならないでしょう。 – AnApprentice

+0

%としての最大幅はどうですか? – tobyodavies

+0

良い質問ですが、問題は、他のTDのは、幅を設定されているので、その能力を破る% – AnApprentice

0

表形式のデータでない限り、DIVとCSSを使用して構築する必要があります。あなたはこのように頭痛の少ないものであなたが望むものを達成することができるはずです。

+0

を使用する方法ですか? Gmailでは、このようなニーズに合わせてテーブルを使用しています。 – AnApprentice

+0

何のためにそれを使用しますか?例を挙げる。 – Dan

+1

「テーブルを使用しないでください」というのは、OPの問題に対する答えではないため、下落しました。 divとCSSを使用することを提案する場合は、その方法を表示する(またはその方法を教えるウェブページを見つける)時間を取ってください。 – Sean

-1

説明しているシナリオは、テーブルには適していません。表は、表形式のデータを表示する場合にのみ使用してください。構造体を構築しCSSでスタイルを設定するには、他の種類のhtml要素を使用する必要があります。

+0

"テーブルを使わない" OPsの問題への答え。 divとCSSを使用することを提案する場合は、その方法を表示する(またはその方法を教えるウェブページを見つける)時間を取ってください。 – Sean

+0

ショーンは、彼が実際にやろうとしていることに応じて、彼がそれをどのように扱うべきかの詳細を10以上の異なる方法にすることができます。彼が必要とするものの詳細を知らなければ、私はhtmlを提供することができましたが、それはテーブルを使うほど悪くないかもしれません。時には "テーブルでこれをどうやってやるの?"という答えは "テーブルでこれをやってはいけない、divを使う" –

0

AnApprentice、DIVのとCSS(テーブルを使用してへの代替オプション)を使用して、このレイアウトを達成するためにあなたは、このような状況に近づくことができます:

CSS:

#body_container{ 
    max-width:700px; 
} 

.data-container{ 
    background-color:#ccc; 
    zoom:1; 
} 

.data-content_a{ 
    width:30px; 
    float:left; 
    background-color:#3FF; 
} 

.data-content_b{ 
    width:40px; 
    float:left; 
    background-color:#CF0; 
} 

.data-content_c{ 
    width:25px; 
    float:right; 
    background-color:#9FF; 
} 

.data-content_lotsoftext{ 
    float:left; 
    background-color:#FCF; 
    margin:-20px 26px 0 71px; 
    clear:left; 
    display:inline; 
} 

.clear{ 
    clear:both; 
    padding:0; 
    margin:0; 
} 

HTML:

<div id="body_container"> 
    <div class="data-container"> 
     <div class="data-content_c">4</div> 
     <div class="data-content_a">1</div> 
     <div class="data-content_b">2</div> 
     <div class="data-content_lotsoftext">lots of text goes here!</div> 
    <div class="clear"></div> 
    </div> 
</div> 

#body_container(またはアウトターコンテナ)は、任意の幅に設定できます。 .data-content_lotsoftextの左余白は、.data-content_a.data-content_b(安全側には70px + 1px)の幅を組み合わせたもので、.data-content_lotsoftextの右余白はdata-content_c(安全側にある25px + 1px)の幅です。

.data-content_lotsoftextに幅を割り当てないと、自動的に全幅に伸びます。 display:inlineは、それがよりよくie6に座るのを助けます。 Firefoxで動作確認済み

は、クローム、IE8、IE7とIE6(IE6と7は少しグリッチある - 誰もがそれはIE6と7で完璧に動作させるためにCSSを絞り込む助けることができれば、大声で叫ぶしてください!)

enter image description here

希望します。 Dan

関連する問題