移动Web开发之流式布局

Web的开发现状
标准的viewport
移动web的调试方法
移动端常见的布局方案
流式布局
独立完成京东移动端首页

1 移动端基础

1.1 浏览器现状


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

1.2 手机屏幕现状

  • 移动端设备屏幕尺寸非常多,碎片化严重
  • Android设备有多种分辨率:480*480,480*854,540*960,720*1280,,1080*1920等,还有传说中的2K,4K屏
  • 近年来iPhone的碎片化也加剧了,其设备的主要分辨率有:640*960,640*1136,750*1334,1242*2208等。
  • 作为开发者无需关注这些分辨率,因为常用的尺寸单位是px

1.3 常见移动端屏幕尺寸

数据可以参考:https://material.io/devices/
注意:作为前端开发,不建议大家去纠结dp dpi pt ppi等单位。

1.4 移动端调试方法

  • Chrome DevTools(谷歌浏览器)的模拟手机调试
  • 搭建本地web服务器,手机和服务器是一个局域网内,通过手机访问服务器
  • 使用外网服务器,直接IP或域名访问

2 视口

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

2.1 布局视口 layout viewport

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

2.2 视觉视口 visual viewport

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

2.3 理想视口 ideal viewport

  • 为了使网站在移动端有最理想的浏览和阅读宽度而设定
  • 理想视口,对设备来讲,是最理想的视口尺寸
  • 需要手动添加meta视口标签通知浏览器操作
  • meta视口标签的主要目的:布局视口的宽度应该和理想视口的宽度一致,简单理解就是设备有多宽,布局的视口就多宽

2.5 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特殊值
initial-scale 初始化缩放比,大于0的数字
maximum-scale 最大缩放比,大于0的数字
minimum-scale 最小缩放比,大于0的数字
user-scalable 用户是否可以缩放,yes或no(1或0)

2.6 标准的viewport设置

  • 视口宽度和设备保持一致
  • 视口的默认缩放比例1.0
  • 不允许用户自行缩放
  • 最大允许的缩放比例1.0
  • 最小允许的缩放比例1.0

3 二倍图

3.1 物理像素和物理像素比

  • 物理像素点指的是屏幕显示的最小颗粒,是物理真实存在的。这是厂商在出厂时就设置好了,比如苹果6/7/8是750*1334
  • 开发的时候1px不是一定等于1个物理像素的
  • PC端页面,1px等于1个物理像素,但是移动端不尽相同
  • 一个px能显示的物理像素点的个数,称为物理像素比或屏幕像素比
  • PC端和早期的手机屏幕、普通手机屏幕:1CSS像素 = 1物理像素
  • Retina(视网膜屏幕)是一种显示技术,可以将更多的物理像素点压缩在一块屏幕里,从而达到更高的分辨率,并提高屏幕显示的细腻程度

3.2 多倍图

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

二倍精灵图的做法

  • 在firework里面把精灵图等比例缩放为原来的一半
  • 之后根据大小测量坐标
  • 注意代码里面background-size也要写:精灵图原来的一半

图片格式:

  1. DPG图片压缩技术:京东自主研发,节省50%的浏览流量,极大地提升了用户的网页打开速度,能够兼容JPEG,实现全平台、全部浏览器的兼容支持,压缩后的图片和webp的清晰度对比没有差距
  2. webp图片格式:谷歌开发的一种旨在加快图片加载速度的图片格式。图片压缩体积大约只有JPEG的2/3,并能节省大量的服务器宽带资源和数据空间。

3.3 背景缩放 background-size

background-size属性规定背景图像的尺寸

background-size: 背景图片宽度 背景图片高度;
  • 单位:长度 | 百分比 | cover | contain;
  • cover把背景图片扩展至足够大,以使背景图像完全覆盖背景区域
  • contain把图像扩展至最大尺寸,以使其宽度和高度完全适应内容区域

3.4 多倍图切图 cutterman

  • @3X 3倍图
  • @2X 2倍图
  • @1X 1倍图原图

4 移动端开发选择

