天天看點

差別css機關px、em、rem

在對頁面進行自适應時,查閱相關資料了解到,通常有兩種方式将px轉換為em或者rem,下面就上述三者之間的聯系進行講解:

em與px轉換

一般浏覽器預設1em=16px,通過設定font-size大小來代表如:16px*0.625=10px,其則代表1em=10px,直接上代碼(注釋的樣式為浏覽器預設

(1em=16px)

的長寬):

<!DOCTYPE html>
<html lang="en" >
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
         body{font-size: 16px;}
        /*1em=10px*/
        /*#div1{width:640px;height:320px;margin:160px auto;padding-top:160px;}*/
        #div1{width:40em;height:20em;margin:10em auto;padding-top:10em;}
        /*#div2{width:200px;height:200px;margin:0 auto;}*/
        #div2{width:12.5em;height:12.5em;margin:0 auto;}
        /*#div3{width:480px;height:320px;margin:80px auto;}*/
        #div3{width:30em;height:20em;margin:5em auto;}
    </style>
</head>
<body>
<div id="div1" style="background:lightslategray;">
    <div id="div2" style="background: darkseagreen;"></div>
</div>
<div id="div3" style="background: deepskyblue;"></div>
</body>
</html>
           

結果如圖所示:

差別css機關px、em、rem

在進行轉換之前,我們一定要檢視浏覽器預設字型(最小)大小,如chrome浏覽器,預設字型最小為12px,是以即使我們為了友善設定1em=10px,其浏覽器仍舊以1em=12px計算。

16px*0.75=12px=1em

body{font-size: 12px;}
 或者{font-size: 75%;}
           

結果如圖所示:

差別css機關px、em、rem

em與rem差別

rem與px,和em與px轉換是一樣的,二者差別在于前者預設從根元素繼承,後者從父級元素繼承,還是上述代碼,html我們不設定font-size,其預設為16px,上代碼展示(div3機關我們修改為rem):

<!DOCTYPE html>
<html lang="en" >
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        body{font-size: 12px;}
        /*1em=10px*/
        /*#div1{width:640px;height:320px;margin:160px auto;padding-top:160px;}*/
        #div1{width:40em;height:20em;margin:10em auto;padding-top:10em;}
        /*#div2{width:200px;height:200px;margin:0 auto;}*/
        #div2{width:12.5em;height:12.5em;margin:0 auto;}
        /*#div3{width:480px;height:320px;margin:80px auto;}*/
        #div3{width:30rem;height:20rem;margin:5rem auto;}
    </style>
</head>
<body>
<div id="div1" style="background:lightslategray;">
    <div id="div2" style="background: darkseagreen;"></div>
</div>
<div id="div3" style="background: deepskyblue;"></div>
</body>
</html>
           

結果如圖所示:

差別css機關px、em、rem

從上述我們可以看到,div3機關設定rem後,其并沒有根據body設定而變化,仍舊預設font-size:16px。是以為了友善,我們可以設定16px*1.25=20px,其代表1em為20px,同樣有利于我們計算。