移动端学习笔记(二)
来源:互联网 发布:ae cc 2015 中文 mac 编辑:程序博客网 时间:2024/06/08 12:09
viewport适配
(function(){ var w = window.screen.width; var targetW = 320; var scale = w/targetW; var meta = document.createElement('meta'); meta.name = "viewport"; meta.content = "user-scalable=no,initial-scale="+scale+",minimum-scale="+scale+",maximum-scale="+scale+""; document.head.appendChild(meta);})();
rem适配:根据根节点的字体大小进行计算
r:root(根)
(function(){ var html = document.documentElement;// 获取html var hWidth = html.getBoundingClientRect().width;// 获取移动端屏幕的宽度 html.style.fontSize = hWidth/15 + "px";// 根据比例 设置html的字体})()
清除移动端的默认样式
a,input,button{-webkit-tap-highlight-color:rgba(0,0,0,0);}input,button{-webkit-appearance:none;border-radius:none;}body{margin:0;padding:0;-webkit-user-select:none;}body *{-webkit-user-select:none;font-family:Helvetica;}body{-webkit-text-size-adjust:100%;}
弹性盒模型:
使用弹性盒模型的时候,父元素要加
新版弹性盒模型 display:flex(一些移动端不兼容)
flex-direction:row(设置主轴方向为水平方向)flex-direction:column(设置主轴方向为垂直方向)
flex-direction:row-reverse(设置主轴方向为水平,元素排列为反序)
flex-direction:column-reverse(设置主轴方向为垂直,元素排列为反序)
老版弹性盒模型 display:-webkit-box(一定要加浏览器内核前缀)
-webkit-box-orient:horizontal(设置主轴方向为水平方向)-webkit-box-orient:vertical(设置主轴方向为垂直方向)
如果想要实现老版弹性盒模型,元素反序,必须两者配合使用
实现元素水平方向反序(显示结果和新版有差异)
-webkit-box-orient:horizontal-webkit-box-direction:reverse(反序)
实现元素垂直方向反序(显示结果和新版有差异)
-webkit-box-orient:vertical-webkit-box-direction:reverse (反序)
弹性盒模型的富裕空间管理
主轴方向富裕空间新版(display:flex)老版(display:-webkit-box)
元素在主轴开始位置,富裕空间在主轴结束位置justify-content:flex-start-webkit-box-pack:start
元素在主轴结束位置,富裕空间在主轴开始位置 justify-content:flex-end -webkit-box-pack:end
元素在主轴中间位置,富裕空间在主轴两侧位置 justify-content:center -webkit-box-pack:center
富裕空间平均分配在每两个元素之间justify-content:space-between -webkit-box-pack:justify
富裕空间平均分配在每两个元素的两侧justify-content:space-around没有
侧轴方向富裕空间新版(display:flex) 老版(display:-webkit-box)
元素在侧轴开始位置,富裕空间在侧轴结束位置align-items:flex-start -webkit-box-align:start
元素在侧轴结束位置,富裕空间在侧轴开始位置align-items:flex-end -webkit-box-align:end
元素在侧轴中间位置,富裕空间在侧轴两侧位置align-items:center -webkit-box-align:center
根据侧轴方向上文字的基线对其 align-items:baseline没有
盒子的弹性空间(子元素的尺寸=盒子的尺寸*子元素的box-flex属性值/所有子元素的box-flex属性值的和)
盒子的弹性空间(加给子元素)设置元素的具体位置(加给子元素)
新版flex-grow:1;order:5(数值越小越靠前,可以接受0或者负值)
老版-webkit-box-flex:1;-webkit-box-ordinal-group:2(数值越小越靠前,最小值默认处理为1,将0或者负数转化为1)
媒体设备all 所有媒体braille盲文触觉设备embossed盲文打印机point手持设备projection打印预览
screen彩屏设备speech‘听觉’类似的媒体类型tty不使用像素设备tv电视
具体写法:@media 媒体设备@media only 设备类型(只有在特定的某种设备上识别)
and 连接媒体类型和媒体特性的(@media all and (min-width:500px))
媒体特性:min-width:当屏幕大于等于某个值得时候识别
max-width:当屏幕小于等于某个值得时候识别
not 关键字是用来排除某种制定的媒体类型
only 某种特定的媒体类型
@media (orientation:portrait):屏幕垂直
@media(orientation:landscape):屏幕水平
样式的引用方式:
1.样式表中末尾添加 @media all and (min-width:600px){ }
2.link标签 <link rel="stylesheet" href="路径" media="all and(min-width:600px)" />
3.写在样式表头部 @important url(路径)(min-width:600px);
touch事件:touchstart 手指触摸 touchmove 手指移动touchend 手指离开
移动端的点透:当上层元素发生点击的时候,下层元素也有点击(焦点)特性,在300ms之后,如果上层元素消失或者隐藏,目标点就会“漂移”到下层元素身上,就会触发点击事件
解决办法:1.下层不要使用有点击(焦点)特性的元素2.阻止PC事件document.addEventListenter(‘touchstart’,function(ev){ev.preventDefault()})
document.addEventListenter(‘touchstart’,function(ev){ ev.preventDefault()})可以解决:
1.IOS10下设置meta禁止用户缩放是不可行的,可以用pc事件解决
2.解决IOS10下的溢出隐藏
3.禁止系统默认的滚动条、阻止橡皮筋效果
4.禁止长按选中文字、选中图片、系统默认菜单
5.解决点透问题
6.同时阻止了焦点元素的焦点行为(要想正常使用,ev.stopPropagation()(阻止冒泡))
事件对象:
当给某个元素加上了事件绑定函数后,事件函数默认的第一个参数就是事件对象
时间对象:当用户在浏览器下触发了某个行为,事件对象会记录用户操作时的一些细节信息
touches 当前位于屏幕上的所有手指的一个列表
targetTouches 位于当前DOM元素上的手指的一个列表
changedTouches 设计当前事件的手指的一个列表
- 移动端学习笔记(二)
- VIM学习笔记(二):VIM快速移动光标命令
- 学习笔记之使用vi之移动光标(二)
- 通信网学习笔记(二)----固定电话网和移动电话网
- SurvivalShooter学习笔记(二.玩家移动旋转)
- 移动端学习笔记
- andriod jbox2d学习笔记二 通过移动关节移动body
- 移动端学习笔记(一)
- 学习笔记:架构 移动应用架构 view层的组织和调用方案(二)
- MFC学习笔记之二(制作人物动画+人物移动+地图拖曳)
- Android移动应用开发学习笔记(二)——用户注册
- android移动开发学习笔记(二)神奇的Web API
- Telerik移动应用开发工具AppBuilder学习笔记(二)--IDEs
- 移动计费系统学习(二)
- 学习笔记(二)
- 学习笔记(二)
- 学习笔记(二)
- 学习笔记(二)
- 字母大小写问题造成的Test Suit的Library中添加Selenium2Library显示红色
- 《概率论与数理统计_浙江大学》_第一章_概率论基本概念
- C++顺序容器类:矢量类、列表类和双端队列类
- leetcode 166. Fraction to Recurring Decimal
- spring mvc无xml
- 移动端学习笔记(二)
- 使用pycharm运行scrapy项目
- kettle连接多个数据库
- Android Sudio每次启动很慢的解决办法
- 9.8.2 删除那些不需要的文件
- UESTC-621 吴神的大脑
- Ubuntu修改计算机名
- Unity3D之虚拟摇杆
- c语言与汇编的区别