当前位置:首页 >> 网页制作

css中一些常用的font-size字体单位和line-height详解

px(pixel)像素

相信大家对像素这个名词并不陌生,接下来来介绍下这个单位的一些小知识点:

pixel 是 picture(图片)和element(元素)这两个词组成的.pixel不是绝对的自然长度单位,例如同样1 px的尺寸在不同设备上的"自然长度"是不一样的.当你放大一个图片后会发现图片是由一个个小方块组成,每个小方块就是1px,放大的程度越大1px的自然长度越大. 因此同样的一个自然长度的图片里面包含的像素越多,这个图片就越清晰.

em

相对于当前对象内文本的字体尺寸.也可以理解为是一个百分比单位, 1em=100%.那么来介绍下在css样式中em呈现的是什么样的效果吧:

如果当前子元素没有设置字体大小(浏览器默认字体大小为16px),那么子元素设置字体大小:font-size:1em;,这时候子元素的字体大小就为父元素的100% x 16px= 16px; 以此类推,font-size:1.5em;,子元素字体大小就为24px;

p{
    font-size:1.5em;
}
div{
    font-size:1.5em;
}
<div>
    <p>
        字体大小
    </p>
</div>

这里的 "字体大小"就是1.5 x 1.5 x 16=36px

父元素的字体大小会继承给子元素,但是继承的是px值,不是em的值.怎么理解呢?

body{2em}

<body>
    <div>
        <p></p>
    </div>
</body>

那么body里面的子元素div 和 p 都是32px(不叠加)

rem

虽然同样是相对于字体大小的百分比,与em相似,但是参照对象不同.rem的参照对象不是父元素,因此无论父元素如何变化当前设置rem的元素字体大小并不会有响应.

rem是相对于根元素(也就是html)值改变的.当我们书写html文档时,head和body 都是被<html></html>标签包裹的.

在css样式中我们同样可以更改html的font-size

html{
    font-size:10px;
}
div{
    font-size:2rem;
}

此时,div的字体大小是20px;

在css样式中line-height直接书写数字

对于font-size来说 这种做法是错误的,并不会响应.

但是line-height除了有以上的单位设置以外,还可以不设置单位,直接书写数字.

在line-height中em 同样是相对于当前字体大小的一个比例,并且继承的是px固定值,子元素不会继承em的值.

但是line-height:2;是可以继承的, 子元素继承这个后, line-height值是当前字体大小的两倍.

总结