一、使用display:flex
要让文本在CSS中垂直居中,最常见的方法是使用display:flex。这个方法可以让元素以弹性布局的方式显示内容,从而实现垂直居中。
.container{ display: flex; align-items: center; }
上面的代码中,.container就是我们要垂直居中的元素的父级元素。align-items属性可以控制其子元素在纵向上的对齐方式,通过设置为center,就可以让其垂直居中。
需要注意的是,display:flex并不是所有浏览器都支持,可以在样式中加入-webkit-box等属性以增加兼容性。
二、使用vertical-align
在CSS中,vertical-align属性可以控制元素在纵向上的对齐方式。但是有时候为了让它起作用,需要将其作用的元素的display属性设置为table-cell。
.container{ display: table-cell; vertical-align: middle; }
这样,元素就会在纵向上垂直居中。需要注意的是,这个方法只适用于元素的高度已知的情况。
三、使用line-height
在CSS中,line-height属性可以控制文本的行高,从而使其在纵向上垂直居中。这个方法适用于单行文本和行高已知的情况。
.container{ line-height: 50px; }
上面的代码中,50px就是文本的行高。通过将行高设置为和元素的高度相等,就可以使得文本在纵向上垂直居中。
四、使用translate
另一种垂直居中的方法是使用CSS3的translate属性。
.container{ position: absolute; top: 50%; transform: translateY(-50%); }
上面的代码中,position: absolute可以使得元素定位,top: 50%可以将其向上移动50%,而transform: translateY(-50%)则可以将其上移动自身高度的一半,从而达到垂直居中的效果。
五、使用flexbox对齐技巧
除了使用display:flex,我们还可以用flexbox的对齐技巧来实现垂直居中。
.container{ display: flex; } .text{ margin: auto 0; }
上面的代码中,我们可以将margin设置成auto 0,这样就可以在子元素中将其与父级元素的空间平均分配,从而实现垂直居中的效果。