使用vertical-align属性进行文字和其他元素的对齐,文字垂直居中的方法。

​ 文字和其他元素一起出现的时候,经常碰到需要对齐的情况,通常我们会选择垂直方向进行文字的居中

​ 关于垂直居中文字的方法,我最常用的是,把line-height属性设置成容器的高度。这个方法虽然简单,但是还是要两行代码。而且必须先指定行高才能使用。

​ 除了这个方法以外还有两种方法是兼容性比较高的,可以在ie8上使用。

  1. 使用vertical-align属性进行居中
  2. 使用内边距padding属性让文字垂直居中。

​ vertical-align属性算是比较方便的对齐方法了,所有浏览器都支持这个属性,但是ie浏览器不支持属性继承。但是之前都没有仔细研究过到底怎么使用。

​ 这次的场景是element ui的栅格布局,用el-row 和el-col来进行布局,同一个el-row里面,不同的el-col里面有文字,也有输入框,选择框之类的,结果出现了选择框和文字没有对齐的问题。

​ 我是把文字放在p元素里面,然后对p元素使用vertical-align属性,结果没有效果。

​ 因为vertical-align属性是用来设置行内元素的基线的对齐方式的,而p标签是块级元素,所以没有效果。

​ 所以说,文字还是用行内元素的span来包裹比较好

​ 基线具体指哪里我就不深究了,反正一个个试过去总能找到合适的,多试试就知道了。

可能的值

描述
baseline 默认。元素放置在父元素的基线上。
sub 垂直对齐文本的下标。
super 垂直对齐文本的上标
top 把元素的顶端与行中最高元素的顶端对齐
text-top 把元素的顶端与父元素字体的顶端对齐
middle 把此元素放置在父元素的中部。
bottom 把元素的顶端与行中最低的元素的顶端对齐。
text-bottom 把元素的底端与父元素字体的底端对齐。
length
% 使用 "line-height" 属性的百分比值来排列此元素。允许使用负值。
inherit 规定应该从父元素继承 vertical-align 属性的值。

​ 添加下面一行代码后,就可以正常对齐了。

span{
    vertical-align: middle;
  }

​ 除了上面提到的3中兼容性高的方法,还有以下两种方法:

1.使用css3 transform

.center-vertical{
  position: relative;
  top:50%;
  transform:translateY(-50%);
}.center-horizontal{
  position: relative;
  left:50%;
  transform:translateX(-50%); 
}

2.flex 布局,

// 给文字的父盒子加上
display: flex;
justify-content: center;
align-items: center;

// 文字
flex:1;
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容