web前端课程技术分享之关于rem布局和vw布局的理解

通过rem来实现响应式布局:

首先来看,什么是rem单位。rem是一个灵活的、可扩展的单位,由浏览器转化像素并显示。与em单位不同,rem单位无论嵌套层级如何,都只相对于浏览器的根元素(HTML元素)的font-size。默认情况下,html元素的font-size为16px,

rem单位都是相对于根元素html的font-size来决定大小的,根元素的font-size相当于提供了一个基准,当页面的size发生变化时,只需要改变font-size的值,那么以rem为固定单位的元素的大小也会发生响应的变化。 因此,如果通过rem来实现响应式的布局,只需要根据视图容器的大小,动态的改变font-size即可。

rem2px和px2rem:

如果在响应式布局中使用rem单位,那么存在一个单位换算的问题,rem2px表示从rem换算成px,这个就不说了,只要rem乘以相应的font-size中的大小,就能换算成px。更多的应用是px2rem,表示的是从px转化为rem。

比如给定的视觉稿为750px(物理像素),如果我们要将所有的布局单位都用rem来表示,一种比较笨的办法就是对所有的height和width等元素,乘以相应的比例,现将视觉稿换算成rem单位,然后一个个的用rem来表示。另一种比较方便的解决方法就是,在css中我们还是用px来表示元素的大小,最后编写完css代码之后,将css文件中的所有px单位,转化成rem单位。

rem 布局的缺点:

通过rem单位,可以实现响应式的布局,特别是引入相应的postcss相关插件,免去了设计稿中的px到rem的计算。rem单位在国外的一些网站也有使用,这里所说的rem来实现布局的缺点,或者说是小缺陷是:在响应式布局中,必须通过js来动态控制根元素font-size的大小。也就是说css样式和js代码有一定的耦合性。且必须将改变font-size的代码放在css样式之前。

通过vw来实现自适应

什么是vw?

css3中引入了一个新的单位vw,与视图窗口有关,vw表示相对于视图窗口的宽度,除了vw,还有vmin和vmax两个相关的单位。各个单位具体的含义如下:

单位含义vw相对于视窗的宽度,视窗宽度是100vw相对于视窗的高度。

vw和%的区别为:

单位含义%大部分相对于祖先元素,也有相对于自身的情况(border-radius、translate等)vw/vh相对于视窗的尺寸

从对比中我们可以发现,vw单位与百分比类似,单确有区别,前面我们介绍了百分比单位的换算困难,这里的vw更像"理想的百分比单位"。任意层级元素,在使用vw单位的情况下,1vw都等于视图宽度的百分之一。

vw单位换算:

同样的,如果要将px换算成vw单位,很简单,只要确定视图的窗口大小(布局视口),如果我们将布局视口设置成分辨率大小,比如对于iphone6/7 375*667的分辨率,那么px可以通过如下方式换算成vw:

1px = (1/375)*100 vw

vw单位的兼容性:

绝大多数的浏览器支持vw单位,但是ie9-11不支持,vw单位在绝大部分高版本浏览器内的支持性很好,但是opera浏览器整体不支持vw单位,如果需要兼容opera浏览器的布局,不推荐使用vw。

原文地址:https://www.cnblogs.com/qianfeng123/p/10065618.html

时间: 2024-10-08 07:38:21

web前端课程技术分享之关于rem布局和vw布局的理解的相关文章

web前端课程技术总结Node.js 使用方法及相关方法分析

