我对这个问题真的很无奈,请指教。
我有想要针对移动设备优化的网页(使用 CSS 媒体查询)。在<head>
,我有这个:
<meta name="HandheldFriendly" content="True">
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=yes" />
但是在测试媒体查询时会出现一些问题:
1)在我的华为Ideos X1上测试,显示宽度为240px。所以,CSS 应该是这样的:
@media (max-width: 240px) {
body: { background-color: red; }
}
但它什么也不做。
2)“哪里可能有问题?” 我说。因此,我提供了用于显示屏幕分辨率的 javascript <body>
:
<div>
<script>
document.write(screen.width + 'x' + screen.height);
</script>
</div>
但它显示“320x425”。这很奇怪,我的手机屏幕宽度是 240 像素,而不是 320。
3) 没关系。我阅读了有关自动缩放内容的移动浏览器,以便在一个屏幕上显示更多内容。也许我的移动浏览器缩小了,现在显示区域宽度为 320 像素。所以,我在<body>
. 一个宽度为 240 像素,第二个宽度为 320 像素。期望两者都在没有滚动条的移动浏览器中呈现,爬到屏幕上:
<hr style="width: 240px;">
<hr style="width: 320px;">
令我惊讶的是,第一行(240px)爬上了屏幕,第二行(320px)走出了屏幕(80px)并出现了水平滚动条。
所以,长话短说: Javascript 认为有 320px 宽的屏幕可用。CSS 认为有 320px 宽的屏幕可用。但只有 240px 可以放入屏幕。类似的行为显示在我朋友的 iPhone 上。
请指教我,我的赌注在哪里?谢谢你。
PS 测试源代码可以在这里找到:http: //pastebin.com/ULNm4RfW