vertical-align属性的简单理解

个人建议:不论是学css还是其他,遇到属性、方法之类的问题,先看官方文档。如果看不懂,再看别人的博客。

该属性的作用:行内元素垂直方向的对齐,注意区别于块元素垂直方向的对齐

例子1:middle属性

官文关于middle解释如下:
在这里插入图片描述

正常的理解就是:使用该属性的元素被放在其父元素的垂直居中位置。

像这样:
在这里插入图片描述
最终代码如下:

<div style="background: grey;line-height: 100px;">
    <div style="vertical-align: middle;display: inline-block;width: 30px;height: 30px;background: #000; ">div>
div>

里边那个div(子元素)设置inline-block的原因是为了使其变为行内块元素,因为vertical-align本身就是对行内元素进行垂直方向的对齐。如果你想块元素的对齐,那么可以使用flex布局的align-items-center等属性。
外边那个div(父元素)设置line-height的原因是为了使父级元素与子元素的高度不同,使得子元素的垂直居中效果展示出来。如果父元素与子元素的高度相同,那么子元素所设置的垂直效果是展现不出来的。 像这样:
在这里插入图片描述

例子2:top属性

类似的,关于top属性,官文的解释为:
在这里插入图片描述

正常的理解是:使用该属性的元素顶端对齐于行内的最高元素。

可当我们实践时,会发现使用该属性的元素顶端会对齐于父级元素的顶端,而不是对齐于行内的最高元素,像这样:
vertical-align属性的简单理解_第1张图片
于是关于top属性正确的理解是,顶端对齐于行内的最高点。我们可以推测,bottom属性的作用就是底部对齐于行内的最低点。可以自己动手尝试一下。
最终的代码为:

<div style="background: grey; line-height: 150px;">
    <div style="vertical-align: top;display: inline-block;width:30px;height: 30px;background: #000;">div>
    <div style="vertical-align:baseline;display: inline-block;width: 30px;height: 30px;background: #ddd; ">div>
  div>

例子3:text-top属性

类似的关于text-top属性,官文的解释为:
在这里插入图片描述

正常的理解为:使用该属性的元素顶端对齐于父级元素字体的顶端。

实践一下,我们得到以下效果,会发现方块顶端跟文字顶端并不对齐呀。其实不然,我们给文字加上背景色就会发现真的对齐了。
vertical-align属性的简单理解_第2张图片
vertical-align属性的简单理解_第3张图片
最终的代码为:

<div style="background: grey; line-height: 150px;">
    <div style="vertical-align: text-top;display: inline-block;width:30px;height: 30px;background: #000;">div>
      <span style="background: #fff;">LOOKspan>
  div>

同理,text-bottom属性也就可以推测出来了。

实践的方法已经教给你们了,关于其他的属性效果可以自己动手尝试一下,我相信你们一定会受益匪浅。

你可能感兴趣的:(CSS)