[toc]
## line-height定义
line-height行高的定义就是指两基线的间距,
也是纯文本时文本所撑开的父级容器高度(`content-area/em-box`+`上下半行间距`)。
## line-height的组成
![](https://box.kancloud.cn/eac50906da2299458f3efacb06369c97_423x72.png)
### em-box与content-area
em就是1em那个的em,1em等同于一个font-size大小。
需要注意的是可见的**文字图形区域**并**不一定**就等同于`em-box`。
对于汉字,1个汉字通常小于em-box(更小于content-area)。
对于英文,一些带尾巴的英文字符q或则g,其小尾巴通常在em-box范围外(但仍在content-area之内)。
**另外em-box(只受font-size影响)不等同于content-area(受font-size和font-family影响)**
(通常内容区域高度要比em-box更高一些?)
**但,** 当字体为宋体这种方方正正的字体时,内容区域和em-box可以看做是等价的(即被鼠标select后背景变蓝的区域)
>示例
![](https://box.kancloud.cn/24c720c2be49584940ce547ff8f8113f_586x430.png)
(白色区域为内容区域,黄色为半行间距,可以发现宋体的内容区域大小等于em-box,即font-size)
但我们改变字体
![](https://box.kancloud.cn/3df6375ee13ad6ef0f9f0d638eb6ca8c_607x417.png)
(font-size不再等于content-area,content-area比font-size大)
可以发现行间距是一个墙头草,在同一个行高下,即使font-size相同,行间距也可能是不一样大小的。
行间距的作用就是保证内容区域+行间距正好等于行高
![](https://box.kancloud.cn/a4407739cdbe2a327d7371db5be416a0_639x239.png)
### 半行间距
`行距=line-height-font-size`
而半行间距即是其一半
平均分为两份后,再追加到em-box的顶部和底部就形成了行高。
>[info] 半行间距可以是负值,直接表现即是两行文字可以交错。
>
## line-height不会影响替换元素
## line-height与垂直居中
行高之所以可以实现垂直居中,原因在于CSS中**行间距的上下等分机制**,So,换句话说,如果过行距的添加规则是在文字的上方或则下方,则行高是无法让文字垂直居中的。
## line-height的属性值
normal 这个值的实际值是不固定的,不是1,而是根据字体变化而变化的
。。。
## line-height的大值特性
```
.box{
line-height:96px;
}
.box span{
line-height:20px;
}
```
```
.box{
line-height:20px;
}
.box span{
line-height:96px;
}
```
最终box的高度都为96px
## lineHeight顶点位置与border-box
lineHegiht是从元素的content-box上边开始计算的
故如果设置border-box,常常就会出现下面这种情况
![](https://box.kancloud.cn/50847f79204f3664c9050edbcc83eed2_277x83.png)
因为height,line-height一样,但设置了padding,故文字非但没有居中还下沉了(因为lineHeight顶点从content-box开始计算)
- 空白目录
- 未处理
- webpack中的css模块化
- CSS预处理器
- 效果
- 元素装饰与美化
- 颜色
- checkbox
- img
- background
- clip-path
- 字体
- 文本控制
- text-indent
- letter-spacing
- word-spacing
- word-break和word-wrap
- white-space
- text-align
- text-decoration
- text-transform
- first-letter
- first-line
- 有关CSS百分单位的那些奇葩事儿
- 破坏性、包裹性、块状化
- 强大的absolute
- padding
- relative
- 继承性
- fixed
- float
- BFC
- z-index
- overflow
- clip
- 最佳可访问性隐藏
- 关于scrollHeight/Width
- 包含块
- margin
- 布局系统
- 杂
- Flex
- Grid
- 自定义布局系统
- gutter实现思路
- 选择器
- 伪元素和伪类
- css3
- appearance
- CSS2.1
- tmp
- 未定义行为
- 焦点元素
- outline轮廓
- 替换元素
- 盒子模型
- 块级元素/盒子
- 标记盒子
- 容器盒子(内在盒子)
- 内联元素/盒子
- 字母X
- line-height
- vertical-align
- font-size
- 内联元素盒子模型新解
- line-height定义
- line-height与行内框盒子模型
- line-height与内联元素的高度机制
- line-height值
- line-height与图片
- vertical-align支持的属性值及组成
- vertical-align起作用前提
- vertical-align与图片
- vertical-align与line-height
- vertical-align前后不一的行为表现
- vertical-align实际应用
- line-height与height
- width/height与auto
- 最小内容宽度
- 最大内容宽度
- min/max-width/height注意事项
- 流:外部尺寸与内部尺寸
- 流体布局下的宽度分离原则
- height:auto
- 浏览器渲染原理
- 移动端