全国旗舰校区

不同学习城市 同样授课品质

北京

深圳

上海

广州

郑州

大连

武汉

成都

西安

杭州

青岛

重庆

长沙

哈尔滨

南京

太原

沈阳

合肥

贵阳

济南

下一个校区
就在你家门口
+
当前位置:首页  >  技术干货

文字垂直居中排列

发布时间:2022-06-02 11:45:00
发布人:wjy

## 最近的瓜有些多,一瓜未平一瓜又起,大家可能和小编一样——都是瓜田里的猹。不过,无论怎样,都要抽出点时间学习啦~~~~这两天,有一些初学的小朋友们问”文字如何垂直居中“,那我们今天就来谈一谈这个问题哈。

文字垂直居中排列

首先 文字垂直居中是分单行文字和多行文字的,先来聊单行文字的垂直居中对齐。

### 单行文字垂直居中---行高等于高度值

如图所示,我们希望这一行文字可以垂直居中;那就在代码中设置行高=高度值。

1

CSS部分:

```text
<style type="text/css">
    div{
        width: 600px;
        height: 200px;
        background: pink;
        line-height:200px;
    }
</style>
```

HTML部分:

```text
<div>
        今天中午吃啥子!罗非罗非罗非鱼
</div>
```

设置上述代码后,效果图如下

2

有同学好奇说,为啥要设置行高=高度值,其实,我们拿word里面的行距 来解释,会更具象化一些。

### 默认样式:

3

### 选择了一个行距:

4

如图所示,这一行文字占有的高度就是行高,从文字中心开始,距离下上的距离是相同的。

5

回到我们的上述代码中,我们设置了行高=高度值;就是让文字的中心距离上方是100px;距离下方也是100px;如此一来,文字也就居中了。

6

后来有同学又问,为什么这个不适用于多行文本呢?我们将我们的HTML代码中文字加多,你会发现每一行代码,行高都是200px;得到的结果并不能实现整体居中。

HTML代码:

```text
<div>
  今天中午吃啥子!罗非罗非罗非鱼~今天中午吃啥子!罗非罗非罗非鱼~今天中午吃啥子!罗非罗非罗非鱼~今天中午吃啥子!罗非罗非罗非鱼~
</div> 
```

7

所以,接下来,我们就来说一说,多行文本应该如何垂直居中~~~~

### 多行文本垂直居中

HTML代码:

多行文本垂直居中,我们一起看看效果图,

**1、模拟表格**

将父元素div 模拟成表格table,子元素span模拟成表格单元格;让子元素设置vertical-align:middle来实现。

CSS代码:

```text
<style type="text/css">
    div{
        width: 200px;
        height: 200px;
        background: pink;
        display: table;
    }
    span{
        display: table-cell;
        vertical-align: middle;
    }
</style>
```

**2、模拟表格单元格**

CSS代码:

```text
<style type="text/css">
    div{
        width: 200px;
        height: 200px;
        background: pink;
        display: table-cell;
        vertical-align: middle;
    }
</style>
```

**3、将子元素设置为行内块元素,模拟成单行文字**

将子元素设置为行内块元素,并且设置vertical-align:middle来实现,需要注意的是,子元素span会继承父元素div的行高,所以我们需要重设一个适宜的行高。

*缺点:span文本的高度不能超过父元素div的高度。*

CSS代码:

```text
<style type="text/css">
    div{
        width: 200px;
        height: 200px;
        background: pink;
        line-height: 200px;
    }
    span{
        display: inline-block;
        vertical-align: middle;
        line-height: 24px;
    }
</style>   
```

**4、利用定位的方式来解决**

父元素设置相对定位,子元素设置绝对定位,并且设置top:50%;margin-top:负子元素高度的一半;如果不考虑兼容问题,我们也可以利用CSS3中 transform:translateY(-50%)来代替margin-top:负子元素高度的一半。

CSS代码:

```text
<style type="text/css">
    div{
        width: 200px;
        height: 200px;
        background: pink;
        position: relative;
    }
    span{
        position: absolute;
        left: 0;
        top: 50%;
        transform: translateY(-50%);
    }
</style>  
```

**5、使用flex布局**

我们可以使用弹性盒布局来实现这个效果。

CSS代码:

```text
<style type="text/css">
    div{
        width: 200px;
        height: 200px;
        background: pink;
        display: flex;
        align-items: center;
    }
</style>
```

**6、使用网格布局**

当然,我们也可以使用网格布局

CSS代码:

```text
<style type="text/css">
    div{
        width: 200px;
        height: 200px;
        background: pink;
        display: grid;
        align-content: center;
    }
</style>
```

这些就是我们的文字垂直居中的方式,在不同的情况去找寻最合适的方式就好。更多关于“web前端培训”的问题,欢迎咨询千锋教育在线名师。千锋已有十余年的培训经验,课程大纲更科学更专业,有针对零基础的就业班,有针对想提升技术的提升班,高品质课程助理你实现梦想。

相关文章

开通抖音小店怎么挂商品链接

开通抖音小店怎么挂商品链接

2023-10-08
抖音小店怎么设置客服号码登录不了

抖音小店怎么设置客服号码登录不了

2023-10-08
抖音小店资质变更后账户钱怎么没了

抖音小店资质变更后账户钱怎么没了

2023-10-08
抖音小店怎么换绑定的手机号

抖音小店怎么换绑定的手机号

2023-10-08

最新文章

上海物联网培训一般费用多少

上海物联网培训一般费用多少

2023-09-12
北京物联网培训费用大概多少

北京物联网培训费用大概多少

2023-09-12
北京物联网培训需要费用高不高

北京物联网培训需要费用高不高

2023-09-12
上海效果好的物联网培训费用高吗

上海效果好的物联网培训费用高吗

2023-09-12
在线咨询 免费试学 教程领取