CSS3中新的字体单位rem
前段时间无意中在word Press 主题中接触到一种字体单位rem, 当时 我就很好奇,毕竟以前没有见过,于是我马上查找资料,并测试了一回.
众所周知在web中有很多字体单位(font -s ize)较常见的有em,px,让我们对比一下这两种单位:
px是 绝对值 ,准确而稳定.但是它的 改变 会影响页面布局.
em是相对值,它以父元素的大小为基准单位,来计算大小.所以很难 把握 .
考虑到这么多字体单位的优缺点,在CSS3中rem诞生了.rem也是相对单位(rem=root em)很明显rem是由em变化而来, 或者 说rem是em的升级版,具体来历.我们就不要去追究了,从字体表面上看,它就是这么回事.
root em,就是相对于根目录的em而不是相对于父元素,也就是说,它虽然是绝对值,但是只是相对于根目录来说也就是ht ML ,它不会随着其它元素的改变而改变.也就是说,我们只要设定html的 文字大小 就可以了.而 不用 考虑其它 因素 .
而且他还具有非常好的支持Ch rom e,Firefox,Safari, opera ,IE9+.IE6,7,8就只能使用px或者em了.
XM L/HTML Code 复制内容到剪贴板
html{&nbs p; font- Size: 62.5%; }
为什么要这么设置呢?因为网页上的字体默认是16px,而16px的62.5%就是10px;也就是说这样的活1rem就等于10px,这个对于我们来说是非常棒的,font-size:1.2rem,当然为了兼容IE的低级版本还要写font-size:12px,别忘了要写在rem的前面.
在这里我要提到 一点 的就是,假如你要是用rem来设置行高, 边距 之类的单位.请在html中加入这么一句话:- webkit -t ext-size-adjust:none;来消除webk IT 的默认属性.否则在其它的地方rem不是以根目录作为基准值了.
canvas无法使用rem单位的解决 方案
我们在使用canvas时需要设置 画布 的大小,即设置canvas标签的width,h ei ght属性。
XML/HTML Code 复制内容到剪贴板
< canvas width = "200px" height = "200px" > </ canvas >
在移动端,画布的大小要根据屏幕的大小进行适配,我们一般采用rem结合 媒体查询 的方式。使用canvas时就遇到遇到一些问题:
canvas的width属性不支持rem单位(如果使用样式当然支持rem,但注意canvas的width属性与style中的width是 有区别 的),如下
CSS Code 复制内容到剪贴板
<canvas width = "2.5rem" height = "2.5rem" ></canvas>
translate方法传参是坐标位置,不带单位,如ctx.translate(10,10);
适配屏幕是必须的,但如何解决?用最原始的百分比布局就可以:
JavaScript Code 复制内容到剪贴板
//获取屏幕的 宽 度 VAR clientWidth = document.documentElement.clientWidth; //根据设计图中的canvas画布的占比进行设置 var canvasWidth =  ;m ath.floor(clientWidth*200/720); canvas. setattribute ( 'width' ,canvasWidth+ 'px' ); canvas.setAttribute( 'height' ,canvasWidth+ 'px' ); //translate方法也可以直接传入像素点坐标
总结
以上是 为你收集整理的 轻松掌握CSS3中的字体大小单位rem的使用方法 全部内容,希望文章能够帮你解决 轻松掌握CSS3中的字体大小单位rem的使用方法 所遇到的问题。
如果觉得 网站内容还不错, 推荐好友。
查看更多关于轻松掌握CSS3中的字体大小单位rem的使用方法的详细内容...