美文网首页
【组件模块化6】自适应

【组件模块化6】自适应

作者: 八宝君 | 来源:发表于2018-05-11 10:06 被阅读0次

PC端谈到自适应不大,无非是屏大屏小。但是针对移动端,自适应比较复杂。
两个问题:
1、设计稿是否一份,代码是否一份?
2、所有设备的兼容性是否完美?


自适应

设备太多,安卓和ios各种尺寸不同,怎样让页面随着尺寸大小进行缩放?


像素概念

https://github.com/jawil/blog/issues/21
(摘自以上链接内)
css像素:

image.png
比如我们缩写的px。1px等等就是css像素,逻辑像素也就是css像素。
设备像素:这个和硬件有关,显卡提供像素,是物理像素,一个像素点就是一个像素。而苹果的Retina屏幕,设备像素比是2,一个逻辑像素需要2个物理像素点来表示。
如上图,当设备像素比为1时,2px*2px就是左下角所显示,当设备像素比为2时,2px*2px就是右下角所显示。同样大的地方,里面的物理像素点变得多了。
设备像素比:css像素与物理像素的比值。

viewport

viewport的概念

viewport分哪几类?

分三类:layout viewport、visual viewport、ideal viewport。


viewport

背后蓝色的图就是layout viewport,如果没有width=device-width的话,这个庞大的页面放不下手机有限的窗口。
被裁减出来的就是visual viewport
手机的宽高组成的尺寸就是ideal viewport。

width=device-width做了什么事?

让大图的layout viewport= 手机的ideal viewport,这样的话就做到两个不同的窗口,大小是一样的。这样看起来页面铺满,并且大小是一样的。

rem

rem说明

root element也就是html的标签,所有的单位也就是rem单位的font-size计算的时候,是按照html根标签的尺寸来进行计算。
em: 相对于父级元素;
rem: 相对于html根标签。

如何做到自适应

如何做到自适应图1

左图是5s设计图,设计尺寸,这里的320是css像素,物理像素是 css像素*设备像素比,也就是说这个手机硬件提供的宽是640的物理像素比。

右图,设备像素比是3时,css像素是375,右图的物理像素是1125,左图的按钮大小是20px*20px,在大设备上要自适应,按照线性关系,20px*20px要变成一个倍数相乘,这个倍数就是1125/640,所以这个按钮在右图的大设备上就是(20px) * (1125/640)
但是真正操作的时候不可能所有的都这样进行相乘。
基准像素就是html。不需要所有的设备都去除一下这个基本比例关系。
比如说左图的html的font-size: 40px;
到大尺寸下,font-size: 40px * 1125/640, 的出来一个70.1px的值,然后所有的单位都以rem来设计。这样就得出来一个完整的方案。
px2rem这种可配置插件所得,将设计稿上的css像素自动转换成rem来,这样就无须我们再一个个算了。

相关文章

  • 4-1、css模块化设计

    1、项目设计与原理分析 1、css模块化设计 2、JS组件设计 3、自适应 4、SPA设计 5、构建设计 6、上线...

  • 【组件模块化6】自适应

    PC端谈到自适应不大,无非是屏大屏小。但是针对移动端,自适应比较复杂。两个问题:1、设计稿是否一份,代码是否一份?...

  • 项目设计与原理分析

    一、CSS模块化设计 1、设计原则 2、设计方法 二、JS组件设计 1、设计原则 2、设计方法 三、自适应 1、基...

  • iOS组件化储备

    资料 组件化/模块化 蜂鸟商家版 iOS 组件化 / 模块化实践总结 模块化与解耦 浅析 iOS 应用组件化设计 ...

  • 模块化、组件化与插件化(1)

    模块化、组件化与插件化 组件化 modularization、component 模块化 modularizati...

  • vue项目基建

    路由模块化 , 高频全局组件模块化 权限

  • 前端知识体系(React)

    1、基础知识 如何理解组件化、模块化 如何理解state的渲染机制 组件的生命周期 组件的通信方式 es6的基础知...

  • 蜂鸟商家版 iOS 组件化 / 模块化实践总结

    蜂鸟商家版 iOS 组件化 / 模块化实践总结 蜂鸟商家版 iOS 组件化 / 模块化实践总结

  • 【Vue】组件

    Vue的两大核心 数据驱动 - 数据驱动界面显示 模块化 - 复用公共模块,组件实现模块化提供基础 组件基础 组件...

  • Android组件化和模块化开发

    Android组件化和模块化开发 借鉴网址:https://www.jianshu.com/p/00746e6fb...

网友评论

      本文标题:【组件模块化6】自适应

      本文链接:https://www.haomeiwen.com/subject/wfetdftx.html