【发布时间】:2014-01-01 10:19:06
【问题描述】:
拥有简单的 HTML 代码
<table>
<tbody>
<tr>
<td>
<img ... >
</td>
</tr>
</tbody>
</table>
和 CSS 样式
* {
border:none;
margin:0;
padding:0
}
html {
position:relative;
min-width:342px;
height:100%;
min-height:319px
}
table {
position:absolute;
margin-left:-171px;
margin-top:-159px;
top:50%;
left:50%
}
img, table {
width:342px;
height:319px;
}
所有都可以通过 this fiddle 访问(本例中只有红框图片),
固定大小的图片水平和垂直居中。这很简单,但是在具有高屏幕分辨率的手机上看起来不太好,当屏幕大部分看起来是白色并且屏幕中间有东西时,如果不放大用户就无法识别。
使用<meta name="viewport" content="width=device-width"> 并没有多大帮助,好像手机只有4英寸宽上千像素,图像仍然只有大约英寸宽。
我阅读了很多关于屏幕分辨率问题的信息,但没有找到任何解决方案,因为大多数浏览器都认为 1 英寸是 96 像素,因此使用 in、pt 或 pc 毫无用处。
如何强制浏览器在 html 页面内制作图像,比如说 3 英寸宽?
【问题讨论】:
-
首先,除非是图标/拇指图片,否则您不应该在移动设备上使用静态图片尺寸。其次,你为什么不直接提供你想要的大小的图片呢?
-
大多数浏览器不假定 1英寸是96像素,这是在规范中定义的:w3.org/TR/css3-values/#absolute-lengths
-
@JamesDonnelly - 我应该使用不同的措辞,但无论如何......它是每准英寸 96px (jsfiddle.net/gNqRF),而不是真正的英寸,所以它没用!
-
只需使用
3in而不是1in:jsfiddle.net/JamesD/gNqRF/1。 96 * 3 = 288。 -
我已更改答案以提供解决方法。有机会就去看看。
标签: javascript jquery html css browser