移动端web开发常见meta标签的使用

2015-12-18

问题描述

前几天做移动端的web开发,遇到一个令人费解问题,同样的页面,在pc端、安卓端测试没有问题,在ios设备上用系统自带的safari浏览器测试同样没有问题,但是在ios设备上用微信或者qq等app内置的浏览器打开就会发生样式错乱。

一开始以为是app内置的webkit的兼容问题,各种改代码修改css样式,但是问题依旧。后来仔细观察发现其中有个元素是数字,原本样式是灰色,样式错乱的时候莫名其妙就变成了蓝色,这时才恍然大悟,原始ios设备把数字识别成了电话号码,还自动改变了其样式。

解决方案

在页面的head添加下面的meta标签即可

<meta content="telephone=no" name="format-detection" />

常见的移动端的meta

下面列举了一些常见的移动端的meta标签,有兴趣的可以看下。

<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport">     
<meta content="yes" name="apple-mobile-web-app-capable">     
<meta content="black" name="apple-mobile-web-app-status-bar-style">     
<meta content="telephone=no" name="format-detection">
  1. 第一个meta标签表示:强制让文档的宽度与设备的宽度保持1:1,并且文档最大的宽度比例是1.0,且不允许用户点击屏幕放大浏览

    • width - viewport的宽度 height - viewport的高度
    • initial-scale - 初始的缩放比例
    • minimum-scale - 允许用户缩放到的最小比例
    • maximum-scale - 允许用户缩放到的最大比例
    • user-scalable - 用户是否可以手动缩放
  2. 第二个meta标签是iphone设备中的safari私有meta标签,它表示:允许全屏模式浏览;

  3. 第三个meta标签也是iphone的私有标签,它指定的iphone中safari顶端的状态条的样式;在web app应用下状态条(屏幕顶部条)的颜色; 默认值为default(白色),可以定为black(黑色)和black-translucent(灰色半透明)。 注意:若值为“black-translucent”将会占据页面px位置,浮在页面上方(会覆盖页面20px高度–iphone4和itouch4的Retina屏幕为40px)。

  4. 第四个meta标签表示:告诉设备忽略将页面中的数字识别为电话号码。(解决本文开头提到的样式错乱问题)


Tags: css ios meta