CSS的单位有很多种,其中有一种经常用到的单位是em。那么,1em到底等于多少像素呢?
p {
font-size: 16px; /* 假设默认字号是16px */
line-height: 1.5em; /* 行高是字号的1.5倍 */
} 从上面的CSS代码可以看出,em是相对单位,它的值基于当前元素的字号。在上述代码中,1.5em表示行高是字号的1.5倍,也就是24像素(16*1.5)。
那么1em有多少像素呢?答案是“视情况而定”。因为不同浏览器、不同操作系统、不同设备的默认字号都不一样。在大多数情况下,1em约等于16像素,因为16px是浏览器的默认字号。但是,如果用户手动修改了浏览器的默认字号,1em就会对应不同的像素值。
为了解决这个问题,CSS3引入了一个新单位——rem。rem是相对根元素(即HTML元素)的字号。例如:
html {
font-size: 16px; /* 设置根元素字号为16px */
}
p {
font-size: 1.5rem; /* 1.5rem表示1.5倍根元素字号,即24px */
line-height: 1.5; /* line-height的值不带单位,默认是倍数 */
} 上述代码中,p元素的字号是1.5rem,表示1.5倍根元素字号,也就是24像素(16*1.5)。而行高的值则不需要单位,直接写1.5即可。
总之,em单位的像素值是不固定的,因为它基于当前元素的字号。如果想要字号相对于根元素的值是固定的,应该使用rem单位。