首页 >web前端 >css教程 > 正文

css3中的rem怎么用

原创2021-07-14 10:18:040939

rem是一个相对大小的值,相对于html元素字体大小的单位,语法格式为“元素:数字+rem”。rem改变了浏览器的字体大小,这时会使用我们的Web页面布局被打破。

本教程操作环境:windows7系统、CSS3&&HTML5版、Dell G3电脑。

css3新增了相对单位 rem ,使用rem同em一样皆为相对字体大小单位,是一个相对单位,相对根元素字体大小的单位,再直白点就是相对于html元素字体大小的单位。

优点:这样在计算子元素有关的尺寸时,只要根据html元素字体大小计算就好。不再像使用em时,得来回的找父元素字体大小频繁的计算,根本就离不开计算器。

rem为单位

CSS3的出现,他同时引进了一些新的单位,包括我们今天所说的rem。在W3C官网上是这样描述rem的——“font size of the root element” 。下面我们就一起来详细的了解rem。

rem是相对于根元素<html>,这样就意味着,我们只需要在根元素确定一个参考值,在根元素中设置多大的字体,这完全可以根据您自己的需,大家也可以参考下图:

@QMCBEXEFL]MJ7%_ZHS5RUI.png

下面再来看一个简单的实例:

html {font-size: 62.5%;/*10 ÷ 16 × 100% = 62.5%*/}
body {font-size: 1.4rem;/*1.4 × 10px = 14px */}
h1 { font-size: 2.4rem;/*2.4 × 10px = 24px*/}

我在根元素<html>中定义了一个基本字体大小为62.5%(也就是10px。设置这个值主要方便计算,如果没有设置,将是以“16px”为基准 )。从上面的计算结果,我们使用“rem”就像使用“px”一样的方便,而且同时解决了“px”和“em”两者不同之处。

rem的使用

首先我们要加入这个标签:

<meta name="viewport" content="initial-scale=1,maximum-scale=1, minimum-scale=1">

具体意思如下:

initial-scale - 初始的缩放比例 minimum-scale - 允许用户缩放到的最小比例 maximum-scale - 允许用户缩放到的最大比例

然后再设置html的font-size:

// resize 窗口大小发生改变的时候才会触发的,第一次加载时不会触发
var resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize',
    // 手机屏幕是否反转orientationchange
    window.addEventListener(resizeEvt, setFontSize, false); // IE 谷歌
document.addEventListener('DOMContentLoaded', setFontSize, false); //火狐
function setFontSize() {
    var cWidth = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
    var basicNum = 200;
    var htmlFontSize = basicNum * (cWidth / 设计稿宽度);
    document.documentElement.style.fontSize = htmlFontSize + 'px';
}

一般设计稿的宽度是750,在开发过程中我们以iphone6/7/8为基准,那么html的font-size算出来应该是200*(375/750)=100px;所以若在设计稿中有一个width为200px的box。我们需要设置为他的宽为(200/100)rem;所以这就是我建议basicNum设置为200的原因,因为这样算的话简单。

var htmlFontSize=basicNum*(cWidth/设计稿宽度);

可以看出,屏幕尺寸越宽,根html的font-size越大。由于其他元素都是

以它为依据的所以能够达到自适应。

浏览器的兼容性

rem是CSS3新引进来的一个度量单位,大家心里肯定会觉得心灰意冷呀,担心浏览器的支持情况。其实大家不用害怕,你可能会惊讶,支持的浏览器还是蛮多的,比如:Mozilla Firefox 3.6+、Apple Safari 5+、Google Chrome、IE9+和Opera11+。

不过使用单位设置字体,可不能完全不考虑IE了,如果你想使用这个REM,但也想兼容IE下的效果,可你可考虑“px”和“rem”一起使用,用"px"来实现IE6-8下的效果,然后使用“Rem”来实现代浏览器的效果。

推荐学习:css视频教程

以上就是css3中的rem怎么用的详细内容,更多请关注php中文网其它相关文章!

php中文网最新课程二维码

声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理

  • 相关标签:rem
  • 相关文章

    相关视频


    网友评论

    文明上网理性发言,请遵守 新闻评论服务协议

    我要评论
  • 专题推荐

    作者信息

    醉折花枝作酒筹

    飞花飘絮,霓裳翩翩舞,几多情愫心飞扬。

    最近文章
    css如何设置指定网格的大小和位置411
    css如何定义网格线大小1120
    教你一招搞定css背景图的大小790
    推荐视频教程
  • CSS的美化功能CSS的美化功能
  • HTML/CSS技术小知识每日分享HTML/CSS技术小知识每日分享
  • CSS3 极速入门CSS3 极速入门
  • 让布局像5G一样快:CSS Grid网格布局让布局像5G一样快:CSS Grid网格布局
  • 新独孤九贱之:CSS3 必知内容新独孤九贱之:CSS3 必知内容
  • 视频教程分类