考虑一下您所拥有的页面(完整来源):
这将呈现如下,并且正如预期的那样div“包含”图像:
但是,如果您使浏览器窗口变小,则会达到一个不足以容纳图像的点:图像的一部分将不可见,浏览器需要添加滚动条。到现在为止还挺好。但是,div大小仍然基于视口宽度,因此图像超出了div:
相反,我希望div总是“围绕”图像,如果包含盒子不能变得更窄则变得更宽。有趣的是,这正是Quirks模式中发生的事情,这里由IE8呈现:
如何通过添加CSS获得与使用IE8的Quirks完全相同的结果,但是在标准模式下?作为参考,以下是此示例的完整来源:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<style type="text/css">
/* Styling */
div { background-color: #999 }
body { font-family: sans-serif }
div { margin: .5em 1em; padding: .5em }
</style>
</head>
<body>
<div>
<img src="http://placekitten.com/g/400/100"/>
</div>
</body>
</html>
答案 0 :(得分:1)
试试这个:
<强> CSS 强>:
Old answer, Truncated
<强> HTML 强>:
Old answer, Truncated
经过多次修修补补,这就是我能想到的:
<强> CSS 强>:
.table {
display:table;
background-color: #999;
width:90%;
}
.row {
display:table-row;
}
.cell {
display:table-cell;
margin: .5em 1em;
padding: .5em
}
<强> HTML 强>:
<div class="table">
<div class="row">
<div class="cell">
<img src="http://placekitten.com/g/400/100"/>
</div>
</div>
</div>
答案 1 :(得分:0)
我会去div { display: table-cell; }
div { display: table; width: 100%; }
来结束,但它不喜欢有保证金。如果你使用两个块元素,那么你可以将{ display: table; width: 100%; }
放在外部元素和{ display: table-cell; }
以及内部元素上的边距,填充和背景上。
答案 2 :(得分:-1)
使用 display:inline-block 它也可以。