1. 适配问题

移动设备屏幕尺寸不一样,不同型号的手机会有不同大小的屏幕,不同型号的平板也是,就算是我们的PC端也是会有不同大小的屏幕。将在PC端写好的饿页面直接拿到移动端去显示会是怎样的?默认不会出现滚动条,但是会出现缩放。

解决方案:
在《京东商城》移动站中用的是百分比自适应布局,也就是流式布局。同时,需要对移动端的viewport视口进行设置,就会达到适配的目的。

2. 流式布局

流式布局就是百分比布局,非固定像素,内容会根据窗口的大小向两侧填充,可以理解成是流动的布局,这样的布局称为流式布局。

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>流式布局</title><style>body {margin: 0;padding: 0;}.box {background-color: antiquewhite;width: 100%;  /*默认就是100%*/}</style>
</head>
<body><div class="box">好好学习天天写代码!写好代码去看李易峰!好好学习天天写代码!写好代码去看李易峰!好好学习天天写代码!写好代码去看李易峰!好好学习天天写代码!写好代码去看李易峰!好好学习天天写代码!写好代码去看李易峰!好好学习天天写代码!写好代码去看李易峰!好好学习天天写代码!写好代码去看李易峰!好好学习天天写代码!写好代码去看李易峰!好好学习天天写代码!写好代码去看李易峰!好好学习天天写代码!写好代码去看李易峰!好好学习天天写代码!写好代码去看李易峰!好好学习天天写代码!写好代码去看李易峰!好好学习天天写代码!写好代码去看李易峰!好好学习天天写代码!写好代码去看李易峰!好好学习天天写代码!写好代码去看李易峰!好好学习天天写代码!写好代码去看李易峰!好好学习天天写代码!写好代码去看李易峰!好好学习天天写代码!写好代码去看李易峰!好好学习天天写代码!写好代码去看李易峰!好好学习天天写代码!写好代码去看李易峰!好好学习天天写代码!写好代码去看李易峰!好好学习天天写代码!写好代码去看李易峰!好好学习天天写代码!写好代码去看李易峰!好好学习天天写代码!写好代码去看李易峰!好好学习天天写代码!写好代码去看李易峰!好好学习天天写代码!写好代码去看李易峰!好好学习天天写代码!写好代码去看李易峰!好好学习天天写代码!写好代码去看李易峰!好好学习天天写代码!写好代码去看李易峰!好好学习天天写代码!写好代码去看李易峰!</div></body>
</html>

3. 视觉窗口viewport

将PC端写好的页面怎么展示在移动端?借助浏览器的手机模拟器。

viewport是移动端特有的,这是一个虚拟的区域,用来承载网页。PC端的页面直接就承载在浏览器窗口里面,而移动端多出了这样一个虚拟区域,用它来承载网页。在移动端,它们之间的关系是:浏览器承载viewport,viewport承载网页。

存在的问题: 将写好的页面放在移动端显示,会出现缩放的现象,之前的字体变小了,如何解决这个问题?---- 需要一个适配方案。

  1. 适配要求:

    1. 网页宽度必须和浏览器保持一致。
    2. 默认显示的缩放比例要和PC端保持一致(缩放比例是1.0)
    3. 不允许用户自行缩放网页

满足上述的要求,就达到了适配,是国际上通用的适配方案,标准的移动端适配方案。

  1. 适配设置
    如果什么设置都没有,使用的就是viewport的默认设置,想要达到适配要求,就要去设置viewport。
<meta name="viewport">

书写位置:在head里面并且应该紧跟着编码设置,是为了保证能够优先加载。

  1. viewport的功能

    1. width可以设置宽度,height可以设置高度
    2. initial-scale可以设置默认的缩放比例
    3. user-scalable可以设置是否允许用户自行缩放
    4. maximum-scale可以设置最大缩放比例,minimum-scale可以设置最小缩放比例
<meta name="viewport" content="">

其中的content就可以使用以上参数。

<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">

表示这个viewport的宽度是设备的宽度,默认的缩放比例是1.0,并且不允许用户自动缩放。这个就是国际上标准的适配方案。创建标准适配方案的快捷键:meta:vp

4. 非主流适配方案:了解。

<meta name="viewport" content="width=device-width, initial-scale=0.5, maximum-scale=0.5, minimum-scale=0.5, user-scalable=no">

表示缩小一半。原网页的宽度就是现在设备宽度的2倍。

<meta name="viewport" content="width=device-width, initial-scale=0.3333333333, maximum-scale=0.3333333333, minimum-scale=0.333333333, user-scalable=no">

