我正在创建一个移动网页,基本上是一个大型表单,带有多个文本输入。
但是(至少在我的Android手机上),每次我单击某些输入时,整个页面都会在此处放大,从而遮盖了页面的其余部分。是否有一些HTML或CSS命令来禁用这种在网页上缩放的功能?
我正在创建一个移动网页,基本上是一个大型表单,带有多个文本输入。
但是(至少在我的Android手机上),每次我单击某些输入时,整个页面都会在此处放大,从而遮盖了页面的其余部分。是否有一些HTML或CSS命令来禁用这种在网页上缩放的功能?
Answers:
这应该是您需要的一切
<meta
name='viewport'
content='width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0'
/>
width=device-width
已经在第一个meta标签中了?
对于参加晚会的人来说,kgutteridge的答案对我不起作用,Benny Neugebauer的答案包括target-densitydpi(已弃用的功能)。
但是,这确实对我有用:
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
这里有很多方法-尽管位置通常是为了可访问性而缩放时不应该限制用户,但是可能会发生一些需要的地方:
以设备的宽度渲染页面,不缩放:
<meta name="viewport" content="width=device-width, initial-scale=1.0">
防止缩放-并阻止用户缩放:
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
删除所有缩放,所有缩放
<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=device-dpi" />
您可以使用:
<head>
<meta name="viewport" content="target-densitydpi=device-dpi, initial-scale=1.0, user-scalable=no" />
...
</head>
但是请注意,在Android 4.4中,不再支持target-densitydpi属性。因此,对于Android 4.4及更高版本,建议以下操作为最佳做法:
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no" />
由于仍然没有解决最初问题的方法,因此这是我的纯CSS 2美分。
移动浏览器(大多数)要求输入中的字体大小为16px。所以
input[type="text"],
input[type="number"],
input[type="email"],
input[type="tel"],
input[type="password"] {
font-size: 16px;
}
解决了这个问题。因此,您无需禁用站点的缩放和宽松的辅助功能。
如果您的基本字体大小不是16像素,或者在手机上不是16像素,则可以使用媒体查询。
@media screen and (max-width: 767px) {
input[type="text"],
input[type="number"],
input[type="email"],
input[type="tel"],
input[type="password"] {
font-size: 16px;
}
}
font-size: 1rem
整个页面进行设置,因此字体可以很好地缩放,同时避免了“缩放时聚焦”问题。
请尝试添加此元标记和样式
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" name="viewport"/>
<style>
body{
touch-action: manipulation;
}
</style>
touch-action: manipulation;
很好。touch-action: none;
没有做任何事情
似乎仅将meta标签添加到index.html并不会阻止页面缩放。添加以下样式将起到神奇作用。
:root {
touch-action: pan-x pan-y;
height: 100%
}
编辑:演示:https : //no-mobile-zoom.stackblitz.io
Web应用程序的可能解决方案:虽然无法再在iOS Safari中禁用缩放功能,但从主屏幕快捷方式打开网站时将禁用缩放功能。
添加以下元标记以将您的应用声明为“具有Web应用功能”:
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" name="viewport"/>
<meta name='apple-mobile-web-app-capable' content='yes' />
但是,仅当您的应用程序自持时才使用此功能,因为前进/后退按钮和URL栏以及共享选项被禁用。(尽管您仍然可以左右滑动),但是这种方法可以启用ux之类的应用。全屏浏览器仅在从主屏幕加载网站时启动。我还只有在我的根文件夹中包含apple-touch-icon-180x180.png后才能使用它。
作为奖励,您可能还希望包括以下变体:
<meta name='apple-mobile-web-app-status-bar-style' content='black-translucent'/>