time: 2019.3.28
背景:今天做一个垂直居中的功能,使用到了 vertical-align ,也忘记了该属性什么时候有效,什么时候又没有效果,发现自己并没有写文章记录这个属性,这里总结一下
在网红张的文章中说到:vertical-align 只有在元素表现为 inline、inline-block 中才会起作用,如果是 block ,则不会起作用
问题:如果当前元素的父元素为 display: flex 或者本身使用了 float 属性,则自身即使为 block ,它也是拥有的 inline-block 的特征,即不会占满一行,此刻 vertical-align 还会起作用吗?
答:不会,flex 和 float 都会使 vertical-align 失效,因为 flex 和 float 不是普通流式布局了
问题:之前有人讲,vertical-align 居中,需要有同级元素才能居中,如果只有本身,是不会起作用的
答:是的,因为是控制同级兄弟元素对齐方式的
css 参考手册上提到:vertical-align 是将当前元素放置在父元素的中间
规定:vertical-align用来指定行内元素 (inline) 或表格单元格 (table-cell) 的对齐方式
表格居中或其他对齐方式,浅显易懂,这里主要是归纳一下行内元素的对齐方式
实践证明,其对行内块状元素也是有效