移動端em與rem區別


 

rem與em都是相對單位,我們使用它們的目的就是為了適應各種手機屏幕。

rem是根據html根節點來計算的,而em是繼承父元素的字體。比如下面一個demo

<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=no">
<title>Test REM</title>
<style>
    html{
        font-size: 40px;
    }
    body{
        font-size: 20px;
    }
    .use_em,.use_rem{
        font-size: 14px;
    }
    .use_em span{
        font-size: 1em;
    }
    .use_rem span{
        font-size: 1rem;
    }

    .img_em{
        width: 2em;
        height: 2em;
    }
    .img_rem{
        width: 2rem;
        height: 2rem;
    }

</style>
</head>
<body>

<div class="use_em">
    <span>font-size使用em</span>
</div>

<div class="use_rem">
    <span>font-size使用rem</span>
</div>

<p>圖片使用em</p>
<img src="../images/face01.jpg" class="img_em">
<p>圖片使用rem</p>
<img src="../images/face02.jpg" class="img_rem">

</body>
</html>

第一個span繼承了它的父元素div的大小,所以是14px,第二個span是通過html來計算的,所以是40px。第一個img繼承的body,第二個img根據html來計算。通過這個簡單的例子我們得知上面的結論是正確的。所以我們可以通過下面這種比例來對不同的手機屏幕做適配。

比如iphone5上的rem基值為32px,則渲染一張64*64px的div,則用2rem*2rem渲染,換算公式如下————

px/rem = 基值

對於一些固定的元素,我們不推薦使用rem,而改為使用px去確保在同一屏幕上保持一致,比如字體font-size,這個更趨向於閱讀的實用性,不適合排版布局。

em 單位轉為像素值,取決於他們使用的字體大小。 此字體大小受從父元素繼承過來的字體大小,除非顯式重寫與一個具體單位。

 

 

 如果p元素有相應的px的話,他會根據自身條件來計算,否則會繼承父元素的px。就是說如果我給p元素去掉font-size,那他的padding是32px,就是說我們在使用em時必須要正確管理各個元素。所以個人推薦rem更適合於移動端,它給我們的一個途經去獲取用戶的偏好來影響網站中每一處使用rem的元素大小,不再是使用固定的 px 單位。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM