【发布时间】:2011-09-02 03:05:58
【问题描述】:
我想在网格中显示一组图像缩略图。图片有多种尺寸,但我想将缩略图限制为特定尺寸(比如200px 宽和150px 高)。
我想找到一些神奇的 HTML 标记和 CSS 规则
- 允许图像包含在普通
<img>元素中 - 确保缩略图适合其 200x150 像素框,保持其比例,并在溢出的任何维度居中。
- 不需要 JavaScript 或每个图像的实际尺寸的具体知识
我不确定这是否可能。我可以用以下标记对我想要的东西做出一个(坏的)近似:
<div class="thumb">
<img src="360x450.jpeg">
</div>
和 CSS:
.thumb {
width: 200px;
height: 150px;
overflow: hidden;
}
.thumb img {
min-width: 200px;
min-height: 150px;
width: 200px;
}
这种尝试以多种方式失败:
纵向的图像尺寸会正确,但会溢出容器底部,导致垂直偏离中心的裁剪。
由于硬编码的
width和min-height规则,宽和短的图像会在水平维度上失真。但是如果没有那个硬编码的
width,大于最小高度和宽度的图像根本不会调整大小。
如果它有帮助的话,我已经举了一个例子来说明我想要做什么,在这里:
我知道我可以通过完全省略 <img> 元素来解决这个问题,而是将缩略图作为包含元素的居中背景图像拉入,但是,如果可能的话,我想保留 @987654332 @页面中的元素。
感谢您提供的任何帮助或指点!
编辑:我想我应该注意,理想的解决方案可以在 IE 6+ 和现代浏览器中运行,但任何可以在 IE 9+ 和其他现代浏览器(最近的 WebKit、Gecko、等)将很高兴地被接受。
【问题讨论】:
-
按照您指定的规则,我认为这是不可能的。您需要 javascript 来查询加载图像的大小以执行计算,否则您将在 50% 的时间里破坏纵横比。实际上,我使用缓存 PHP 服务来做到这一点……虽然从技术上讲不会违反您的规则,但可能违背了它们的精神。 :)
-
是的,这就是我害怕的。我想我还是会问,以防万一。
-
你不能只使用生成的缩略图吗?
-
@Midas 我已经在使用生成的缩略图来保留原始图像的纵横比并且不进行裁剪。我希望避免在服务器上裁剪它们,但看起来我必须这样做。
标签: html css thumbnails