親のdiv
の外でオーバーフローしないように明示的に宣言された幅を持つテーブルを停止しようとしています。私はmax-width
を使用して何らかの方法でこれを行うことができると思いますが、これを動作させることができないようです。
次のコード(非常に小さなウィンドウ)がこれを引き起こします。
<style type="text/css">
#middlecol {
width: 45%;
border-right:2px solid red;
}
#middlecol table {
max-width:100% !important;
}
</style>
<div id="middlecol">
<center>
<table width="400" cellpadding="3" cellspacing="0" border="0" align="center">
<tr>
<td bgcolor="#DDFFFF" align="center" colspan="2">
<strong>Notification!</strong>
</td>
<tr>
<td width="50">
<img src="http://www.example.com/img.png" width="50" height="50" alt="" border="0">
</td>
<td>
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
</td>
</tr>
</table>
</center>
</div>
赤い線はdiv
の右側の境界線であり、ブラウザウィンドウを小さくすると、テーブルがそれに収まらないことがわかります。
以下を実行して方向を変えます。
<style type="text/css">
#middlecol {
border-right: 2px solid red;
width: 45%;
}
#middlecol table {
max-width: 400px;
width: 100% !important;
}
</style>
また、私はあなたにアドバイスします:
center
タグを使用しない(非推奨)width
、bgcolor
属性は使用せず、CSSで設定します(width
およびbackground-color
)(レンダリングされたテーブルを制御できると仮定)
table-layout:fixed
を使用して、テーブルが親divを超えて拡大するのを防ぐことができます。
以下のCSSは、テーブルをそれを囲むdivの幅まで拡張します。
table
{
table-layout:fixed;
width:100%;
}
このトリックを見つけました こちら 。
大まかな回避策は、display: table
を含むdivに設定することです。
上記のすべてのソリューションを試してみたが、うまくいきませんでした。上下に3つのテーブルがあります。最後のものがあふれました。私はそれを使用して修正しました:
/* Grid Definition */
table {
Word-break: break-Word;
}
EdgeモードのIE11の場合、これをWord-break:break-all
に設定する必要があります
最初はJames Lawrukの方法を使用しました。ただし、これにより、td
のすべての幅が変更されました。
私にとっての解決策は、列でwhite-space: normal
を使用することでした(white-space: nowrap
に設定されました)。この方法では、テキストは常に壊れます。 Word-wrap: break-Word
を使用すると、Wordの途中であっても、必要なときにすべてが破損することが保証されます。
CSSは次のようになります。
td, th {
white-space: normal; /* Only needed when it's set differntly somewhere else */
Word-wrap: break-Word;
}
Word-wrap: break-Word
はテーブル内の単語を読みにくくする可能性があるため、これは必ずしも望ましい解決策とは限りません。ただし、テーブルの幅は適切に保たれます。
上記のほとんどすべてを試しましたが、うまくいきませんでした...
Word-break: break-all;
これは、親div(テーブルのコンテナ)に追加されます。