頁面適配之pt、px、em、rem的用法


我們在開發頁面時,會遇到pt、px、em、rem這四種單位。下面介紹一下這四個單位。

1.pt,英文為points,絕對長度單位,意為磅。設計軟件zeplin所用的單位就是pt。現在很少使用這個單位了。

2.px,英文為pixel,相對長度單位,意為像素。是相對於屏幕分辨率的單位,國內主流單位。

3.em,相對長度單位,相對於當前對象內文本的字體尺寸,即em的計算是基於父級元素font-size的。比如:

<body style="font-size:14px">
    <p style="font-size:2em">我這里的字體顯示大小是28px(14px*2)</p>  
    <div style="font-size:18px">
        <p style="font-size:2em">我這里顯示字體大小是36px(18px*2),而不是上面計算的28px</p>
    </div>
</body>

這個單位國外用的比較多。

4.rem,即root em,是CSS3新出的單位,用於移動端的適配。

這個單位與em有什么區別呢?
區別在於使用rem為元素設定字體大小時,仍然是相對大小,但相對的只是HTML根元素。

這個單位可謂集相對大小和絕對大小的優點於一身,通過它既可以做到只修改根元素就成比例地調整所有字體大小,又可以避免字體大小逐層復合的連鎖反應。

目前,除了IE8及更早版本外,所有瀏覽器均已支持rem。對於不支持它的瀏覽器,應對方法也很簡單,就是多寫一個絕對單位(如pt)的聲明。這些瀏覽器會忽略用rem設定的字體大小。

使用方法:

html{
    font-size:16px;
}
 <body style="font-size:14px">
     <p style="font-size:2rem">我這里的字體顯示大小是32px(16px*2),因為我是根據html根元素的font-size大小進行計算的</p>  
     <div style="font-size:18px">
         <p style="font-size:2rem">我這里顯示字體大小是32px(16px*2),因為我是根據html根元素的font-size大小進行計算的</p>
     </div>
 </body>

瀏覽器默認的字體大小就是16px,所以html的font-size不寫也可以。

這是px在線轉rem的地址

rem配合媒體查詢可兼容移動端的不同設備。如:

/*Galaxy S5 landscape & portrait*/
@media screen
and (device-width: 360px)
and (device-height: 640px)
and (-webkit-device-pixel-ratio: 3) {
    html,body{
        font-size: 13.913px;
    }
}

/*兼容iphone5  screen-width:360px*/
@media (device-height:568px) and (-webkit-min-device-pixel-ratio:2){
    html,body{
        font-size: 12.367px;
    }
}
/*iphone 6/7/8 screen-width:375px*/
@media (min-device-width : 375px) and (max-device-width : 667px) and (-webkit-min-device-pixel-ratio : 2){
    html,body{
        font-size: 14.493px;
    }
}
@media only screen and (device-width: 375px) and (device-height: 812px) and (-webkit-device-pixel-ratio: 3){
    /*iphoneX*/
    html,body{
        font-size: 14.493px;
    }
}
/*iphone 6plus  screen-width:414px*/
@media (min-device-width : 414px) and (max-device-width : 736px) and (-webkit-min-device-pixel-ratio : 3){
    html,body{
        font-size: 16px;
    }
}
@media only screen and (min-device-width : 768px) and (max-device-width : 1024px) and (orientation : portrait){
    /*ipad等中等設備*/
    html,body{
        font-size: 29.681px;
    }
}

隨着屏幕的增大,html的字體大小也增大,其他地方也因使用了rem按比例增大。


免責聲明!

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



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