【发布时间】:2012-08-06 02:31:48
【问题描述】:
考虑以下代码:
HTML:
<div>
<img src="http://placehold.it/600x150" />
</div>
CSS:
div { max-width: 200px }
img { max-width: 100% }
无论其原始尺寸如何,图像的宽度都不会超过 200 像素。到目前为止一切顺利。
这是小提琴: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 可以正确地将图像压缩回其框中,但这不是解决方案。我需要父母是流动的(我将它用于网站的主要结构,这样我就可以拥有the sidebar HTML appear after the main content in the source, but with the sidebar being fixed width)。
另外,setting table-layout to fixed 这里似乎有no effect。
【问题讨论】:
-
我正在尝试在 SharePoint 2010 中构建一些响应式的东西,它有一个非常讨厌的习惯,就是将嵌套表包裹在事物周围。如果您知道对此的解决方案(可以追溯到 IE8),我很想听听。 @pKs 的解决方案 (display:block;) 在 IE8/9 中失败:(
标签: css responsive-design css-tables fluid-layout