vw
、vmin
、vmax
這四個單位都是基于視口的,含義如下:1/100
。1/100
。vmax
是相對于視口的高度和寬度兩者之間的最小值
或最大值
。根元素(html)
的字體大?。╢ont-size)來計算的長度單位。html{font-size: 62.5%} /* 10 ÷ 16 × 100% = 62.5% */
body{font-size: 1.4rem;} /* 1.4 × 10px = 14px */
根元素字體大小
小于默認最小字體大小
,那么就會以默認最小字體大小設(shè)置根元素。比如:在chrome中,最小字體大小是12px,如果你設(shè)置的字體大小小于12px,還是會以12px設(shè)置:html{font-size: 62.5%} /* 16px * 62.5% = 10px */
body{font-size: 1.4rem;} /* 1.4rem * 12px = 16.8px */
html{font-size: 20px;}
body{font-size: 0.7rem;} /* 0.7 * 20px = 14px */
rem
,我們還會想到em
,兩者都是相對單位,由瀏覽器轉(zhuǎn)換為像素值,那兩者有什么區(qū)別?使用哪個更好呢?em
的區(qū)別:<style>
html{ font-size: 20px; }
body{
font-size: 1.4rem; /* 1rem = 28px */
padding: 0.7rem; /* 0.7rem = 14px */
}
div{
padding: 1em; /* 1em = 28px */
}
span{
font-size:1rem; /* 1rem = 20px */
padding: 0.9em; /* 1em = 18px */
}
</style>
<html>
<body>
<div>
<span></span>
</div>
</body>
</html>
20px
,body的字體大小設(shè)為1rem
,那么轉(zhuǎn)換為像素就是28px
(20 × 1.4),接著我們又將div的padding設(shè)為1em
,由于其基于父元素,所以轉(zhuǎn)換為像素是28px
( 28 × 1),然后我們又將span的字體大小設(shè)為1rem
,也就是20px
,由于其自身設(shè)置了字體大小,所以padding設(shè)為1em
,轉(zhuǎn)換為像素是20px
(20 × 1),而不是乘以其父元素的字體大小28px
(28 × 1)。rem
,因為em
使用不當?shù)脑?,當出現(xiàn)多層繼承時,會很容易混淆,比如:<style>
html{ font-size: 20px; }
body{
font-size: 0.9em; /* 1rem = 18px */
}
div{
font-size: 0.8em; /* 1em = 14.4px */
}
span{
font-size: 0.9em; /* 1rem = 12.96px */
}
</style>
<html>
<body>
<div>
<span></span>
</div>
</body>
</html>
em
時,如果其祖先元素都是用了em
,那么就會像上面一樣,body繼承其父元素html的字體大小,而div又繼承其父元素body的字體大小,而span又繼承其父元素div的字體大小,最終span的字體大小最終是12.96px(20 × 0.9 ×0.8 × 0.9)。em
更多建議: