亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

關于px,em,rem的那點事

標簽:
Html/CSS CSS3

px
之前做pc端切图的时候一直在使用px作为单位,那么px是什么呢,px即pixel,相对长度单位,是相对于显示器屏幕分辨率而言的。
em
其实我并没有用过这个em,只做过demo测试(=。=)em是相对长度单位。相对于当前对象内文本的字体尺寸。如当前对行内文本的字体尺寸未被人为设置,则相对于浏览器的默认字体尺寸。浏览器的默认字体尺寸大家都知道是16px,那么要用em作为单位来设置一个p标签的字体大小为 32px 时,就是p {font-size: 2em;},好接下来在这个p标签中有一个a标签,你要给这个a标签也设置32px大小的字体,那么代码为p a {font-size: 1em}才对,因为em值不是固定不变的,会继承父元素的字体大小。所以用起来会感觉怪怪的。
rem
后来做移动端接触到了rem,rem(root element),这个单位长的跟em挺像的,em是相对于父元素而言,而rem是相对于页面根元素而言的,所以只需要给html设定一个值。小伙伴曾经给过我一个方法供大家参考。

function rem() {
    var w = Math.min(document.documentElement.getBoundingClientRect().width, 500);
    document.getElementsByTagName('html')[0].style.fontSize = w * 100 / 320 + 'px';
}
rem();
window.onresize = function() {
    rem();
};

现在看这段js,如果你的手机是5s,那么 w 这个值就是320,那么给html设定的font-size就是 100px,现在相当于 100px 是 1rem,如果你页面中的p元素的font size是 12px,那么你写成 rem 怎么写,就是 12 / 100,即 0.12rem,当然div的宽和高也能这样表示了,比如一个div的宽和高都是100px,那么用rem表示就是 div {width: 1rem; height: 1rem;}
如果你的手机是6s ,那么 w 这个值就是375,那么给html设置的font-size就是 117.1875px,现在相当于 117.1875px 是1rem,那么你刚才给p设定的 0.12rem 就要乘上 117.1875px 肯定是个比 12px 大的数了。这样就能保证在5s中12px 在6s中比在5s中看着字体要大,这样才符合常规对吧。
至于为什么js中要用w*100 / 320呢 这个320 是因为我们美工给我的图都是按照5s的标准来做的,就是320px,当然图都是640px的,所以我就除以的320,如果美工给你的图是375*2的 那么你就需要把320换成375,因为这样你在图里量出的div的宽度才能符合。
大概就是这些东西了,前端小白,能力有限,如有错误,望见谅。

點擊查看更多內容
24人點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
Web前端工程師
手記
粉絲
2
獲贊與收藏
114

關注作者,訂閱最新文章

閱讀免費教程

感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消