4.1 移动端主流方案

  1. 单独制作移动端页面(主流):京东商城手机版,淘宝触屏版,苏宁易购手机版…
  2. 响应式页面兼容移动端(其次):三星手机官网

4.2 单独移动端页面(主流)

通常情况下,网址域名前面加**m(mobile)**可以打开移动端。通过设备判断,如果是移动设备打开,则跳到移动端页面

4.3 响应式兼容PC移动端

三星电子官网:www.samsungeshop.com/cn/,通过判断屏幕宽度来改变样式,以适应不同终端
缺点:制作麻烦,需要花很大精力去调兼容性问题

5 移动端技术解决方案

5.1 移动端浏览器

移动端浏览器基本以Webkit内核为主,因此就考虑Webkit兼容问题
可以放心使用HTML5标签和CSS3样式
同时浏览器的私有前缀只需要考虑Webkit即可

5.2 CSS初始化 normalize.css

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

  • Normalize.css:保护了有价值的默认值
  • Normalize.css:修复了浏览器的bug
  • Normalize.css:是模块化的
  • Normalize.css:拥有详细的文档
    官网地址:http://necolas.github.io/normalize.css/

5.3 CSS3盒子模型 box-sizing

  • 传统模式宽度计算:盒子的宽度 = CSS中设置的width+border+padding
  • CSS3盒子模型:盒子的宽度=CSS中设置的宽度width里面包含了border和padding,也就是说,CSS3中的盒子模型,padding和border不会再撑开盒子了
/* CSS3盒子模型 */
box-sizing: border-box;
/* 传统盒子模型 */
box-sizing: content-box;

如何选择?

  • 移动端可以全部使用CSS3盒子模型
  • PC端如果完全需要兼容,就用传统模式,如果不考虑兼容性,就选择CSS3盒子模型

5.4 特殊样式

/* CSS#盒子模型 */
box-sizing: border-box;
-webkit-box-sizing: border-box;
/* 点击高亮我们需要清除 清除设置为transparent 完成透明 */
-webkit-tap-highlight-color: transparent;
/* 在移动端浏览器默认的外观在iOS上加上这个属性才能给按钮和输入框自定义样式 */
-webkit-appearance: none;
/* 禁用长按页面时的弹出菜单 */
img, a { -webkit-touch-callout: none; }

6 移动端技术选型

移动端布局和以前学习的PC端有所区别:

(1)单独制作移动端页面(主流)

  • 流式布局(百分比布局)
  • flex弹性布局(强烈推荐)
  • less+rem+媒体查询布局
  • 混合布局

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

  • 媒体查询
  • bootstarp

6.1 流式布局(百分比布局)

  • 流式布局,就是百分比布局,也称为非固定像素布局
  • 通过盒子的宽度设置成百分比来根据屏幕的宽度来进行伸缩,不受固定像素的限制,内容向两侧填充
  • 流式布局方式是移动web开发使用的比较常见的布局方式
  • max-width 最大宽度(max-height 最大高度)
  • min-width 最小宽度(min-height 最小高度)

案例:京东移动端首页

