主頁 > 知識庫 > CSS中em的正確打開方式詳解

CSS中em的正確打開方式詳解

熱門標(biāo)簽:電銷專用外呼線路 威力最大的電銷機(jī)器人 廣西房產(chǎn)智能外呼系統(tǒng)推薦 電話機(jī)器人鑰匙扣 400電話唐山辦理 旅游地圖標(biāo)注線路 漯河外呼調(diào)研線路 電銷外呼系統(tǒng)是違法的嗎 地圖標(biāo)注位置怎么弄圖

為什么說“通常情況下1em=16px”?

用戶的瀏覽器默認(rèn)渲染的文字大小是“16px”,換句話說,Web頁面中“body”及其子元素的文字大小在用戶瀏覽器下默認(rèn)渲染是“16px”。
我們都知道:em(和 rem )是一個相對單位!“相對”的意思是:

  • 相對的計算必然有一個參考物,那么這里相對所指的就是父元素的font-size。比如說:如果在一個 div 設(shè)置字體大小為“16px”,此時這個 div 的后代元素教程了是將繼承他的字體大小,除非重新在其后代元素中進(jìn)行過顯示的設(shè)置。如果用戶通過瀏覽器的UI控件改變了文字的大小,那么我們整個頁面也會進(jìn)行放大(或縮?。恢劣谟脩舾淖兞藶g覽器的字體后會致使整個頁面崩潰!

只不過em是相對于父元素,而rem是相對于“根”元素(html)


em到底是怎樣的?

em:相對單位。其基準(zhǔn)值是當(dāng)前元素的字號大??;實際值則取決于它(繼承)的父元素。
經(jīng)過筆者查閱資料+不斷測試,這其中有一個“不為人注意的”公式:
目標(biāo)em值=目標(biāo)像素值/父元素像素值

(↑:em是如何與父元素 font-size 產(chǎn)生聯(lián)系的

<body>
	I'm <p>yunxiaomeng</p>.
</body>
body{
	font-size: 16px;
}
p{
	font-size: 1.2em;
}


 

看到圖中的紅線框了么?p標(biāo)簽實際被渲染出的大?。繕?biāo)像素值)為:16(px) x 1.2=19.2(px)

這里還有一個要特別注意的地方:如果同一個元素的另一個選擇器/屬性用了一個不一樣的字號值(font-size)去覆蓋前一個值,這將會改變 em 在這個域下的基準(zhǔn)值!
比如,我們將上面的p中再加一個屬性:

p{
	font-size: 1.2em;
	padding: 1.2em;
}

那么 padding 的實際渲染值(目標(biāo)像素值)= 19.2(px) x 1.2 = 23.04(px)(即16 x 1.2 x 1.2):
 


 

這也是為什么你對每一層子元素都設(shè)置了 em 時其真正大小似乎并不是自己想要的!
(至于其中為什么有和font值一樣的margin,就要參考張鑫旭《CSS世界》中提到的“幽靈空白元素”了?。?/p>


rem也是這樣的?!

rem也是一個相對單位,它是相對于root根元素變化的。
它的計算方式和 em 的大差不差。但是這里有一個“常見的誤區(qū)”:一般我們可以通過頁面寬度動態(tài)更改根元素的 font-size 值來做響應(yīng)適配:

let htmlWidth=document.documentElement.clientWidth || document.body.clientWidth;
let htmlDom=document.getElementsByTagName('html')[0];
	
window.onresize=function () {
    htmlDom.style.fontSize=htmlWidth/20+'px';
};

但很多人會誤以為rem值是和“頁面大小對應(yīng)的”。其實這是錯誤的!

而且目前來說完全可以通過css來做響應(yīng)式:
html { font-size: calc(112.5% + 4 * (100vw - 600px) / 400); } 配合 媒體查詢 @media

到此這篇關(guān)于CSS中em的正確打開方式詳解的文章就介紹到這了,更多相關(guān)css打開em內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持腳本之家!

標(biāo)簽:焦作 無錫 綏化 欽州 銅陵 湖北 試駕邀約 湘西

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《CSS中em的正確打開方式詳解》,本文關(guān)鍵詞  CSS,中,的,正確,打開,方式,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《CSS中em的正確打開方式詳解》相關(guān)的同類信息!
  • 本頁收集關(guān)于CSS中em的正確打開方式詳解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章