HTML / CSS - 移动设备在开始时缩放

时间:2011-12-19 14:26:01

标签: php html css mobile

存在所有移动设备在开始时缩放50%的问题。这是iPad以外的所有设备。试图做一个PHP检查,如果除了iPad之外的其他所有,但是当你从横向移动时,可以扩展50% - >肖像 - >那么它将再次扩大50%。

这是我当前的元标记:

<meta name="HandheldFriendly" content="true" />
<meta name="viewport" content="width=640, height=700, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0" />

我的HTML在px中不使用任何宽度100%。总体而言,内容不会延伸640宽度和700高度。

有没有人知道如何才能避免这个问题?

修改

得出的结论是@hakre对像素的比例是正确的。我的修复是将每个宽度设置为%而不是px。这样它无论如何都会自动调整大小。需要注意的一点是我删除了比例。原因是它似乎搞砸了某些设备上的布局。再次感谢@hakre

2 个答案:

答案 0 :(得分:4)

我只在Android的默认浏览器和Opera Mobile上测试了这个,但它似乎运行良好。遗憾的是,仍无法在Android浏览器上禁用缩放...

<meta name="viewport" content="width=device-width, initial-scale=1.0"/> 
<meta name="viewport" content="target-densitydpi=device-dpi" /> 
<meta name="HandheldFriendly" content="true"/>

答案 1 :(得分:2)

在CSS中,pxabsolute length unit。当输出环境已知时,它们主要有用。

  
    

对于CSS设备,这些尺寸要么锚定(i)将物理单位[in,cm,mm,pt,pc]与其物理测量相关联,要么(ii)关联像素单元[ px]到参考像素 。 [我的补充和亮点]

  

如果参考像素是设备显示器物理像素的一半,则700px的CSS值将在显示器上转换为350px - 或者在您的问题中为50%。

所以你在这里遇到的是完全正确的,在你选择px单位的意义上CSS是正确的,你只是错过了CSS中的px与显示器上的像素不同。因为它不是,但你想要它,看起来你选择了错误的单位。

再次:绝对长度单位在输出环境已知时主要有用。

也许您找到一种方法告诉浏览器修改参考像素?这将解决您的问题。或者现在,当你知道会发生什么时,检测设备并相应地改变长度。

作为替代方案,您可以用相对的(em,ex)替换绝对长度。由于它们是相对的,您只需要更改它们相对的元素的长度,即可更改整个页面。

这通常通过使用<html>和/或<body>元素的绝对长度以及其他所有元素的相对长度来完成。

这种方法可以帮助您解决问题。