@(概述)[基本概念|百分比|rem|vw/vh|响应式设计]

移动端web页面的开发,由于手机屏幕尺寸分辨率不同,或者需要考虑横竖屏问题,为了使得web页面在不同移动设备上具有相适应的展示效果,需要在开发过程中使用合理的适配方案来解决这个问题。

早期网页设计采用静态布局,通过<meta>标签中的applicable-device应用设备标识识别移动设备,即<meta name = 'applicable-device' content = 'mobile'>,在<meta>标签中的viewport标签中设置width,通过js动态修改标签的initial-scale使得页面等比缩放,刚好占满整个屏幕。一些文章中有提到静态布局中页面各个元素采用px为单位,这种方案实现简单,不存在兼容性问题,但用户体验很不友好。

后面出现流式布局,使用百分比%定义宽度,高度使用px固定,根据可视区域大小实时进行尺寸调整,通常使用max-width/min-width控制尺寸范围过大或者过小。这种方案实现比较简单,但在大屏手机或横竖屏切换场景下可能会导致页面元素被拉伸变形,字体大小无法随屏幕大小发生变化。

顺应不同页面字体大小展现问题,出现了弹性布局。这种布局方案下,包裹文字的元素的尺寸采用em/rem为单位,页面主要划分区域的尺寸依据情况使用px、百分数或者em/rem。如一些高校的网站 jlu,页面的主要划分区域使用px和百分比,包裹文字的元素和文字采用em

上面的这几种方案下,页面元素的大小按照屏幕分辨率进行适配调整,但是整体布局不变,对于响应式web设计,网页布局会随着访问它的视口及设备的不同呈现不同的样式,在实现上可能会以上多种方案的结合,同时搭配 媒体查询 技术使用,使得一个页面在多个终端 (PC, mobile, pad) 呈现满意效果,如 mashable 。

[TOC]

基本概念

像素

px (pixel)

像素,是屏幕上显示数据的最基本的点,表示相对大小。不同分辨率下相同长度的px元素显示会不一样,是因为像素点的个数相同情况下,不同分辨率下每个像素点对应的像素宽度不同。比如同样是14px大小的字,在1366×768显示屏下会显示的小,在1024×768显示屏下会相对大。也称为 物理像素(设备像素),是分辨率的尺寸单位。

pt (point)

印刷行业常用单位,能够使用测量设备测得的长度,等于1/72英寸。

css像素

在不同屏幕上,css像素呈现的物理尺寸一致,但css像素对应的物理像素具数不同。标准的显示密度下,1css像素对应一个物理像素,缩放时,1css像素对应的物理像素会减增。是一种设备独立像素(device independent pixels: DIPs)

PPI (pixel per inch)

像素密度,每英寸所拥有的像素数。值越高,显示画面细节越丰富。计算公式为:,其中 是分辨率的宽高, 是屏幕尺寸。

DPI (dot per inch)

打印设备每英寸印刷出来的点有多少个,值越高,图片越细腻。

DPR (devicePixelRatio)

设备物理像素和设备独立像素比,即是指在理想布局宽度,使用多少个物理像素来渲染一个css像素。js中通过window.devicePixelRatio获取,css中通过-webkit-device-pixel-ratio,-webkit-min-device-pixel-ratio,-webkit-max-device-pixel-ratio进行媒体查询。

视口

<meta>标签中定义了一些元数据信息,通过设置<meta name = "viewport">,提供有关 视口初始大小 的信息,供移动设备 使用。属性值为

属性 属性值 描述
width 数值 / device-width 视口宽度
height 数值 / device-height 视口高度
initial-scale 0.0 ~ 10.0 设备宽度与视口大小之间的缩放比率
maximum-scale 0.0 ~ 10.0 缩放最大值
minimum-scale 0.0 ~ 10.0 缩放最小值
user-scalable 布尔值 默认yes,为no时用户不能缩放网页

移动端涉及布局视口(Layout Viewport)、视觉视口(Visual ViewPort)和理想视口(Ideal ViewPort)。

  • 布局视口是指用视口元标签(viewport meta)来进行布局视口设置,css布局是相对于布局视口计算
    ...
  • 视觉视口是指用户当前看到的区域
    ...
  • 理想视口是屏幕分辨率的值,通过设置 <meta name = "viewport" content = "width = device-width, initial-scale = 1.0">实现

手机屏幕特性

与移动端web页面适配有关的手机屏幕特性包括

像素分辨率

硬件所支持的,屏幕每行的像素*每列的像素点数,单位是px

逻辑分辨率

设备独立的,软件可以达到的,个人理解是使得软件/页面在不同屏幕上显示出来的效果一致。

倍率

