vertical-align简明指南
时间:2023-04-02 14:58:38
HTML
原因内容在前端布局中垂直居中,这是一个经常遇到的需求。虽然可以用浮动float、position:absolute来解决,但是会影响文档流。笔者经常使用flex,使用方便。有些地方感觉有点大材小用,那我们就来探讨一下vertical-align是如何实现居中布局的。第一步是了解vertical-align的布局规则,还有一些概念需要弄清楚。vertical-align是用来对齐行内元素的,所以我们设置元素的display属性为inline,inline-block或者inline-table,inline-table用的不多,本文就不介绍了。行内和行内块元素一、二、三是行内元素,四是行内块元素。linebox:一个盒子包裹行内元素,linebox的顶部和底部用黑线表示。元素,紫色实线字体高度:父元素字体高度涉及text-top,text-bottom对齐方式,红色实线中心线:位于基线上方,相对于基线距离为小写字母x的一半一个两个三个四个
理解了这三个概念之后,vertical-align样式就小菜一碟了,不过在此之前,还有几个问题要告诉大家**如何确定父元素的基线**:左边第一个unstyled子元素文本的底部,确定父元素的基线**如何确定父元素的字体高度**:第一个unstyled子元素的高度left,确定父元素的字体高度这个概念比较迷惑,不要惊慌,接下来进入实战,用例子加强概念的理解实战topbottom对齐top,bottom是子元素相对的对齐方式到行框的顶部和底部。那么,很明显,一,二,设置为顶部对齐,三设置为底部对齐text-toptext-bottomalignmenttext-top,text-bottom是子元素相对于父元素字体空间的上下对齐。从概念上看,红线是父元素的字体空间,所以很容易判断,二是文本顶部对齐,三、四是文本底部对齐可能会出现这样一种情况,行框的内容垂直居中,子元素的高度占了行框的高度,例子中的四个就是这种情况。因为高度为四,设置vertical-align本身就没有移动的余地,基线要移动才能满足对齐。上图实现了子元素的垂直居中,黑线为中间线。对比上一张图(中间对齐),不难发现基线和中线都向上偏移了。其他方法也会产生基线偏移的效果,读者可以自行尝试。总结因为用的不多,其他对齐方式就不举例了。不过,只要理解了线框、基线、中心线的概念,其他参数处理起来也很简单。参见垂直对齐:vertical-align属性【翻译】关于vertical-align你应该知道的一切