css – 将“display:inline-block”和“position:absolute”结合起来:会发生什么?

前端之家收集整理的这篇文章主要介绍了css – 将“display:inline-block”和“position:absolute”结合起来:会发生什么?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
IE和WebKit浏览器似乎同意“position:absolute”应用于“display:inline-block”(或者,对于IE7,简单的“inline”元素设置为“hasLayout”)应该会导致块内嵌.也就是说:
Hello there <label style='position: absolute; display: inline-block'>sir</label>

这些浏览器将显示

Hello theresir

要么

Hello there sir

但是,Firefox(3及以上,我认为)会给出这样的:

Hello there
sir

也就是说,它们使“内联块”元素从一个新行开始.现在,这显然不是“内联块”没有与“position:absolute”结合的情况,也不是“position:absolute”没有“display:inline-block”的情况.这是一个错误,还是一个糟糕的(含糊不清的)规范?

Here是一个非常简单的jsfiddle.

(编辑 – 也许这就是Firefox用“position:absolute”和没有“display”设置做的事情…)

解决方法

这里的正确行为实际上并未在规范中定义.垂直位置应该是“好像位置不是绝对的,有点”,基本上.更准确地说,http://www.w3.org/TR/CSS21/visudet.html#abs-non-replaced-height的这一部分是相关的:

But rather than actually calculating the dimensions of that
hypothetical Box,user agents are free to make a guess at its probable
position.

也就是说,实现这一目标的Gecko代码早于Gecko实现的内联块,因此只检查原始显示是否为“内联”.我提交了https://bugzilla.mozilla.org/show_bug.cgi?id=674435,以便在Gecko中进行更改.

原文链接:https://www.f2er.com/css/215892.html

猜你在找的CSS相关文章