2012-02-20 4 views
1

divのコンテンツに問題があります。たとえば、div内にテーブルを置き、そのdivの幅を(width:200px !important)に設定すると、そのdivを上書きします。だから、どのようにそのdiv内のすべてのコンテンツを保持することは可能ですか?divの幅が機能していませんか?

フィドル例: http://jsfiddle.net/ebG9N/45/

+0

divの幅はテーブルの幅より小さくすることはできません。テーブルを200pxにリサイズしますか? –

+0

うわー、何が混乱していますか:/ – elclanrs

+0

ところで、 '!important'部分はすべて、指定されたdivのどこかで定義された' width'プロパティをオーバーライドします。それは 'width'にそれ以上のパワーを与えません。 –

答えて

2

あなたはそのためwhite-space: nowrap;にヘッダを設定し、ブラウザは、ヘッダを破ることができないので、テーブルの幅は、コンテナのdivよりも大きくなります。

オーバーフローする部分を切り取るにはoverflow: hidden;、スクロールバーを作成するにはoverflow: auto;を設定できますが、スクロールバーがないと正しく表示されません。

1

divのcssにoverflow:auto;を使用してみてください。

0

あなたが望む任意のサイズのdiv内に何らかの形で収まるとは予想できません。

div.divano{ 
    width:200px !important; 
    border:2px solid yellow; 
    background:#eaeaea; 
    height:200px; 
    overflow: scroll; 
} 

をあなたはまたoveflow: hiddenを使用することができるが、それだけでは見えない部分を隠します:あなたはどうすることができますすることは、使用して、少なくともブラウザが(overflow: scroll)をスクロールできるようにする、です。また、overflow: scrollは、常にスクロールバーを表示します(クリッピングありまたはクリッピングなし)。 overflow: autoを使用して、クリッピングが発生した場合にのみコンテンツをスクロールするように指定できます。

+0

解決策のオーバーフローではありません:自動または非表示またはその他..... – mcmwhfy

2

2つの解決策があります。

i)厳密にテーブルWITHIN divを含める場合は、overflow:auto;が最適です。

ii)あなたが気が変わり、テーブルの幅にdivをWRAPしたい場合。 display:table;は行く方法です。

通常、明示的に知られているより幅の狭い要素内に幅の広い要素を含めることは悪い考えです。

関連する問題