Node.js 使用方法及相关方法分析 首先我们要了解什么是node.js? 官方解释是:node.js是一个基于Chrome v8引擎的javascript 运行环境.Node.js使用了一个事件驱动.非阻塞式 I/O的模型,使其轻量又高效.他是由c++编写的 所以速度很快 简单来说 就是一个js 的运行环境,所以他开发用的语言是js语言 ,通过node去编译你的js文件 node.js 的安装 1)npm i -g 全局(电脑只需安装一次) 2)npm i --save -dev /-D/(

web前端课程技术内容之如何做一个简单的手机端页面的翻页

[如何做一个简单的手机端页面的翻页] 第一步:创建移动端页面内 HTML + CSS [注]可用弹性布局 但需要注意的是 外层盒子的定位 第二步: 思考问题 要实现怎样的效果? 1. 手指滑动时触发事件[左右]两个方向 2.点击footer部分的下标实现切换效果 3.点击footer部分的下标实现下标颜色变化 第三步:编写JS代码 添加监听事件 document.addEventListener('DOMContentLoaded',function(){ 创建一个数组用于调用数组属性值 或者

教你正确的学习web前端开发技术的方法分享

近几年IT业可谓是发展火热,而且新生了很多的职业.例如安卓开发工程师.iOS开发工程师.在这众多的新生职业中备受瞩目的当属web前端工程师了,前端工程师薪资高,就业发展前景好,更多的人选择了这一职业成为自己的发展方向,想要自己成为一名合格的web前端工程师,web前端开发学习路线图值得大家去看看. 以上这份学习路线课程大纲,挺适合大家借鉴来学习的.web前端课程包括了几个方面的内容: 1.学习HTML,这是最简单,最基本的是要掌握div,formtable.Ulli.P.跨度.字体这些标签,这些

web前端面试经历分享

十天前,我还在纠结这个暑假到底是呆在实验室研究技术好还是找一份实习见识世面好,而现在我已经接到offer准备工作了.这几天真是累得够呛,一方面需要拼命准备期末考试,另一方面,需要往公司里面跑接受面试.欣慰的是,我不仅顺利通过了公司的面试,还认识了好几个厉害的师兄,自己的人生规划也稍有改变. 开始的纠结是有原因的,主要是考虑到了一下几个方面: 第一,作为一个大二的学生有必要这么着急跑出去找实习么? 第二,去找实习主要目的应该是赚钱还是学习技术? 第三,难得有那么两个月的时间,就这样去工作了会不会浪

学习web前端课程必掌握技能总结

前端开发是近几年来兴起的新兴行业,是IT行业中要求相对较低的职业,同时就业薪资相对较高,很多人通过参加web前端培训实现了高薪就业梦,那web前端课程到底包括哪些技术呢? Web前端开发技术包括三个要素:HTML.CSS和JavaScript,但随着RIA的流行和普及,Flash/Flex.Silverlight.XML和服务器端语言也是前端开发工程师应该掌握的.随着时代的发展,前端开发技术的三要素也演变成为现今的:html5,css3,jquery. 学习html,这个是最简单的,也是最基础的

萧井陌WEB前端课程

详情请交流  QQ  709639943 00.萧井陌WEB前端课程 00.微信小程序 美甲商城 00.微服务的入门级微框架Spring Boot快速入门 00.基于java的微信公众号二次开发视频教程 00.leetcode 算法 面试 00.北风网 零基础到数据(大数据)分析专家-首席分析师 00.快速上手JMeter 00.Jmeter 00.2017年Java web开发工程师成长之路 00.R语言速成实战 00.R语言数据分析实战 00.Python+Django+Ansible Pl

好程序员web前端学习路线分享了解AJAX是什么

好程序员web前端学习路线分享了解AJAX是什么首先是服务器 什么是服务器:咱们的页面来源于服务器:实例(在phpnwo上面存放一个页面), 咱们把页面放在互联网的服务器上,就有了自己的网站了. 1.异步同步 生活中的同步: 生活中的异步: 在JavaScript语言中,同步和异步的概念刚好相反. 这JavaScript中同步就是:你不执行完上面的代码,那么下面的代码你就别执行:一步一步执行,这就是同步. 异步就是可以一块执行的代码: 进程的概念 进程≠程序 程序从开始到结束的一次执行过程叫做进

好程序员web前端学习路线分享前端基础面试题

好程序员web前端学习路线分享前端基础面试题,希望对大家有所帮助. 1.HTML语义化的理解? 答案:HTML语义化就是让页面的内容结构化,便于对浏览器.搜索引擎解析:在没有样式CSS的情况下也以一种文档格式显示,并且是容易阅读的:搜索引擎的爬虫依赖于标记来确定上下文和各个关键字的权重,利于SEO:使阅读源代码的人对网站更容易将网站分块,便于阅读维护理解. 2.父元素透明,但是又不影响子元素的透明度怎么实现? 答案:方法一:用rgba 方法二:再加上一层与父元素同级的div装载子元素,定位到子元

【转】Web前端黑客技术揭秘{笔记}

原文 http://www.cnblogs.com/r00tgrok/articles/Web-Hacking.html 前些日子看完了白帽子讲Web安全,当时就PHP安全一 章做了点小笔记,感觉看书还是留下点东西比较好.翻开Web前端黑客技术揭秘一书决定要做笔记,但是这样下来其实进度就比较慢了,敲字做笔记绝对远比看书 来的慢.有时候上午看完的内容做笔记时要花一天时间,一方面是要敲字,另一方面是自己只从书上摘录部分内容有时候需要将其串起来,还有就是碰上自己想发两 句言也会拖慢进度.总之现在书是看