内置浏览器:
IOS:safari
Windows Phone:IE
Android 2.X和大部分Android 4.x:安卓Webkit
Chrome拥有的Nexus:Google chrome
Android 4.4+ 三星使用的三星chrome
Amazon:silk
可下载浏览器: firefox , Opera, UC, QQ, 360
移动端浏览器都是高级浏览器
对HTML5和CSS3有很好的支持,所以我们不用考虑兼容性问题。
HTML5:
语义化标签:header footer nav artcle main aside
离线存储:可使用Localstorage存储信息到用户的设备中
localStorage.getItem
localStorage.setItem
地理位置:移动特性,使用Navigate.getlocation来说明用户地理位置
设备转向和螺旋仪:摇一摇,devicemotion事件:获取设备x/y/z方向上的加速度
CSS3特性
圆角与阴影
渐变背景
变形:平移、旋转、缩放
变换和动画
交互:
开发与调试(教程)
设备:尺寸。旋转
媒介:print screen
网络:userAgent,网速
传感:触摸、地理位置
CSS像素
设备像素比:DevicePixelRatio = 设备像素/CSS像素
解决不同移动设备下视觉效果。
视口(viewPort)
布局视口:CSS布局会被他约束。document.documentElement.width/height
视觉视口:用户屏幕中看到区域的CSS像素 window.innerWidth/Height
理想视口:浏览器认为对设备来说最合适的布局视口的大小
通过这句话设置:
width:布局视口宽度
initial-scale:页面的初始缩放程度和布局视口的宽度
minimum-scale:最小缩放程度
maxmum-scale:最大缩放程度
user-scalable:是否可缩放
针对不同屏幕应用不同的样式
或者:
媒体查询
(min/max-)width/height
orientation 方向
oritation:landscape /*代表横屏*/
resolution 分辨率
device-pixel-ratio
(min/max-)aspect-ratio
Device-width, device-height, device-aspect-ratio不可靠
弹性布局
页面的body宽度为100%
自适应布局
display:table 支持性很好!CSS2.1支持
CSS3 Flex Box 是w3c的终极武器
CSS |
html |
display: table |
<table> |
display: table-cell |
<td> |
display: table-row |
<tr> |
display: table-column |
<col> |
display: table-column-group |
<colgroup> |
display: table-footer-group |
<tfoot> |
display: table-header-group |
<thead> |
多栏自适应等高布局
Display:table实现多栏等高布局
Flexbox
水平或垂直排成一行
控制子元素对齐方式
控制子元素的宽度、高度
控制子元素的显示顺序
控制子元素是否折行
Demo:
Html:
CSS:
Flexbox学习最新的,可以用工具解决兼容性问题:flexbox转化
flexbox布局相关文章
#####图片
液态图片:img { max-width: 100%; }
使用2x 图片 (IE下基本不支持)
width:200px的img,使用分辨率宽为400的图片
background-size: 50% auto;
srcset和picture
####响应式javascript
使用matchMedia
if(matchMedia(‘screen and (min-width:480px)’).matches){
}
处理orientationChange事件
Window.addEventListener(“oritationchange”,function(){
Alert(“the orientation of the device is now” +screen.orientation);
});
Test demo
Html:
CSS:
移动端事件
鼠标事件:mousedown mousemove mouseup click
Touch事件: touchstart touchmove touchend
Click延迟
手机上的click事件有约300ms的延迟,因为浏览器要判断是否为双击缩放行为
部分浏览器,会在页面不可缩放时取消延时
Google Chrome 会在Viewport Meta的content设为device-width时取消延时
IE会在CSS的touch-action设为manipulation时取消延时
Safari无法取消延时
解决办法
touchEvent
有三个touchList类型的关键属性
touchlist里的每一项结构与MouseEvent类似