img-icon导致按钮不对齐的原因分析

这是一个小伙伴发来的demo

他说啊只要给按钮里加上这个小图片

整个这个按钮就会跟其他按钮不对齐

即便呢

他给这个按钮加一个vertical等于middle

大家看

他就跑下边来了还是不对齐

那其实啊不光是这个小图片

我们先把图片注释掉

现在是正常的对吧

但是呢

如果我们给他用文字加一个vertical-align

等于middle

大家看他还是会往下跑

那文字加上vertical-align:middle它会往下跑

咱们上一期视频讲过

那为什么里边的文字往下跑之后

外边的按钮也跟着往下跑呢

我先把这个小图片恢复回来

(把这个先关掉)

然后把这个middle也去掉

大家看现在这种情况哈

那我先把它选中

大家注意看

其实啊从这个边缘到下边这块

在Button里

它是保持了一个垂直居重的状态

我为什么提这个呢

因为

这个Button上下偏移是跟这个有关系的

主要有两点决定因素

第一点就是button这个元素比较特殊

它会永远让里边的内容啊

保持一个垂直居中的状态

这个咱们一会试一下

第二个因素呢

就是这个button自身的vertical-align

等于baseline

也就是说

他要保持里边的内容是在整行

的贝斯兰对齐上

何以见得呢

我们可以测一下

我们在这加1个x x在这加1个x x

然后呢我们在这加1个background-color

我们来看一下啊

他们呀都是在这条贝斯兰上对齐的

有了这两点因

素呢大家看

里边的内容虽然向上偏移了

但是对于这个button来说

他既要保持里边的内容在baseline上

还要保持他们(整体在内部)垂直居中

所以外边的button会跟着也向上偏移

所以啊这种场景下

我们可以这样给这个button啊

加一个vertical-align

等于top什么意思呢

就是我们让这个button啊

保持跟整行的顶端对齐

保持这样的对齐这样就没问题了

至于说里边的这个小图片

怎么跟文字保持一个

比较好看的对齐状态

这个咱们前两期视频讲过

大家可以翻看一下

最后啊咱们再来验证一下

关于button里边内容垂直居中的问题

其实很好验证

我们在这儿

写个div然后里面写个button

大家看现在是这样的

然后呢我把它调高一点

height等于比如

看看垂直居中

所以它总是垂直居中的

我再给它加一个br

打开它总是让里边的内容垂直居中

最后更新于