像素分辨率÷逻辑分辨率等于倍率,如@3x表示分辨率的3倍。一个已知物理像素大小的元素,如果在普通屏中其设备像素等于css像素,但在一些高清屏中,如 Retina 显示屏,一个css像素对应23个设备像素,这时显示出来的元素会变小。为了让元素如期待显示,需要传入原始设计稿尺寸×倍率的设计稿,根据 DPR 的定义,这样加载后能够达到同样的效果。

尺寸

手机屏幕对角线长度换算成英寸的大小

适配方案

百分比方案

原理

使用 百分比% 定义 宽度高度px固定,根据可视区域实时尺寸进行调整,尽可能适应各种分辨率,通常使用max-width/min-width控制尺寸范围过大或者过小。下表是子元素不同属性设置百分比的依据

属性 设置参考
height/width 基于子元素的直接父元素,width相对于父元素的widthheight相对于父元素的height
top/bottomleft/right 相对于直接非static定位的父元素的height/width
padding/margin 不论是垂直方向或者是水平方向,都相对于直接父亲元素的width,与父元素的height无关。
border-radius 相对于自身的宽度

优势

原理简单,不存在兼容性问题

不足

  • 如果屏幕尺度跨度太大,相对设计稿过大或者过小的屏幕不能正常显示,在大屏手机或横竖屏切换场景下可能会导致页面元素被拉伸变形,字体大小无法随屏幕大小发生变化。
    ...
  • 设置盒模型的不同属性时,其百分比设置的参考元素不唯一,容易使布局问题变得复杂

rem方案

原理

rem是相对长度单位,rem方案中的样式设计为相对于根元素font-size计算值的倍数。根据 屏幕宽度 设置html标签的font-size,在布局时使用 rem 单位布局,达到自适应的目的,是 弹性布局 的一种实现方式。

实现过程: 首先获取文档根元素和设备dpr,设置 rem,在html文档加载和解析完成后调整body字体大小; 在页面缩放 / 回退 / 前进的时候, 获取元素的内部宽度 (不包括垂直滚动条,边框和外边距),重新调整 rem 大小。

实现方法:css 处理器或 npm 包将页面 css 样式中的px自动转换成 rem。在整个 flexible 适配方案中,文本使用px作为单位,使用[data-dpr]属性来区分不同dpr下的文本字号。由于手机浏览器对字体显示最小是8px,因此对于小尺寸文字需要采用px为单位,防止通过 rem 转化后出现显示问题。手机淘宝 中的字体使用px为单位,腾讯新闻中的字体使用rem为单位。


http://www.taodudu.cc/news/show-3748304.html

相关文章:

  • Convex Optimization——2.3.2仿射函数
  • 仿射变换函数
  • 数学知识整理:仿射函数(affine function)
  • 机器学习:仿射函数
  • 【机器学习】- 仿射变换/仿射函数
  • 20200813-共轭函数的仿射变化
  • 开集在仿射函数取0的点的微调变号
  • 线性插值c语言函数,CG中线性插值的基础-仿射函数(affine function)的基础知识解释...
  • 仿射函数伸缩平移、两个集合的和与部分和均为凸集
  • 仿射函数和仿射组合
  • 凸优化中凸函数定义、直线与线段、凸集、仿射集合、仿射函数
  • 仿射函数,线性函数以及泰勒公式还有泰勒估算...
  • 仿射函数与线性变换的区别
  • 仿射变换与仿射函数
  • 复合仿射函数的共轭函数推导
  • 凸优化问题定义及其凸函数、凸集、仿射函数相关概念和定义
  • 仿射函数
  • 什么是仿射函数?
  • 华为云交付项目服务器配置表,云服务器设备配置列表
  • 文件上传 华为云服务器,文件上传云服务器
  • 华为云平台部署与管理
  • 云服务器子系统,Linux子系统使用云服务器
  • 华为云服务器默认密码怎么修改,云服务器的默认登录密码怎么修改
  • 华为云弹性云服务器安全性能,华为云弹性云服务器成长秘籍:大话安全组
  • 【华为云原生入门级认证】第 2 章 云原生基础设施之容器技术
  • 华为云-容器化网站部署搭建调整版(亲测可用)
  • 华为云ECS-CentOS8.2部署(Harbor)Docker私有镜像仓库
  • HUAWEI CLOUD Stack 私有云解决方案(HCS)
  • 【华为云原生入门级认证】第 1 章 云原生架构总览
  • 私有云搭建:基于OpenStack 但不止于OpenStack

