移动WEB开发基础篇

一. 移动端基础

1.1 浏览器现状

1. PC端常见浏览器:

360浏览器谷歌浏览器火狐浏览器QQ浏览器百度浏览器搜狗浏览器IE浏览器

在这里插入图片描述
2. 移动端常见浏览器:

UC浏览器QQ浏览器欧朋浏览器百度手机浏览器360安全浏览器谷歌浏览器搜狗手机浏览器猎豹浏览器...

3. 国内浏览器环境:

国内的UCQQ百度等手机浏览器都是根据Webkit修改过来的内核,国内尚无自主研发的内核,就像国内的手机操作系统都是基于Android开发的一样。

总结:兼容移动端主流浏览器,处理Webkit内浏览器即可

1.2 手机屏幕现状
  1. 移动端设备屏幕尺寸非常多,碎片化严重
  2. Android设备有多种分辨率:480 * 800480 * 854540 * 960720 * 12801080 *19202k4k ...
  3. 近年来iPhone的碎片化也加剧了,其设备的主要分率有:640 * 960640 * 1136750 * 13341242 * 2208 ...
  4. 作为开发者无需关注这些分辨率,因为我们常用的尺寸单位是px

在这里插入图片描述

1.3 常见移动端屏幕尺寸

在这里插入图片描述
注:作为前端开发,不建议大家去纠结dp,dpi,pt,ppi等单位

1.4 移动端调试方法
  1. Chrome Devtools(谷歌浏览器)的模拟手机调试
  2. 搭建本地web服务器,手机和服务器一个局域网内,通过手机访问服务器 使用外网服务器,直接IP域名访问
  3. 使用外网服务器,直接IP域名访问
1.5 总结
  1. 移动端浏览器我们主要对webkit内核进行兼容
  2. 我们现在开发的移动端主要针对手机端开发
  3. 现在移动端碎片化比较严重,分辨率和屏尺寸大小不ー
  4. 学会用谷歌浏览器模拟手机界面以及调试

二. 视口 viewport

视口( viewport)就是浏览器显示页面内容的屏幕区域。视口可以分为布局视口视觉视口理想视口

2.1 布局视口 layout viewport
  1. 一般移动设备的浏览器都默认设置了一个布局视口,用于解决早期的PC端页面在手机上显示的问题。
  2. iOSAndroid基本都将这个视口分辨率设置为980px,所以PC上的网页大多都能在手机上呈现,只不过元素看上去很小,一般默认可以通过手动缩放网页

在这里插入图片描述

2.2 视觉视口 visual viewport
  1. 字面意思,它是用户正在看到的网站的区域。注意:是网站的区域
  2. 我们可以通过缩放去操作视觉视口,但不会影响布局视口布局视口仍保持原来的宽度

在这里插入图片描述

2.3 理想视口 ideal viewport(推荐)
  1. 为了使网站在移动端有最理想的浏览阅读宽度而设定
  2. 理想视口,对设备来讲,是最理想视口尺寸
  3. 需要手动添写meta视口标签通知览器操作
  4. meta视口标签的主要目的:布局视口的宽度应该与理想视口的宽度一致,简单理解就是设备有多宽,我们布局的视口就多宽
2.4 总结
  1. 视口就是浏览器显示页面内容的屏幕区域
  2. 视口分为布局视口视觉视口理想视口
  3. 我们移动端布局想要的是理想视口就是手机屏幕有多宽,我们的布局视口就有多宽

三. 理想视口 ideal viewport

想要理想视口,我们需要给我们的移动端页面添加meta视口标签

3.1 meta视口标签
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
《meta标签的属性》
序号属性描述
1width = device-width宽度设置为视口(viewport)的 宽度
2initial-scale = 1.0初始缩放比
3maximum-scale = 1.0最大缩放比
4minimum-scale = 1.0最小缩放比
5user-scalable = no用户是否可以缩放,yes或no(1或0)
3.2 标准的viewport设置
  1. 视口宽度和设备保持一致
  2. 视口的默认缩放比例1.0
  3. 不允许用户自行缩放
  4. 最大允许的缩放比例1.0
  5. 最小允许的缩放比例1.0

四.二倍图

4.1 物理像素和物理像素比
  1. 物理像素点指的是屏幕显示的最小颗粒,是物理真实存在的。这是厂商在出厂时就设置好了,比如苹果678750*1334
  2. 我们开发时候的1px不是一定等于1个物理像素
  3. PC端页面,1px等于1个物理像素的,但是移动端就不尽相同
  4. 一个px能显示的物理像素点的个数,称为物理像素比屏幕像素比

在这里插入图片描述

注意:

  • 物理像素,就是我们说的分辨率iPhone8的物理像素是750
  • iPhone8里面,1px开发像素 = 2个物理像素
  • PC端和早期的手机屏幕/普通手机屏幕:1px像素 = 1 物理像素
  • Retina(视网膜屏幕)是一种显示技术,可以把更多的物理像素点压缩在一块屏幕里面,从而达到更高的分辨率,并提高屏幕显示的细腻程度

