您现在的位置:首页 >> 前端 >> 内容

CSS3中使用rem来设置Web页面的字体大小的教程

时间:2017/11/3 10:24:29 点击:

  核心提示:在Web中使用什么单位来定义页面的字体大小,至今天为止都还在激烈的争论着,有人说PX做为单位好,有人说EM优点多,还有人在说百分比方便,以至于出现了CSS Font-Size: em vs. px v...

在Web中使用什么单位来定义页面的字体大小,至今天为止都还在激烈的争论着,有人说PX做为单位好,有人说EM优点多,还有人在说百分比方便,以至于出现了CSS Font-Size: em vs. px vs. pt vs. percent这样的PK大局。不幸的是,仍然有不同的利弊,使各种技术都不太理想,但又无法不去用。真是进也难,退也难呀。

最近在学习em的相关知识的时候,无意之间让我拾得一宝,就是使用rem来设置Web页面的字体大小。让我一下子就来劲了,一口气看完并测试了一回,还真是爽歪歪的呀。师傅说好东西不能吃独食,于我就在这里给大家吹吹这个从没见过的REM。

在详细介绍rem之前,我们先一起来回顾一下我们常用的两种记量单位,也是备受争论的两个:

PX为单位

EM为单位

PX为单位

在Web页面初期制作中,我们都是使用“px”来设置我们的文本,因为他比较稳定和精确。但是这种方法存在一个问题,当用户在浏览器中浏览我们制作的Web页面时,他改变了浏览器的字体大小,这时会使用我们的Web页面布局被打破。这样对于那些关心自己网站可用性的用户来说,就是一个大问题了。因此,这时就提出了使用“em”来定义Web页面的字体。

em为单位

前面也说了,使用是“px”为单位是比较方便,而又一致,但在浏览器中放大或缩放浏览页面时会存在一个问题,要解决这个问题,我们可以使用“em”单位。Richard Rutter’在《How to size text using ems》一文中有做过详细的介绍,追至早一点,Richard Rutter也在《How to Size Text in CSS》中进行过深入的剖析。

这种技术需要一个参考点,一般都是以的“font-size”为基准。比如说我们使用“1em”等于“10px”来改变默认值“1em=16px”,这样一来,我们设置字体大小相当于“14px”时,只需要将其值设置为“1.4em”。

