關于rem和em

em

首先要知道em是相對于誰的值。
以前我一直以為em是使用em這個元素的父元素的font-size值。這句話是對也不對。
為什么這么說呢?
當使用em的這個元素沒有設置顯式的設置font-size值的時候(這里的顯式是指使用px等單位設置,像font-size=1.25em這種不算,下文會介紹這種情況。),font-size=1.25em的em值是該元素的父元素的font-size值。比如其父元素的font-size=16px,那么該元素的font-size=1.25*16px=20px。但是如果這個元素還設置了padding值,而且還好死不死的用了em。padding=2em,那么情況會怎么樣呢?好了不賣關子了就直接說了,這里的padding值會等于40px,哎?這種情況的話em不是等于20px了嗎?哎?這個20px好像在哪里見過哎。沒錯就是上面設置的該元素的font-size值。這個時候就有點亂了。那什么時候em是指的父元素的font-size值,什么時候又是指的是元素本身的font-size呢。在元素本身沒有顯式設置font-size值的時候,也就是說其font-size的值是由繼承得來的時候,em值為其父元素的font-size值(此時該元素的font-size繼承值就是父元素的font-size)。而且在任何時候,該元素內其他屬性使用em的時候,em的值都是該元素本身的font-size值(計算值)。

rem

rem是指根元素HTML的font-size值,在沒有設置根元素HTML的font-size時,html的font-size會繼承瀏覽器的默認字體大小。
比如瀏覽器的默認字體為16px,那么此時的html繼承了這一字體大小,那么在HTML文檔的任何地方rem都是16px,如果html設置了font-size=1.25em,此時html的font-size=1.25×16px(繼承瀏覽器)=20px,那么rem就等于20px。同時如果瀏覽器字體大小被改成20px,那么html的font-size為1.25*20px=25px,rem也就是25px了。當然如果顯示的設置了HTML的font-size=10px,那么rem也就是10px了。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標簽默認的外補...
    _Yfling閱讀 13,801評論 1 92
  • 作者:HelKyle鏈接:http://www.w3cplus.com/css/when-to-use-em-vs...
    紅葉丶秋鳴閱讀 3,291評論 0 3
  • 網頁字體排版的最佳實踐之一就是使用相對單位,如rem和em. 問題是,你應該使用哪一個呢?一直以來,rem支持者和...
    mhy_web閱讀 641評論 0 0
  • 學習CSS的最佳網站沒有之一 http://www.w3school.com.cn/tags/index.asp ...
    Amyyy_閱讀 1,094評論 0 1
  • rem是什么 rem(font size of the root element)是指相對于根元素的字體大小的單位...
    一只好奇的茂閱讀 4,818評論 1 25