在这里插入图片描述
在这里插入图片描述

4.2 多倍图
  1. 对于一张50px*50px的图片,在手机Retina屏中打开,按照刚才的物理像素比会放大倍数,这样会造成图片模糊
  2. 在标准的viewport设置中,使用倍图来提高图片质量,解决在高清设备中的模糊问题
  3. 通常使用二倍图,因为iPhone678的影响,但是现在还存在3倍图4倍图情况,这个看实际公司需求
1 | /* 在iPhone8下面 */
2 | img{
3 | 	/* 设置img图片尺寸,原始图片100*100px */
4 | 	width:50px;
5 | 	height:50px;
6 | }
7 | .box{
8 | 	/* 设置背景图尺寸,原始图片100*100px */
9 | 	background-size:50px 50px
10 | }

5. 移动端开发选择

5.1 移动端主流方案
  1. 单独制作移动端页面(主流

    如:京东商城手机版淘宝触屏版苏宁易购手机版

  2. 响应式页面兼容移动端(其次)

    如:三星手机官网

5.2 单独移动端页面(主流

通常情况下,网址域名前面加m(mobile)可以打开移动端。通过判断设备,如果是移动设备打开,则跳到移动端页面。
在这里插入图片描述

5.3 响应式兼容PC移动端
  1. 三星电子官网:https://www.samsung.com/cn/。通过判断屏幕亮度来改变样式,以适应不同终端。

  2. 缺点:制作麻烦,需要消耗很大精力去调兼容性问题。

5.4 总结

现在市场常见的移动端开发有单独制作移动端页面响应式页面两种方案,现在市场主流的选择还是单独制作移动端页面

6. 移动端CSS样式初始化

6.1 移动端浏览器
  1. 移动端浏览器基本以webkit内核为主,因此我们就考虑webkit兼容性问题
  2. 我们可以放心使用H5标签和CSS3样式
  3. 同时我们浏览器的私有前缀我们只需要考虑添加webkit即可
    在这里插入图片描述
6.2 CSS初始化样式 normalize.css

移动端CSS初始化推荐使用normalize.css

  1. Normalize.css:保护了有价值的默认值

  2. Normalize.css:修复了浏览器的bug

  3. Normalize.css:是模块化的

  4. Normalize.css:拥有详细的文档

官网地址:http://necolas.github.io/normalize.css/

6.3 初始化特殊的CSS样式
  1. 设置边框盒box-sizing = border-box移动端常用布局是非固定像素,也就是用百分比,所以必须设置盒子尺寸为边框盒, 所有标签伪元素都要设置
/*设置边框盒,清除内、外边距*/		
 *,
 *::before, 
 *::after{
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    -webkit-box-sizing: border-box; /*移动端的内核主要是webkit,所以给它做个兼容就可以了*/
 }
  1. 清除点击高亮效果 -webkit-tap-highlight-color: transparent;
	/*将高亮效果设置为 transparent(透明)*/
	 * {
		 -webkit-tap-highlight-color: transparent;
	}
		
  1. 清除浏览器按钮、输入框的默认样式 -webkit-appearance: none;
	/*清除input、button在 IOS 系统中的的默认外观样式*/
	button,
	input {
		-webkit-appearance: none;
	}
  1. 禁止长按链接图片弹出菜单 -webkit-touch-callout: none;
 /*禁用长按页面时的弹出菜单*/
 img,a{
 	-webkit-touch-callout: none;
 }
  1. 表单不允许改变尺寸:resize: none;
input {
	resize: none;
}	
  1. 移动端的公用样式浮动清除浮动
	/* 左浮动*/
	.f_left {
   	  float: left;
	}

	/*右浮动*/
	.f_right {
   	  float: right;
	}

	/*清除浮动*/
	.clearFix::after,
	.clearFix::before {
    	content: '';
    	display: block;
    	visibility: hidden;
    	height: 0;
    	line-height: 0;
    	clear: both;
	}

7. 移动端常见布局

7.1 单独制作移动端页面(主流)
  1. 流式布局(百分比布局)
  2. flex弹性布局(强烈推荐)
  3. less+rem+媒体查询布局
  4. 混合布局
7.2 响应式页面兼容移动端(其次)
  1. 媒体查询
  2. bootstrap

8. 移动端不使用jQuery

  1. 可以使用jQuery,但是不建议,因为jQuer库用在移动端显得太冗余
  2. jQuery 做了很多桌面浏览器的兼容问题 特别是IE,但是移动端没有IE浏览器
  3. 主流的浏览器:谷歌火狐(2016年停止了维护和更新)safari百度360qq ...
  4. 特点:内核基本上都是 webkit 或者 blink ,兼容 -webkit-
  5. 使用H5API 或者说使用一个 叫做: zepto.js 的库(基于高版本浏览器开发)
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值