CSS3中使用rem来设置Web页面的字体大小的教程vcrHo7o8L3A+DQo8cD48c3Ryb25nPjEgJmRpdmlkZTsguLjUqsvYtcRmb250LXNpemUgJnRpbWVzOyDQ6NKq16q7u7XEz/HL2Na1ID0gZW3WtTwvc3Ryb25nPjwvcD4NCjxwPtXi0fm1xMfpv/bPwiZsZHF1bzsxLjRlbSZyZHF1bzu/ydLUyscmbGRxdW87MTRweCZyZHF1bzss0rK/ydLUyscmbGRxdW87MjBweCZyZHF1bzujrLvy1d/LtcrHJmxkcXVvOzI0cHgmcmRxdW87o6zX3NauysfSu7j2srvIt7ao1rWjrMTHw7S94r721eLR+bXEzsrM4qOs0qrDtMTj1qq1wMbkuLjUqsvYtcTWtaOs0qrDtMTY1NrIzrrO19PUqsvY1tC2vMq508MmbGRxdW87MWVtJnJkcXVvO6Gj1eLR+dK7wLS/ycTc09ayu8rHztLDx8v50OjSqrXEt723qKGjPC9wPg0KPHA+1eLA787S1rvKx7zytaW1xL3pydzBy9K7uPbV4sG9uPa1pc67tcTKudPDo6y+38zl0ru147XEtPO80r/J0tSyztTEo7o8L3A+DQo8cD5CZXN0IFByYWN0aWNlc7XE1b6zpEt5bGW1xKG2Q1NTIEZvbnQtU2l6ZTogZW0gdnMuIHB4IHZzLiBwdCB2cy4gcGVyY2VudKG3PC9wPg0KPHA+Q29udmVydGluZyBweCBpbnRvIHBlcmNlbnRhZ2UgYW5kIGVtIGZvciByZWxhdGl2ZSBDU1MgZm9udCBzaXplczwvcD4NCjxwPkVtIFZzIFBlcmNlbnQgV2lkdGhzPC9wPg0KPHA+Q1NTOiBVbml0cyBvZiBNZWFzdXJlbWVudDwvcD4NCjxwPkplbm5pZmVyIEt5cm5pbrXEVXNpbmcgUG9pbnRzLCBQaXhlbHMsIEVtcywgb3IgUGVyY2VudGFnZXMgZm9yIENTUyBGb250czwvcD4NCjxwPlJlbc6qtaXOuzwvcD4NCjxwPkNTUzO1xLP2z9ajrMv7zazKsdL9vfjBy9K70KnQwrXEtaXOu6OssPzAqM7Sw8e98czsy/nLtbXEcmVtoaPU2lczQ7nZzfjJz8rH1eLR+cPoyvZyZW21xCZtZGFzaDsmbWRhc2g7JmxkcXVvO2ZvbnQgc2l6ZSBvZiB0aGUgcm9vdCBlbGVtZW50JnJkcXVvOyCho8/Cw+bO0sPHvs3Su8bwwLTP6s+4tcTBy73icmVtoaM8L3A+DQo8cD7HsMPmy7XByyZsZHF1bztlbSZyZHF1bzvKx8/gttTT2sbkuLjUqsvYwLTJ6NbD19bM5bTz0KG1xKOs1eLR+b7Nu+G05tTa0ru49s7KzOKjrL340NDIzrrO1KrL2Mno1sOjrLa809C/ycTc0OjSqtaqtcDL+7i41KrL2LXEtPPQoaOs1NrO0sPHtuC0zsq508PKsaOsvs274bT4wLTO3reo1KTWqrXEtO3O87fnz9Who7b4cmVtysfP4LbU09q4+dSqy9ijrNXi0fm+zdLizrbXxaOsztLDx9a70OjSqtTauPnUqsvYyLe2qNK7uPayzr+81rWjrKOs1Nq4+dSqy9jW0Mno1sO24LTztcTX1szlo6zV4s3qyKu/ydLUuPm+3cT619S8urXE0OijrLTzvNLSsr/J0tSyzr+8z8LNvKO6PC9wPg0KPHA+PGltZyBhbHQ9"这里写图片描述" src="/uploadfile/Collfiles/20171102/2017110216153991.png" title="" />

我们来看一个简单的代码实例:

html {font-size: 62.5%;/10 &pide; 16 × 100% = 62.5%/}

body {font-size: 1.4rem;/1.4 × 10px = 14px /}

h1 { font-size: 2.4rem;/2.4 × 10px = 24px/}

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

浏览器的兼容性

rem是CSS3新引进来的一个度量单位,大家心里肯定会觉得心灰意冷呀,担心浏览器的支持情况。其实大家不用害怕,你可能会惊讶,支持的浏览器还是蛮多的,比如:Mozilla Firefox 3.6+、Apple Safari 5+、Google Chrome、IE9+和Opera11+。只是可怜的IE6-8无法,你们就把他们当透明了吧,我向来都是如此。

不过使用单位设置字体,可不能完全不考虑IE了,如果你想使用这个REM,但也想兼容IE下的效果,可你可考虑“px”和“rem”一起使用,用”px”来实现IE6-8下的效果,然后使用“Rem”来实现代浏览器的效果。就让IE6-8不能随文字的改变而改变吧,谁让这个Ie6-8这么老呢?哈。大家不仿试试,还蛮有意思,说不定这个就是主流的度量单位了。

Tags:CS SS S3 3中 
作者:网络 来源:我用键盘敲出一个世界