其他分享
首页 > 其他分享> > 深入理解line-height和vertical-align

深入理解line-height和vertical-align

作者:互联网

深入理解line-height和vertical-align

1.什么是行高(line-height)?

line-height用于设置文本的最小行高,可以简单理解为一行文字所占据的高度。但是行高的严格的定义是:两行文字基线(baseline)之间的距离

那么什么是基线(baseline)呢?

注意区分height和line-height的区别:

2.vertical-align属性

参考官方文档的解释,vertical-align会影响行内级元素在一个行盒(line boxes)中垂直方向的位置。简单来说vertical-align可以设置行内级元素在一行上的对齐方式。

2.1.什么是行盒(line boxes)?

通过以下这些问题进一步了解行盒。

首先可以思考一下,一个div在没有设置高度时,会不会有高度?

内容能够撑起来div高度的本质是什么?

这里又会有一个疑问,行高为什么可以撑起div高度?

如果这个div中有图片、文字、inline-block等行内级元素,他们如何进行对齐呢?

2.2.深入了解基线对齐

行内级元素基线对齐,可能会出现以下这些情况:

(1)情况一:只有文字时。

(2)情况二:既有文字,又有图片。

(3)情况三:既有文字,又有图片,还有inline-block。

(4)情况四:既有文字,又有图片,还有inline-block,并且给inline-block设置底边距。

(5)情况五:既有文字,又有图片,还有inline-block,并且给inline-block内添加文字。

总结

2.3.vertical-align的属性值

3.实现行内级元素垂直居中

3.1.使用vertical-align: middle

3.2.使用relative+transform

使用vertical-align: middle设置垂直居中很明显是麻烦的,所以一般不用该属性设置元素垂直居中。一般使用relative+transform。

示例代码:

.box {
  background-color: skyblue;
  height: 300px;
  font-size: 80px;
}

img {
  position: relative;
  top: 50%; /* 先下移父元素高度一半 */
  transform: translateY(-50%); /* 再上移自己高度的一半 */
}
<div class="box">
  <img src="../img/eqq.webp" width="200" alt="">
  div元素的文本内容xxxxxx
</div>

运行结果:完美居中。

标签:vertical,align,height,行盒,对齐,line
来源: https://www.cnblogs.com/MomentYY/p/15734046.html