【发布时间】:2012-09-21 20:03:05
【问题描述】:
我想在浏览器中显示一张图片:
- 如果图像小于浏览器视口,则图像居中 水平和垂直。
- 如果图像大于视口,则缩小图像以填充 在不调整纵横比的情况下尽可能多的视口 图片。同样,图像水平和垂直居中。
我不想使用 JavaScript;什么是最好的/最语义化的 HTML 和 CSS?
更新有人要求我澄清语义:图像就是内容; HTML 中的唯一内容。
解决方案
@GionaF 的想法让我得到了一个快乐(并且非常简单)的解决方案:
HTML
<!DOCTYPE html>
<head>
<title></title>
<LINK href="test2.css" rel="stylesheet" type="text/css">
</head>
<body>
<div>
<img src="photo.jpg" alt="photo" />
</div>
</body>
CSS
img {
max-width:100%;
max-height:100%;
position:absolute;
top:0; left:0; right:0; bottom:0;
margin:auto;
}
【问题讨论】:
-
没有 JavaScript?如果您不知道图像的高度和/或宽度,则不可能
-
CSS 不能处理
if条件。它完全按照您的指示去做。 -
这是可能的。只需要 IE8 及更低版本的解决方法。