例子:
<style>
div {
position:absolute; left:auto; right:auto; width:auto;
margin:0; padding:0; border:0;
}
</style>
<div id="containingBlock">
foo
<div id="inner">this is my text</div>
</div>
要确定两个 div 的宽度,我们需要http://www.w3.org/TR/CSS21/visudet.html#abs-non-replaced-width *
让我们从#inner
:
获得首选的最小宽度
this is my text |----| preferred minimum width
获得首选宽度
this is my text |---------------| preferred width
将两者与可用宽度进行比较:
computed width = min(max(preferred minimum width, available width), preferred width)
简单的。但是可用宽度是多少?由于我们没有边距/填充/边框,它只是
containingBlock
. 但是现在我们得到了一个无限循环,因为同样的算法再次适用:获取 containsBlock 的首选最小宽度
foo +-------+ | inner | +-------+ |--?????--| preferred minimum width
换句话说:要获得 的宽度inner
,我们必须知道 的宽度,containingBlock
反之亦然。
实际上,看起来浏览器只是available width = 0
在这种情况下假设:http://jsfiddle.net/pxvJJ/6/。但这不在规范中,还是我遗漏了一些明显的东西?
* (请注意,此规范尚未被 CSS3 取代)