CSS中height属性的'auto'值到底是什么意思?

5

w3schools表示对于height属性:

auto: 浏览器计算高度。这是默认值。

但是“浏览器计算高度”是什么意思?它是否只是简单地将包含元素的高度相加?所有浏览器都使用相同的方法进行计算吗?


5
尽管在这种特定情况下没有任何问题,但总体而言,我建议你远离w3schools.com。他们的信息很多是误导性或不正确的,并且他们经常宣传不良实践。Mozilla开发者网络是网站开发的绝佳资源。 - Andy E
1
你刚刚提醒了我一项我曾经在Google上使用过的老方法:"无论什么关键词 MDN",它会列出最相关的MDN内容搜索结果。比如说:".click MDN". - pencilCake
1
是的,每当我需要快速查看某些内容时,我就会这样做。 - Andy E
3个回答

4

“浏览器计算高度”是什么意思?

它的意思是浏览器会将元素的高度调整到足够容纳其内容。

这是否意味着,如果包含的元素相互堆叠,它只是简单地将它们的高度相加?

不是这样的,它比这更复杂,但我确定这是其中一部分。

所有浏览器都使用相同的方法来计算高度吗?

不是的,通常会有微小的差异。如果您打算基于此进行计算,请在JavaScript中计算元素的高度,并不要假设它在所有浏览器中的高度都相同。


4

CSS 2.1规范和CSS3基本框模型规范中有关于浏览器如何计算高度的章节:

我发现将它们翻译成实际发生的情况有些困难,而且我无法确定浏览器是否遵循这些描述。


2

它总结了:包含元素、填充、边框和外边距的大小。

求和的方法在所有浏览器中应该是相同的,但元素的大小有所不同。


......加上折叠边距。这不是一个简单的计算。 - Álvaro González
难道不是负边距引起的吗?而且它只关注正常流中的元素。 - Quentin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接