关于inline-block

278 阅读1分钟

天生 inline-block 元素

浏览器还有默认的天生 inline-block 元素(拥有内在尺寸,可设置高 宽,但不会自动换行),有哪些?

答案:<img>、<input>、<label>、<button>、<textarea>、

外边距重叠问题

外边距重叠就是 margin-collapse。

在 CSS 当中,相邻的两个盒子(可能是兄弟关系也可能是祖先关系)的外边距可以结合 成一个单独的外边距。这种合并外边距的方式被称为折叠,并且因而所结合成的外边距称为 折叠外边距。

折叠结果遵循下列计算规则:

  1. 两个相邻的外边距都是正数时,折叠结果是它们两者之间较大的值。
  2. 两个相邻的外边距都是负数时,折叠结果是两者绝对值的较大值。
  3. 两个外边距一正一负时,折叠结果是两者的相加的和。

遇到的一个问题--inline-block的间隙

一、现象描述

真正意义上的inline-block水平呈现的元素间,换行显示或空格分隔的情况下会有间距,很简单的个例子:

<input /> <input type="submit" />

我们使用CSS更改非inline-block水平元素为inline-block水平,也会有该问题:如下!

inline-block元素间空隙去除

其实这种表现是符合规范的应该有的表现(如果有人认为是bug就太()ay ()oy 了)。

参考文章:inline-block元素间空隙去除

不过,这类间距有时会对我们布局有影响,参考上述文章中几种方法后,我设置margin-right=-5px;就是设置负值,可以解决这个问题。