必威体育Betway必威体育官网
当前位置:首页 > IT技术

CSS中使用vertical-align:middle使元素垂直居中的坑

时间:2019-10-26 07:15:38来源:IT技术作者:seo实验室小编阅读:89次「手机版」
 

vertical-align

在CSS样式中,vertical-align 属性设置元素的垂直对齐方式,想必学过一个前端的人都知道这个东西,也知道怎么用。今天在做 项目的时候遇到一个坑,在这里做个记录。先简单说一下vertical-align 这个属性吧,根据查阅文档可以知道它有如下几个参数:baseline:与元素的基线对齐。

middle:与元素中部对齐。

sub:字下沉。

super:字上升。

text-top:文本顶部对齐。

text-bottom:文本底部对齐。

top:和本行位置最高元素对齐。

bottom:和本行位置最低元素对齐

本文要讨论的就是其中middle的使用,我在做项目过程中,需要在input标签后加个<span>标签作为提示内容的显示,这两个标签都放在一个<p>块中,在将<span>标签style属性设置为vertical-align:middle 后,元素内容并没有垂直居中,在仔细查阅资料后终于找到了一些原因以及解决办法。

在W3C官方中对 vertical-align做了下面的解释:

This property affects the vertical positioning inside a line box of the boxes generated by an inline-level element.

事实上,一个Box中由很多行很多元素组成,vertical-align只作用于在同一行内的元素,它的垂直并不是相对于整个Box而言的。如果把 vertical-align:middle 放到一个单元格元素,即table的td元素中,它的垂直居中显示是没任何问题的,因为它表示相对于改行的垂直高度居中显示。而在我设定的<p>块中并不只存在一行,因此它无法识别默认显示在顶部。

为了解决这个问题,我找到了两种方法。一个是我们可以设置<span>元素style中的 line-heght 值为其父元素<p>的height值,这样 vertical-align:middle 就会使<span>元素内容垂直居中。   另外还有种方法,就是将要设置垂直居中的元素的父元素style属性添加 display:table-cell 将其作为单元格显示,这样使用 vertical-align:middle 也可以实现垂直居中。建议使用第一种方法,毕竟根据实际需要,我们一般使用<p>作为父元素其中不止一种子元素,使用单元格格式会增加一些 限制,出现一些意想不到的问题。 

文章最后发布于: 2018-10-29 18:15:42

相关阅读

简单说 CSS的vertical-align

说明 vertical-align属性,是CSS属性中一个比较重要的属性,也是比较不好理解的一个。 我们今天就来说说它。 解释 先来看看他的定

Vertical-Align,你应该知道的一切

对哪些元素可以使用Vertical-Alignvertical-align用于对齐行内元素。所谓行内元素,即display属性值为下列之一的元素:inlineinline-

分享到:

栏目导航

推荐阅读

热门阅读