在CSS中,有一個(gè)很常見(jiàn)的使用單位叫做em。相對(duì)于像素、百分比等單位,em單位更加靈活,因?yàn)樗鼈兛梢韵鄬?duì)于父元素的字體大小調(diào)整。但是有一些網(wǎng)頁(yè)設(shè)計(jì)初學(xué)者可能會(huì)遇到一個(gè)問(wèn)題,就是使用em單位時(shí),文字為什么會(huì)成斜體。其實(shí)在設(shè)計(jì)前端網(wǎng)頁(yè)的時(shí)候,這是一個(gè)很重要的知識(shí)點(diǎn)。
p { font-size: 16px; } span { font-size: 0.8em; }
在上面這個(gè)例子中,<p>
標(biāo)簽設(shè)置了一個(gè)字體大小為16像素的字體大小。而<span>
標(biāo)簽則繼承了<p>
的字體大小,但又設(shè)置了0.8em的字體大小。這種情況下,子元素<span>
的字體大小就會(huì)被計(jì)算為12.8像素(16*0.8=12.8)。但是有些人會(huì)發(fā)現(xiàn),<span>
標(biāo)簽中的文字會(huì)變成斜體。這是怎么回事呢?
答案就在于font-style: italic
。當(dāng)font-style
屬性被設(shè)置為italic或oblique的時(shí)候,瀏覽器會(huì)把em單位的字體大小當(dāng)做斜體字體來(lái)處理。因此只要不設(shè)置斜體字體,就可以避免這個(gè)問(wèn)題的出現(xiàn)了。
同時(shí),還有一些字體設(shè)置在默認(rèn)情況下是會(huì)顯示斜體的。比如Monaco等等字體。在這種情況下,就需要在CSS中顯式地設(shè)置font-style:normal
來(lái)避免字體顯示為斜體。
code { font-size:0.8em; font-family: Monaco, Consolas, Courier, monospace; font-style:normal; }
上面這段CSS代碼中,就包含了對(duì)Monaco字體的處理。即使<code>
標(biāo)簽繼承了父元素的字體大小,但也能夠避免字體顯示為斜體造成的影響。
總結(jié)來(lái)說(shuō),避免使用斜體字體,可以避免em單位的字體大小被處理為斜體。這是CSS中em單位的一個(gè)小技巧,尤其在進(jìn)行網(wǎng)頁(yè)設(shè)計(jì)時(shí),非常實(shí)用。