博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
再谈vertical-align与line-height
阅读量:4507 次
发布时间:2019-06-08

本文共 1491 字,大约阅读时间需要 4 分钟。

每次遇到多个inline-block元素排列的怪异垂直位置的问题的时候都可以通过经验,设置vertical-align来解决,没深入研究过,现在需要分析总结下这个问题。

问题引出

有小鲜肉新做了个页面,其中一段代码是这样:

    
vertical-align

他很困惑,为什么两个inline-block的水平位置是这样。

1.首先要剔除overflow:hidden的影响,去掉它之后:

    
vertical-align

样式如下:

可以看到,前面span元素的高度被overflow:hidden抬高了,这个问题且先搁置,先看下为什么按钮和span是这样的垂直位置的:

对于display:inline-block的块,没有设置vertical-align的时候,其默认值为baseline,对于baseline的解释是:

baseline的概念就是字母x的下边缘,这里可以分析下这个例子,前面的span没有设置line-height,在调试工具里面可以看到它的行高是默认的18px,而后面button的line-height被设置成了24px;vertical-align默认的方式是baseline,就显示成如上图的样式了。

想要全部垂直居底部,添加vertical-align:bottom;就可以了:

添加之后是这样了:

2.再来看看overflow:hidden抬高的问题:

 'inline-block'的baseline是其在normal flow中的最后一个line box的baseline,除非它没有in-flow line boxes,或者其‘overflow’属性不等于‘visible’,这种情况下,其baseline位于bottom margin边上。

对这段的解释,就是:

i) 如果inline-block的overflow设为visible(默认属性),则其baseline是当前行的containing block的baseline。

ii) 如果overflow设为其他,则其bottom margin位于前行的containing block的baseline;
我们这种情况下,inline-block元素的overlow:hidden,所以元素的底部边框在父元素的baseline。
因此高度才会看起来增加了。

官方对baseline的说明:

baseline

    Align the baseline of the box with the baseline of the parent box. If the box does not have a baseline, align the bottom margin edge with the parent's baseline.

对,就是这样了。

参考:

1.

2.

转载于:https://www.cnblogs.com/linda586586/p/5601691.html

你可能感兴趣的文章
pycharm快捷键大全
查看>>
Smarty 简单使用
查看>>
冒泡排序
查看>>
30分钟泛型教程
查看>>
信息与信息工具的意义
查看>>
Http 状态码:
查看>>
js 对象操作赋值操作
查看>>
关于IE6的一些需求分析
查看>>
【IPv6】ISATAP隧道技术详解
查看>>
numpy_pandas
查看>>
oracle数据导入/导出(2)
查看>>
SSH远程会话管理工具 - screen使用教程
查看>>
设计模式
查看>>
前端复习-01-dom操作包括ie和现代浏览器处理相关
查看>>
[CF612D] The Union of k-Segments(排序,扫描线)
查看>>
linux安装nginx
查看>>
spark书籍视频推荐
查看>>
django之富文本编辑器
查看>>
jsp第三章
查看>>
Android平台下利用zxing实现二维码开发
查看>>