CSS中的em
是一個相對于父元素字體大小的單位,用于設置元素的尺寸、內邊距、邊框和外邊距等。
.box{ font-size: 16px; /* 父元素字體大小 */ width: 10em; /* 寬度為16*10=160px */ padding: 0.5em 1em; /* 上下內邊距為16*0.5=8px,左右內邊距為16*1=16px */ border: 1px solid black; /* 邊框寬度為1px */ margin: 2em; /* 上下外邊距為16*2=32px,左右外邊距也為32px */ }
在計算em
時,需要關注父元素的字體大小。如果父元素未設置字體大小,則em
會繼承祖先元素的字體大小,直至找到已設置字體大小的祖先元素為止。
例如,如果有如下HTML結構:
<div class="grandfather"> <div class="father"> <div class="son"></div> </div> </div>
CSS代碼如下:
.grandfather{ font-size: 18px; } .father{ font-size: 16px; } .son{ width: 10em; /* 寬度為16*10=160px */ }
那么.son
元素的em
將繼承.father
元素的字體大小,即16px
。如果.father
元素未設置字體大小,那么em
將繼承.grandfather
元素的字體大小18px
。