次のコードについて考えてみます。
HTML:
<div>
<img src="http://placehold.it/600x150" />
</div>
CSS:
div { max-width: 200px }
img { max-width: 100% }
ネイティブサイズに関係なく、画像の幅が200pxを超えることはありません。ここまでは順調ですね。
これがフィドルです:http://jsfiddle.net/PeAAb/
ただし、親要素が次のようにdisplay
設定されている場合table
:
div { max-width: 200px; display: table }
画像は魔法のように本来の幅に拡大し、table
それとともに拡大します。
これがフィドルです:http://jsfiddle.net/PeAAb/1/
同じことが実際のテーブルでも起こります:http://jsfiddle.net/PeAAb/2/
質問:これは予想される動作ですか?もしそうなら、この問題を回避するために何ができるでしょうか?
正しく画像をボックスに押し戻す代わりに、親のwidth
(パーセンテージベースの幅でさえ)設定することは解決策ではありません。max-width
親は流動的である必要があります(サイトのメイン構造にこれを使用しているため、ソースのメインコンテンツの後にサイドバーのHTMLを表示できますが、サイドバーの幅は固定されています)。
また、ここで設定table-layout
してfixed
も効果がないようです。