# 前言 最近在公司写一个混合 app 项目,页面基本全部都是用 H5 完成,嵌入到原生 webview 下。发现一个问题,在 iPhone 6 下 苹果手机的状态栏会挡住页面,导致页面下移,样式错乱,最后网上查找了些解决办法,加了一条 meta 标签解决了问题。今天特来总结下常用的移动端开发需要注意的meta标签及一些小技巧。 1. viewport `` 这个是移动端页面开发必备的标签,用来调整布局视口同视觉视口一致,禁止页面缩放等。 2. `apple-mobile-web-app-capable` `apple-mobile-web-app-capable` 是设置 Web 应用是否以全屏模式运行。 语法: ```html ``` 说明: 如果 content 设置为yes,Web应用会以全屏模式运行,反之,则不会。content的默认值是no,表示正常显示。如果选择全屏模式运行,则会删除默认的苹果工具栏和菜单栏。 我开篇遇到的问题就是通过设置该 meta 标签解决的。 3. 设置顶部状态栏的颜色 `` 说明: 这个标签起作用的前提是 必须事先开启了全屏模式运行 webapp,即 第二条的 meta 标签必须同步指定,否则这个标签不起作用。 如果content设置为default,则状态栏正常显示。如果设置为blank,则状态栏会有一个黑色的背景。如果设置为blank-translucent,则状态栏显示为黑色半透明。如果设置为default或blank,则页面显示在状态栏的下方,即状态栏占据上方部分,页面占据下方部分,二者没有遮挡对方或被遮挡。如果设置为blank-translucent,则页面会充满屏幕,其中页面顶部会被状态栏遮盖住(会覆盖页面20px高度,而iphone4和itouch4的Retina屏幕为40px)。默认值是default。 4. webapp添加到主屏后的标题(iOS 6 新增) `` 5. 设置缓存 `` 手机页面通常在第一次加载后会进行缓存,然后每次刷新会使用缓存而不是去重新向服务器发送请求。如果不希望使用缓存可以设置no-cache。 6. format-detection format-detection 启动或禁用自动识别页面中的电话号码。 语法: ```html ``` 说明: 默认情况下,设备会自动识别任何可能是电话号码的字符串。设置telephone=no可以禁用这项功能。 7. html5调用安卓或者ios的拨号功能 html5提供了自动调用拨号的标签,只要在a标签的href中添加tel:就可以了。 拨打手机直接如下: ```html 点击拨打15677776767 ``` PS:如果遇到这种情况失效,可以在页面头部 添加 上一条meta 标签,content 设置为 yes。 8. iphone及ipad下输入框默认出现内阴影。 ```css Element{ -webkit-appearance: none; } ``` 9. 移动端滑动页面绝对定位元素出现抖动 这个问题自己网上找了一些解决办法,仅供参考。 * 给body设置高度100% ```css body,html{ widht:100%; height:100%; } ``` 如果是项目中已经做好的页面,有其他特效,直接设置这个属性,可能对页面的其他功能造成影响。 如果使用此法,本地调试效果不好,建议不要使用。 * 给固定定位的元素添加transform属性 `transform:translateZ(0);` 或者 `transform:translate3d(0,0,0);` * 外层嵌套一个盒子 多加一层盒子,外层fixed固定定位,内层的设置绝对定位absolute; ```html