【发布时间】:2015-02-03 00:41:09
【问题描述】:
我正在尝试创建一个位于页面中心的图片库,并且最大高度/宽度为浏览器窗口的 85%。以下是目标:
- 绝对没有 Javascript(不,我们不想要第 3 方解决方案)
- 图像应始终与包装器大小完全相同(填充/边框/边距除外)
- 图片不得超过包装纸上设置的 85% 最大宽度/高度
问题是当我有一个非常高(或宽)的图像时,img 将忽略父母的 max-height 并在其包装之外运行。
- 溢出似乎不起作用(我们不需要滚动条)。
- 将 img 高度/宽度设置为 100% 似乎不起作用,我假设这是因为它的父级是绝对定位的?
- 无法设置包装 div 的高度/宽度(仅最大值),因为如果图像较小,则会出现一堆空白。同样,我们希望在没有 JavaScript 的情况下做到这一点。
对内联样式表示抱歉。
<div id='wrap' style='position: absolute; top: XXXpx; left: XXXpx; max-width: 85%; max-height: 85%'>
<img src='mypic.jpg'>
<div id='leftArrow' style='position: absolute...'></div>
<div id='rightArrow' style='position: absolute...'></div>
<div id='thumbnails' style='position: absolute...'></div>
</div>
【问题讨论】:
-
Crucial:您需要什么样的浏览器支持?
-
如果我在这里错了,请更正,但我假设 background-size: contains 会要求您在包装器 div 上设置高度/宽度。由于图像会根据客户端上传的内容更改尺寸,因此您将在宽度/高度中较短的位置留有空白。
-
我们希望一直支持到 IE8,但 IE9+ 可能就足够了。
-
IE8 支持几乎必然需要一些 JavaScript,如果只是为较新的浏览器功能提供 shim。不过,IE9 确实支持
transform属性。