移动端Web页面适配方案(整理版)相关推荐

  1. 再谈移动端Web屏幕适配

    一个多月前水了一篇移动web屏幕适配方案,当时噼里啪啦的写了一通,自我感觉甚是良好.不过最近又有一些新的想法,和之前的有一些不同. 先说一下淘宝的方案,感觉现在好多的适配方案都是受了它的影响,上周六看 ...

  2. 教你如何用 lib-flexible 实现移动端H5页面适配

    前话 好久没写教程了(可能会误导新手的菜鸟教程( ̄▽ ̄)"). 这是我的github,欢迎前端大大们和我一起学习交流 https://github.com/pwcong 最近入职公司做前端实 ...

  3. 今日头条屏幕适配方案终极版正式发布!

    原文地址: juejin.im/post/5bce68- 以下是 骚年你的屏幕适配方式该升级了! 系列文章,欢迎转发以及分享: 骚年你的屏幕适配方式该升级了!(一)-今日头条适配方案 骚年你的屏幕适配 ...

  4. 全面屏适配方案,终极版,华为隐藏导航栏解决方案

    全面屏适配方案,终极版,华为隐藏导航栏解决方案 参考文章: (1)全面屏适配方案,终极版,华为隐藏导航栏解决方案 (2)https://www.cnblogs.com/lizhanqi/p/93371 ...

  5. 移动端高清适配方案(解决图片模糊问题、1px细线问题)

    移动端高清适配方案(解决图片模糊问题.1px细线问题) 参考文章: (1)移动端高清适配方案(解决图片模糊问题.1px细线问题) (2)https://www.cnblogs.com/superliz ...

  6. 移动端web页面响应式布局(文字、图片、表格)

    移动端web页面响应式布局 絮絮叨叨: 最近被领导抓去写了个前端页面,还要是适应移动端的..还三天要完成..前端小白 的我硬生生刚出来了,这两天正好闲了点,总结总结. 设置meta 写过前端的小伙伴们 ...

  7. Web页面适配移动端方案研究

    源宝导读:由于我们ERP目前大都是在在PC上面运行,大家现在关注移动端比较少,谈到移动端适配时,可能都有些生疏也可能比较好奇.以前做过一些移动端的little项目,那么借助这次分享的机会,和大家一起讨 ...

  8. Web移动端最强适配方案总结,没想到这么好用!

    点击上方的终端研发部,右上角选择"设为星标" 一.前言 在过去的几年时间里,移动端web野蛮生长,智能机的Android阵营和IOS阵营分庭抗礼,随之产生了多个系统版本(系统版本多 ...

  9. 移动端 H5页面适配

    一.基础概念 在了解如何做H5页面适配前,大家都应该把移动端涉及的一些概念搞明白,比如:dpr 是什么意思? 移动端H5解惑-概念术语(一) 二.为什么要做页面适配 2.1 PC端为什么要解决浏览器兼 ...

最新文章

  1. Fertility of Soils:根系C/P计量比影响水稻残根周际酶活的时空动态分布特征
  2. opencart导入导出export/import功能插件
  3. Java基础--二维数组
  4. 0x00000000指令引用的内存不能为written_「深入Java虚拟机」Java内存区域与内存溢出...
  5. 20201010《近代数学》第1节课 笔记
  6. Swift之深入解析Key Paths的功能与应用
  7. TextView 显示图像+文字的方法
  8. python 扫描仪_基于Opencv和Python的多选扫描仪
  9. python多线程编程
  10. git rebase之前需要 commit 才行
  11. java中常量和变量的区别_Java中三种变量
  12. 三种短链接生成源码-iApp源码
  13. 【动态任务-七】Spring整合Cron在线生成表达式(基于bootstrap3自适应样式)
  14. spring之AOP
  15. dp动态规划解题套路 剑指offer 42连续子数组的最大和
  16. 根据题3.9图的公差要求填写题3.9表,并绘出动态公差带图【(σ゚∀゚)σ..:*☆哎哟不错哦】
  17. MAC电脑触摸板手势(提高办公效率)
  18. mysql 统计当个用户从当前时间连续登录天数,以及多用户某时间段,最长连续登录天数查询
  19. Axure RP 9母版使用说明【教程二】
  20. MicroStrain 3DM-GX3-25 ROS 开发

热门文章

  1. vscode git切换其他远程分支
  2. 【Trello】使用指南
  3. iPhone 15全系列即将登场:英国巴克莱银行预测PRO系列售价或涨100到200美元,换来的是游戏效能提升!
  4. 如何选择短信接口平台?
  5. Revit坐标系概念深入理解及应用:内部点、原点、项目基点、测量点、共享坐标系、地理坐标及之间关系和衍生概念操作(详细)
  6. java是编译性语言,解释性语言
  7. linux设置开机自启动(开机启动项)(chkconfig)
  8. linux升级isc bind,bind版本升级的调查流程
  9. 艾美捷胆固醇肉豆蔻酸酯技术信息说明
  10. 编写java程序模拟简单的计算器