WebApp - Rem 是如何实现自适应布局的?(一)

简介: WebApp - Rem 是如何实现自适应布局的?(一)

前言

rem是相对于根元素<html>,这样就意味着,我们只需要在根元素确定一个px字号,则可以来算出元素的宽高。本文讲的是如何使用rem实现自适应。·

rem这是个低调的css单位,近一两年开始崭露头角,有许多同学对rem的评价不一,有的在尝试使用,有的在使用过程中遇到坑就弃用了。但是我对rem综合评价是用来做web app它绝对是最合适的人选之一。


rem是什么?

rem(font size of the root element)是指相对于根元素的字体大小的单位。简单的说它就是一个相对单位。看到rem大家一定会想起em单位,em(font size of the element)是指相对于父元素的字体大小的单位。它们之间其实很相似,只不过一个计算的规则是依赖根元素一个是依赖父元素计算。·

 


rem & html{font-szie} & js控制 之间的关系?

通过 js 控制 html{font-szie} 的大小,而 rem 会根据 html{font-szie} 的大小来自适应。

 


为什么web app要使用rem?

这里我特别强调web app,web page就不能使用rem吗,其实也当然可以,不过出于兼容性的考虑在web app下使用更加能突显这个单位的价值和能力,接下来我们来看看目前一些企业的web app是怎么做屏幕适配的。

 


1、实现强大的屏幕适配布局:

最近iphone6一下出了两款尺寸的手机,导致的移动端的屏幕种类更加的混乱,记得一两年前做web app有一种做法是以320宽度为标准去做适配,超过320的大小还是以320的规格去展示,这种实现方式以淘宝web app为代表作,但是近期手机淘宝首页进行了改版,采用了rem这个单位,首页以内依旧是和以前一样各种混乱,有定死宽度的页面,也有那种流式布局的页面。

我们现在在切页面布局的使用常用的单位是px,这是一个绝对单位,web app的屏幕适配有很多中做法,例如:流式布局、限死宽度,还有就是通过响应式来做,但是这些方案都不是最佳的解决方法。

例如流式布局的解决方案有不少弊端,它虽然可以让各种屏幕都适配,但是显示的效果极其的不好,因为只有几个尺寸的手机能够完美的显示出视觉设计师和交互最想要的效果,但是目前行业里用流式布局切web app的公司还是挺多的,看看下面我收集的一些案例:


image.png

image.png

image.png

image.png


上面的网站都是采用的流式布局的技术实现的,他们在页面布局的时候都是通过百分比来定义宽度,但是高度大都是用px来固定住,所以在大屏幕的手机下显示效果会变成有些页面元素宽度被拉的很长,但是高度还是和原来一样,实际显示非常的不协调,这就是流式布局的最致命的缺点,往往只有几个尺寸的手机下看到的效果是令人满意的,其实很多视觉设计师应该无法接受这种效果,因为他们的设计图在大屏幕手机下看到的效果相当于是被横向拉长来一样。·

流式布局并不是最理想的实现方式,通过大量的百分比布局,会经常出现许多兼容性的问题,还有就是对设计有很多的限制,因为他们在设计之初就需要考虑流式布局对元素造成的影响,只能设计横向拉伸的元素布局,设计的时候存在很多局限性。

目录
相关文章
|
7月前
|
前端开发 JavaScript
移动端webApp自适应布局解决方案
移动端webApp自适应布局解决方案
67 0
|
Web App开发 JavaScript
WebApp - Rem 自适应 JS 之精简版(flexible.js)
WebApp - Rem 自适应 JS 之精简版(flexible.js)
647 0
WebApp - Rem 自适应 JS 之精简版(flexible.js)
|
Web App开发 编解码 JavaScript
WebApp - Rem 是如何实现自适应布局的?(二)
WebApp - Rem 是如何实现自适应布局的?(二)
296 0
WebApp - Rem 是如何实现自适应布局的?(二)
|
前端开发 JavaScript
移动端webApp自适应布局解决方案
移动端webApp自适应布局解决方案
294 0
移动端webApp自适应布局解决方案
|
移动开发 JavaScript 前端开发
用开发本地tcpip程序的思路开发webapp
本文关键字:the headless cms,b/s web to c/s web, headless webapp backend.
475 0
用开发本地tcpip程序的思路开发webapp
|
Web App开发 监控 Serverless
十分钟上线-基于函数计算开发 Restful web api & asp.net core web app
.NET Core是一个开源通用的开发框架,支持跨平台, 阿里云函数计算推出了 dotnetcore2.1 runtime, 使用 C# 编写 serverless 函数, 除了很好地支持通常意义上的函数外, 还可以基于函数计算开发 asp.
5758 0
|
Web App开发 JavaScript 测试技术
手机端webApp开发本地调试环境搭建
背景 手机端WebApp开发阶段,用chrome devtools模拟手机设备,很多兼容性问题不能提前发现。考虑到很多同学在开发时不便经常发版,方便设备可通过ip地址直接在移动端调试,提前发现问题,且不用发版到 test/pre 环境。
1808 0
|
JavaScript Java C#
C#开发移动应用系列(2.使用WebView搭建WebApp应用)
原文:C#开发移动应用系列(2.使用WebView搭建WebApp应用) 前言 上篇文章地址:C#开发移动应用系列(1.环境搭建)   嗯..一周了 本来打算2天一更的 - - ,结果 出差了..
1361 0
|
JavaScript 前端开发 API
2018开发最快的Webapp框架--BUI交互框架
这是你看下去的动力, 我用BUI仿照QQ的手机截图做出来的一个demo, 包含QQ的常见交互, 侧滑边栏,TAB切换,侧滑列表,下拉刷新,下拉菜单,弹窗搜索等交互操作, 这几种操作很多UI框架都有, 但几种操作结合在一块, 不同方向之间的交互冲突, 不是那么简单的事情. 使用BUI耗时1天.
2100 0
|
数据采集 JavaScript 中间件