【发布时间】:2011-03-13 04:31:21
【问题描述】:
向所有 CSS 专家提出一个简单(可能有人会想!)的问题:我想在 IMG 周围收缩一个 DIV 紧贴。 IMG 是 600 x 800,我需要它小得多。所以我去{身高:100%; width: auto;} 并通过包装器 DIV 限制高度。但是,为了保持(我不知道的)AR,我无法修复 DIV 的宽度。我尝试将包装 DIV 设置为“display:inline-block”或“float:left”或“position:absolute”或...... - 不管:大多数浏览器都会将该 DIV 拉伸 800px 宽 - 完整的原始宽度-size IMG - 所以它看起来像这样:
[[IMG].......................]
奇怪的是,我可以在 DIV 中添加一些文本(只是为了测试),这些文本实际上会出现在缩放的 IMG 旁边:
[[IMG]你好世界........]
这里有人知道为什么 IMG 的原始尺寸很重要(对于确定宽度的尺寸,它不会影响高度)?我可以做些什么来缩小 DIV?
感谢收看。
编辑: 为了测试 Pär Wieslander 的想法,我编写了一个小测试平台,应该有助于阐明我的想法:
<style type="text/css">
html, body {
height: 100%;
}
#dialog {
background: green;
height: 50%;
position: relative;
}
#frame {
border: 2px solid black;
display: inline-block;
height: 100%;
position: absolute;
}
#img {
height: 100%;
width: auto;
}
</style>
<body>
<div id="dialog">
<div id="frame">
<img id='img' src='...' />
</div>
</div>
</body>
只需选择您选择的任何大 IMG。您应该会发现周围有一个莫名其妙的宽框架,并且图像已从高度方向挤压到绿色地毯上。
【问题讨论】:
-
提示:在寻找技术时,您可能希望使用“shrink wrap”作为搜索词;我已经看到这被用作您要解决的问题的通用名称。
-
到过那里,完成了,Matt,并拿到了电话簿 :-) 经过大量研究,Google 标记的大部分内容都很简单。我找不到任何关于为什么原始图像大小的概念应该超出缩放比例的提及。特别是,因为它只是一维,似乎并没有阻止其他元素洗牌。真的很奇怪。