84669 人が学習中
152542 人が学習中
20005 人が学習中
5487 人が学習中
7821 人が学習中
359900 人が学習中
3350 人が学習中
180660 人が学習中
48569 人が学習中
18603 人が学習中
40936 人が学習中
1549 人が学習中
1183 人が学習中
32909 人が学習中
rem在设置宽度和高度的时候,该怎么进行计算呢? 比如html{font-size: 62.5%;} 那么font-size:2rem;与font-size:20px是一样的 但是width:20rem与width:200px是不一样的。 所以,当想用rem进行width与height进行设置时,该怎么计算呢?以谁为参照物呢?
rem用来设置字体大小,也可以用于网格布局。rem中的r代表根元素,它的值就是根元素设置的字体大小。在大多数情况下,根元素就是html了。这个单位可以解决em设置字体时,由于继承带来的问题,具体如下:
body { font-size: 14px; } p { font-size: 1.2em; // calculated at 14px * 1.2, or 16.8px }
假设html存在这样的结构:
<body> <p> Test <!-- 14 * 1.2 = 16.8px --> <p> Test <!-- 16.8 * 1.2 = 20.16px --> <p> Test <!-- 20.16 * 1.2 = 24.192px --> </p> </p> </p> </body>
但是用rem能避免
html { font-size: 14px; } p { font-size: 1.2rem; }
这样在上面的那三个嵌套的p的字体大小都是 1.2*14px = 16.8px 了。 在布局中,如下:
.container { width: 70rem; // 70 * 14px = 980px }
参考文章
rem这个单位是相对于根元素的,是可以用来设置width和height的,只是计算的基准是html标签的font-size值,这里建议html的font-size值用px,不要用百分比; 不过呢html的font-size最好是通过js来动态计算一个数值:
rem
width
height
html
font-size
px
js
//- 设置根元素fontSize~ (function (doc, win) { var _root = doc.documentElement, resizeEvent = 'orientationchange' in window ? 'orientationchange' : 'resize', resizeCallback = function () { var clientWidth = _root.clientWidth, fontSize = 20; if (!clientWidth) return; if(clientWidth < 640) { fontSize = 20 * (clientWidth / 320); } else { fontSize = 20 * (640 / 320); } _root.style.fontSize = fontSize + 'px'; }; if (!doc.addEventListener) return; win.addEventListener(resizeEvent, resizeCallback, false); doc.addEventListener('DOMContentLoaded', resizeCallback, false); })(document, window);
其中的rem原理我就不说了,我想说的就是,rem,真的不能用在height和width中, 在height和width中,一般情况下使用百分比就可以了. 在width里面使用rem的话,你会发现, 他计算出来的数值,和你想要的不一样.举个例子吧: 当你在html里面设置的font-size为10px的话,
html{ font-size:10px; } p{ font-size:2rem; //得到的结果是20px 你会微微一笑,艹,你骗我呢. 不急,show u code } p{ height: 2rem; //这时候,请打开你的控制台,观察p的高度,你会发现是24px;TM!!!怎么不是20px呢 }
原理就是, font-size 对于height 和 width 而言最小值是 12px, 而对于font-size而言, 你想设多少,就设置多少。 这个无可厚非。咳咳~~所以综上所述: 在height 里面一般使用 百分比就够了(你整个12px 你自己也不好计算呀,而且如果动态的时候真的给你整个 <12px的,到时候哭都来不及).在font-size里面,最好就使用rem, 因为这个单位是专门为他开发的.
呵呵,rem只是用来设置字体大小,没有谁告诉你rem可以设置width和height
rem用来设置字体大小,也可以用于网格布局。rem中的r代表根元素,它的值就是根元素设置的字体大小。在大多数情况下,根元素就是html了。这个单位可以解决em设置字体时,由于继承带来的问题,具体如下:
假设html存在这样的结构:
但是用rem能避免
这样在上面的那三个嵌套的p的字体大小都是 1.2*14px = 16.8px 了。
在布局中,如下:
参考文章
rem
这个单位是相对于根元素的,是可以用来设置width
和height
的,只是计算的基准是html
标签的font-size
值,这里建议html
的font-size
值用px
,不要用百分比; 不过呢html
的font-size
最好是通过js
来动态计算一个数值:其中的rem原理我就不说了,我想说的就是,rem,真的不能用在height和width中, 在height和width中,一般情况下使用百分比就可以了.
在width里面使用rem的话,你会发现, 他计算出来的数值,和你想要的不一样.
举个例子吧:
当你在html里面设置的font-size为10px的话,
原理就是, font-size 对于height 和 width 而言最小值是 12px, 而对于font-size而言, 你想设多少,就设置多少。 这个无可厚非。
咳咳~~
所以综上所述: 在height 里面一般使用 百分比就够了(你整个12px 你自己也不好计算呀,而且如果动态的时候真的给你整个 <12px的,到时候哭都来不及).
在font-size里面,最好就使用rem, 因为这个单位是专门为他开发的.
呵呵,rem只是用来设置字体大小,没有谁告诉你rem可以设置width和height