Web前端响应式开发新宠儿 rem
来源:互联网 发布:儿童定位器哪个好 知乎 编辑:程序博客网 时间:2024/05/04 18:11
在Web开发中使用什么单位来定义页面的字体大小,至今天为止都还在激烈的争论着,有人说px好,有人说em的优点多,,也有人说百分比方便,但说到底,都是各有利弊,但在开发中又不得不用。那么有什么好的解决方案呢,说到这就要进入本文的正题 CSS3中引入的单位rem。
那么rem是什么?
rem(font size of the root element)是指相对于根元素的字体大小的单位。简单的说它就是一个相对单位。看到rem大家一定会想起em单位,em(font size of the element)是指相对于父元素的字体大小的单位。它们之间其实很相似,只不过一个计算的规则是依赖根元素一个是依赖父元素计算。
rem的优点
这个单位与em有什么区别呢?区别在于使用rem为元素设定字体大小时,仍然是相对大小,但相对的知识HTML根元素。这个单位可谓集相对大小和绝对大小的优点于一身,通过它可以做到只修改根元素就成比例地调整所有字体大小。
em单位是相对于父节点的font-size,会有一些组合的问题,而rem是相对于根节点(或者是html节点),也就是说你可以在html节点定义一个单独的字体大小,然后其他元素使用rem相对于这个字体的百分比进行设置,这样就意味着,我们只需要在根元素确定一个参考值,在根元素中设置多大的字体,这完全可以根据自己的需求
浏览器兼容性
除了IE6-8无法兼容外几乎适用于市面上所有浏览器。
rem的使用
在我看来rem的主要作用就是为了让元素在不同屏宽下相对于设备等比例显示,在实际开发中,我们可以按照一个标准尺寸进行设计,使用rem单位进行网页的制作,然后控制根节点的font-size实现完美响应。
好了上面全是废话,下面我给出两种方案
1.统计自己网站有哪些主流的屏幕设备,然后去针对那些设备去做media query设置根节点html的font-size实现适配,例如下面这样:
html { font-size : 20px;}@media only screen and (min-width: 401px){ html { font-size: 25px !important; }}@media only screen and (min-width: 428px){ html { font-size: 26.75px !important; }}@media only screen and (min-width: 481px){ html { font-size: 30px !important; }}@media only screen and (min-width: 569px){ html { font-size: 35px !important; }}@media only screen and (min-width: 641px){ html { font-size: 40px !important; }}
2.通过JS实现全适配
function adaptable(){ var pw = $(window).width(); var size = pw*16/350; $('html').css('font-size',size+'px');}
方案一当然是不能所有设备全适配,但是用JS可以实现全适配。具体用哪个就要根据自己的实际工作场景去定了。
1 0
- Web前端响应式开发新宠儿 rem
- AJAX Web开发的新宠儿
- 移动WEB开发---用rem开发响应式设计
- 响应式开发中的rem
- 用rem来做响应式开发
- 用rem来做响应式开发
- 用rem来做响应式开发
- 用rem来做响应式开发
- 响应式前端开发
- Web前端面试指导(四十四):什么是响应式开发?
- rem 响应式布局
- 响应式rem介绍
- WEB前端 -- px、em、rem
- 网络新宠儿EyeOS和YouOS:Web版操作系统
- 移动wapapp 用rem来做响应式开发
- rem 产生的小数像素问题---修复响应式开发
- 手机app响应式开发rem的使用及配置
- 前端开发,响应式布局。
- 2016 杭州云栖大会随笔
- Jsp之9种常用内置对象浅析(二)
- 暴力
- shell杀掉之前启动的jar工程,并重新启动该工程
- php用户注册表单验证
- Web前端响应式开发新宠儿 rem
- 11、Spring MVC 之 Build URIs
- weblogic docker容器化之自动发布
- Android apk卸载流程
- Java类说明
- eclipse上 junit环境搭建
- Java程序开发
- Java学习-数组的定义及其基本方法语法(1)
- 线程syncronized(Object)的 使用