移动端知识点总结

 

一,meta标签
<meta name="viewport" content="width=device-width, target-densitydpi=160dpi, initial-scale=1.0, user-scalable=no"> 定义这个东西,让他屏幕大小适应手机端
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
<meta name="apple-mobile-web-app-capable" content="yes"><!-- 删除苹果默认的工具栏和菜单栏 -->
<meta name="apple-mobile-web-app-status-bar-style" content="black"><!-- 设置苹果工具栏颜色 -->
<meta name="format-detection" content="telphone=no, email=no"><!-- 忽略页面中的数字识别为电话,忽略email识别 -->
<!-- 启用360浏览器的极速模式(webkit) -->
<meta name="renderer" content="webkit">
<!-- 避免IE使用兼容模式 -->
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<!-- 针对手持设备优化,主要是针对一些老的不识别viewport的浏览器,比如黑莓 -->
<meta name="HandheldFriendly" content="true">
<!-- 微软的老式浏览器 -->
<meta name="MobileOptimized" content="320">
<!-- uc强制竖屏 -->
<meta name="screen-orientation" content="portrait">
<!-- QQ强制竖屏 -->
<meta name="x5-orientation" content="portrait">
<!-- UC强制全屏 -->
<meta name="full-screen" content="yes">
<!-- QQ强制全屏 -->
<meta name="x5-fullscreen" content="true">
<!-- UC应用模式 -->
<meta name="browsermode" content="application">
<!-- QQ应用模式 -->
<meta name="x5-page-mode" content="app">
<!-- windows phone 点击无高光 -->
<meta name="msapplication-tap-highlight" content="no">
<!-- 适应移动端end -->
<meta name="nightmode" content="enable/disable">
<meta name="imagemode" content="force">
<!-- 禁用掉uc浏览器判断到页面上文字居多时,会自动放大字体优化移动用户体验。 -->
<meta name="wap-font-scale" content="no">

二,取消表单元素在点击态时的边框以及半透明灰色背景

css代码:

input, textarea, button, a{ 
  -webkit-tap-highlight-color:rgba(0,0,0,0); 
}

三,移除原生控件样式

css代码:

input,button,textarea {
    -webkit-appearance: none;
}

四,使用rem来做响应式开发

scss代码:

html {
  font-size: $baseFontSize;
  @media screen and (min-width: 320px) {
    font-size: $baseFontSize*.9;
  }
  @media screen and (min-width: 360px) {
    font-size: $baseFontSize;
  }
  @media screen and (min-width: 400px) {
    font-size: $baseFontSize*1.1;
  }
}

五,定义字体

如无特殊需求,手机端无需定义中文字体,使用系统默认;

英文字体和数字字体可使用 Helvetica ,三种系统(ios、android、winphone)都支持。

css代码:

body{
    font-family: Helvetica;
}

六,移动端touch事件

当用户手指放在移动设备在屏幕上滑动会触发的touch事件
touchstart:当手指触碰屏幕时候发生。不管当前有多少只手指
touchmove:当手指在屏幕上滑动时连续触发。通常我们再滑屏页面,会调用event的preventDefault()可以阻止默认情况的发生:阻止页面滚动
touchend:当手指离开屏幕时触发
touchcancel:系统停止跟踪触摸时候会触发。例如在触摸过程中突然页面alert()一个提示框,此时会触发该事件,这个事件比较少用

七,click产生200-300 ms的延迟响应

页面js捕获click事件的回调函数处理,需要300ms后才生效
解决方案:
1、fastclick可以解决在手机上点击事件的300ms延迟
2、zepto的touch模块,tap事件也是为了解决在click的延迟问题

八,媒体查询判断横竖屏

代码:

@media all and (orientation :landscape){
...
}


@media all and (orientation :portrait){
...
}

  

 

 

 

posted @ 2016-02-18 17:42  柠檬可乐  阅读(245)  评论(0编辑  收藏  举报