表示缩小到原来的1/3。原网页的宽度就是现在设备宽度的3倍。
以上是m.taobao.com在两个不同的移动端设备上的适配,为什么比例不一样?依据是什么?屏幕像素比。

  1. 非主流适配方案的特点:

    1. 页面的真实尺寸会比在设备上的尺寸要大几倍。
      比如:iPhone4的设备宽度是320px,则它的网页尺寸是640px
    2. 缩放操作:有2倍的,有3倍的 ,这个倍数与屏幕像素比有关系。
  2. 理解像素: 我们之前用的px指的是页面的尺寸单位,而这里说的屏幕像素指的是物理像素或者像素点。物理像素就是设备显示屏的最小可视颗粒的大小,现在有高清显示屏,视网膜屏,retina屏,基本都是肉眼不可见了。这样的情况下,显示的效果提高了,但是在显示同等质量的图片时会出现模糊效果。在高清显示屏中图片可能会失真。

在屏幕像素比高的设备,图片(非矢量)显示会模糊。屏幕像素比就是指:一个px的宽度能够放几个物理像素。这种非主流的适配方案就是为了提高网页的清晰度,即根据屏幕像素比来缩放网页。但是这样的适配方案非常高,一般使用的还是标准的适配方案。

移动web的适配问题相关推荐

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

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

  2. 移动端Web页面适配方案(整理版)

    @(概述)[基本概念|百分比|rem|vw/vh|响应式设计] 移动端web页面的开发,由于手机屏幕尺寸.分辨率不同,或者需要考虑横竖屏问题,为了使得web页面在不同移动设备上具有相适应的展示效果,需 ...

  3. Web App适配iPhoneX

    前言 Iphone每次退出新尺寸的手机都会掀起一番适配风波,这次没有下巴但有刘海的iPhoneX更是如此,网传横屏下的适配动画更是令不少人汗颜. 其实对于Native App来说,适配并不算困难(当然 ...

  4. 移动web开发适配rem

    移动的meta标签 <meta  name="viewport" content="width=device-width, initial-scale=1,user ...

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

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

  6. 前端适配:移动端/web端适配方案

    科普: rem rem是CSS3新增的一个相对单位(root em,根em)这个单位与em有什么区别呢? 区别在于 1.使用rem为元素设定字体大小时,仍然是相对大小,但相对的只是HTML根元素. 2 ...

  7. 移动web开发适配秘籍之rem

    移动web开发中我们一定会遇到要处理适配的问题,这里选择rem这一方案. 待续...

  8. 移动端web自适应适配布局解决方案

    100%还原设计图,要注意: 看布局,分析结构. 感觉难点在于: 1.测量精度(ps测量数据): 2.文字的行高. 前段时间写个移动端适配的页面(刚接触这方面),查了一些资料,用以下方法能实现: 1. ...

  9. Web移动适配笔记(ing)

    1.rem适配法 - 文字流式,控件弹性,图片缩放 >物理像素(physical pixel):设备上每一个用于显示的像素单元,固定不变,以'pt'为单位 >设备独立像素(density- ...

最新文章

  1. 几个清华和哈工大学霸的公众号,值得学习!
  2. UILabel的自适应宽高
  3. java 复制一个数组_浅谈Java中复制数组的方式
  4. poj1426(dfs)
  5. Docker 部署ELK 日志分析
  6. android自定义url协议,Android自定义URL方案…?
  7. Notepad++中的高级查找
  8. java怎么实现同步到微博功能_新浪微博信息站外同步的完整实现
  9. 【Java】自编时间相关常用函数
  10. Linux学习笔记-消息队列概念
  11. springboot整合rpc远程调用_SpringCloud—RPC远程调用
  12. 【好文链接】什么是光流
  13. oracle条件批量更新表数据
  14. ajax验证作用,通过正则表达式使用ajax检验注册信息功能
  15. 后台管理系统 - 权限设计
  16. SPSS学习(二)作图
  17. ramda 函数 logic
  18. 如何选择和阅读科技论文
  19. vps一键测速脚本,包含vps配置测试、速度测试和回程路由测试
  20. teradata中no more spool space

热门文章

  1. 分布式面试 - 如何基于 dubbo 进行服务治理、服务降级、失败重试以及超时重试?
  2. 【C语言】创建一个函数,并调用比较三个数的大小
  3. C#LeetCode刷题之#860-柠檬水找零(Lemonade Change)
  4. golang-gui编程
  5. python标准库之smtplib,poplib,imaplib,smptd
  6. python标准库之logging
  7. 136_Power BI 自定义矩阵热力图
  8. html 比 htm 的载入速度快,htm和html
  9. android中显示提示图标在edittext左侧,设置图标的大小,王立平--EditText实现单行显示,左側图标,提示信息...
  10. ubuntu pycharm设置快捷图标_这些Ubuntu中的小技巧,你知道吗?