移动端基础
移动端调试方法
- Chrome DevTools (谷歌浏览器)的模拟手机调试
- 搭建本地web服务器,手机和服务器个局域网内,通过手机访问服务器
- 使用外网服务器,直接IP或域名访问
总结
- 移动端浏览器我们主要对webkit内核进行兼容
- 我们现在开发的移动端主要针对手机端开发
- 现在移动端碎片化比较严重,分辨率和屏幕尺寸大小不一
- 学会用谷歌浏览器模拟手机界面以及调试
视口
- 视口(viewport)就是浏览器显示页面内容的屏幕区域。视口可以分为布局视口,视觉视口,理想视口
布局视口 layout viewport
- 一般移动设备的浏览器都默认设置 了一个布局视口,用于解决早期的PC端页面在手机上显示的问题
- iOS, Android基本都将这个视口分辨率设置为980px ,所以PC上的网页大多都能在手机上呈现,只不过元素看上去很小,一般默认可以通过手动缩放网页
视觉视口 visual viewport
- 指用户正在看到的网站的区域,注意:是网站的区域
- 可以通过缩放去操作视觉视口,但不会影响布局视口,布局视口仍保持原来的宽度
理想视口 ideal viewport
- 为了使网站在移动端有最理想的浏览和阅读宽度而设定
- 理想视口,对设备来讲,是最理想的视口尺寸
- 需要手动添写meta视口标签通知浏览器操作
- meta视口标签的主要目的:布局视口的宽度应该与理想视口的宽度一致,简单理解就是设备有多宽,我们布局的视口就多宽
总结
- 视口就是浏览器显示页面内容的屏幕区域
- 视口分为布局视口、视觉视口和理想视口
- 移动端布局想要的是理想视口就是手机屏幕有多宽,我们的布局视口就有多宽想要理想视口
- 需要给我们的移动端页面添加meta视口标签
meta视口标签
标签属性
<meta name="viewport" content="width=device-width", user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
属性 解释说明 width 宽度设置的是viewport宽度,可以设置device-width特殊值 user-scalable 用户是否可以缩放,yes或no(1或0) initial-scale 初始缩放比,大于0的数字 maximum-scale 最大缩放比,大于0的数字 minimum-scale 最小缩放比,大于0的数字
标准viewport设置
- 视口宽度和设备保持一致
- 视口的默认缩放比例1.0
- 不允许用户自行缩放
- 最大允许的缩放比例1.0
- 最小允许的缩放比例1.0
二倍图
物理像素&物理像素比
- 物理像素点指的是屏幕显示的最小颗粒,是物理真实存在的。这是厂商在出厂时就设置好的
- 我们开发时候的1px不是一定等于1个物理像素的
- PC端页面,1个px等于1个物理像素的,但是移动端就不尽相同
- 一个px的能显示的物理像素点的个数,称为物理像素比或屏幕像素比
- PC端和早前的手机屏幕/普通手机屏幕: 1CSS像素= 1 物理像素的
- Retina (视网膜屏幕)是一种显示技术,可以将把更多的物理像素点压缩至一块屏幕里,从而达到更高的分辨率,并提高屏幕显示的细腻程度
背景缩放 background-size
- background-size: 背景图片宽度 背景图片高度;
- 单位:长度 | 百分比 | cover | contain
- cover把背景图片等比例拉伸,要完全覆盖div盒子,可能有部分背景图片显示不完全
- contain把图像高度和宽度等比例拉伸,当宽度或者高度铺满div盒子就不再进行拉伸,可能有部分空白区域
<head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no"> <title>Document</title> <style> div { width: 400px; height: 400px; border: 2px solid pink; background: url(../images/dog.jpg) no-repeat; /* 1.单位:长度 若只写一个参数,则为省略高度,会进行等比缩放 background-size: 400px 400px; background-size: 400px; */ /* 2.单位:百分比 相对于父盒子的百分比 background-size: 50%; */ /* 3.单位:cover 等比例拉伸 要完全覆盖div盒子 可能有部分背景图片显示不完全 background-size: cover; */ /* 4.单位: contain 高度和宽度等比例拉伸,当宽度或者高度铺满div盒子就不再进行拉伸 可能有部分空白区域*/ background-size: contain; } </style> </head>
移动端开发
移动端开发选择
单独移动端页面(主流)
- 通常情况下,网址域名前面加m(mobile)可以打开移动端。通过判断设备,如果是移动设备打开,则跳到移动端页面
- 流式布局(百分比布局)
- flex弹性布局(强烈推荐)
- less/sass + rem/vh + 媒体查询布局
- 混合布局
响应式兼容PC移动端
- 通过判断屏幕的宽度来改变样式,以适应不同终端
- 缺点:制作麻烦,需要花很大精力去调兼容性问题
- 媒体查询
- bootstarp
移动端技术解决方案
CSS3盒子模型
- CSS3中的盒子模型,padding和border不会撑大盒子
- box-sizing: border-box;
- 传统盒子模型(默认不写)
- box-sizing: content-box;
如何选择使用
- 移动端可以全部使用CSS3盒子模型
- PC端如果需要兼容,就使用传统模式,不考虑兼容性则选择CSS3盒子模型
特殊样式(重点)
- CSS3盒子模型
- -webkit-box-sizing: border-box;
- 点击高亮我们需要进行清除 设置为transparent 完成透明
- *{-webket-tap-highlight-color: transparent;}
- 在移动端浏览器默认的外观在ios上加上这个属性才能给按钮和输入框自定义样式
- input {-webkit-appearance: none;}
- 禁用长按页面时的弹出菜单
- img, a {-webkit-touch-callout: none;}