移动Web开发之流式布局笔记相关推荐

  1. 移动WEB开发之流式布局-京东案例

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

  2. pink-移动web开发之流式布局

    改变行高只是改变上下间距的大小, 目标: 知道移动WEB的开发现状 写出标准的viewport 使用移动WEB的调试方法 说出移动端常见的布局方案 描述流式分布 独立完成京东移动端首页 1. 移动端基 ...

  3. 移动WEB开发之流式布局

    第一章:移动端: 1.1 移动端基础 1.2 视口 1.2.1布局视口layout viewport 1.2.2 视觉视口visual viewport 1.2.3  理想视口ideal viewpo ...

  4. 移动端WEB开发之响应式布局(响应式开发原理、bootstrap、阿里百秀案例)

    移动端WEB开发之响应式布局 1.1 响应式开发原理 就是使用媒体查询针对不同宽度的设备进行布局和样式的设置,从而适配不同设备的目的. 设备的划分情况: <!DOCTYPE html> & ...

  5. 20.【移动端Web开发之响应式布局】

    文章目录 [移动端Web开发之响应式布局]前端小抄(20) 一.响应式开发 1.1 响应式开发原理 1.2 响应式布局容器 二.Bootstrap前端开发框架 2.1 Bootstrap简介 2.2 ...

  6. 移动端web开发之响应式布局

    文章目录 前言 一.响应式开发 1.1 响应式开发原理 1.2 响应式布局容器 二.Bootstrap前端开发框架 2.1 Bootstrap 简介 2.2 Bootstrap 使用 2.3 布局容器 ...

  7. 移动端WEB开发之-响应式布局

    目录 移动端WEB开发之响应式布局 1.0 响应式开发原理 1.1 响应式开发原理 1.2 响应式布局容器 2.0 bootstrap的介绍 2.1Bootstrap简介 2.2 bootstrap优 ...

  8. (49)移动端开发之流式布局(百分比布局)

    一.流式布局(百分比布局)介绍 流式布局,就是百分比布局,也称非固定像素布局. 通过将盒子的宽度设置成百分比,从而根据屏幕的宽度来进行伸缩,不受固定像素的限制, 内容向两侧填充. 流式布局方式是移动w ...

  9. 移动web学习(一) --- 流式布局, 视口viewpoint ,2倍图和3倍图, less

    从这章开始,学习移动web 移动web开发指的是需要适配移动设备的网页开发,和pc端没有本质的区别,还是使用html,css,js 一.学习移动web的原因 1. 使用移动设备的用户越来越多 2. 一 ...

  10. 移动web开发 17-1 响应式布局 bootstrap首页 框架 阿里百秀项目

    1 响应式开发原理 1.1 响应式开发原理 核心:使用媒体查询针对不同宽度的设备进行布局和样式的设置,从而适配不同设备的目的. 1.20媒体查询(重点) 媒体查询区间的写法 当屏幕宽度<=768 ...

最新文章

  1. JS加法函数,用来得到精确的加法结果(说明:javascript的加法结果会有误差,在两个浮点数相加的时候会比较明显。这个函数返回较为精确的加法结果)
  2. 第一篇:Mysql数据类型
  3. Java实现按名称、日期、大小对文件进行排序
  4. centos 编译 mysql_centos 编译安装mysql
  5. 什么是 Linux 安全基线?
  6. scala list 接受java string_「软帝学院」Java零基础学习详解
  7. HDU4622(后缀自动机)
  8. 利用延迟关联或者子查询优化超多分页场景
  9. 通达OA工作流-表单设计
  10. 什么是MKV文件以及如何打开和播放MKV?
  11. Python 利用win32com批量给excel加密
  12. 13W 字!银四巨作:Java 进阶架构师核心手册
  13. 陆正耀旗下宝沃汽车申请破产:无力清偿到期债务 资金链断裂
  14. 苹果系统代码汉字转拼音
  15. 怎么判断日出时间早晚_日出日落时间早晚比较
  16. VSCode-解决更新代码时报would clobber existing tag
  17. Anaconda安装详细教程
  18. 使用Arduino制作一款数字键盘安全门锁
  19. 安卓手机管理_安卓手机清理大师app下载-安卓手机清理大师下载v1.0.0安卓版
  20. < 在Vue中 el-popover + el-tiptap 实现 富文本框输入,表格点击展示 (富文本HTML标签渲染) >

热门文章

  1. nodemon运行 提示错误:无法加载文件 C:\Users\gxf\AppData\Roaming\npm\nodemon.ps1,因为在此系统上禁止运行脚本。...
  2. 新 V8 即将推出和 Node.js
  3. Knockout v3.4.0 中文版教程-6-计算监控-可写的计算监控
  4. Django restful Framework 之序列化与反序列化
  5. powershell excel 导入 sqlserver
  6. C#如何快速高效地导出大量数据?
  7. SQL SERVER IDENTITY 约束的用法
  8. .NET Framework版本解析
  9. 【linux】修改某一行
  10. ROS:激光雷达+laser_scan_matcher 运行gmapping