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
原创粉丝点击