对于浏览器中的默认设置,width
获取默认值100%
,height
获取默认值auto
。
众所周知,垂直和水平的默认效果非常不同。然后,框的宽度(例如,<div>
,但所使用的元素将改变结果)将是周围容器块元素的100%作为默认值。并且高度显然等于文本高度。
但如果我设置width: auto;
,意味着width
和height
现在具有相同的值auto
,那么效果仍然非常不同(事实上宽度没有区别。
(我在Windows 7上使用最新版本的谷歌浏览器,但这并没有太大的区别 - 这里的浏览器并没有那么不同。)
我的问题是,这两个非常相似的比例width
和height
怎么会有这样的差异?价值auto
给出了两个非常不同的结果,这是一个很大的区别?
获得与另一个元素上的默认效果相同的效果是非常令人沮丧的。也就是说,它非常难以并且需要额外的工作/变通方法来获得100%高度的效果以及适合文本宽度的宽度的效果。我正在寻找的是更好地理解这两个比例及其auto
值。如果你们有一些很好的资源和链接,我会很高兴。
答案 0 :(得分:1)
你的问题很混乱,但我会从我理解的内容中回答
div
是一个块级元素,默认height
为auto
,默认width
为100%
,所以如果您希望height = text高度,而不是宽度=句子/段落宽度,而不是您需要使用display: inline-block;
或float
简而言之,height
默认为auto
,width
为100%
,用于块级元素。
对于内联元素,height
为自动,width
为自动height
,width
不会生效,除非您使用display: inline-block;
)
答案 1 :(得分:1)
很简单,auto
在传统CSS中评估高度和宽度的方式彼此非常不同,这是Normal Flow工作方式的结果。
section 10 of the CSS 2.1 spec详细介绍了宽度和高度从auto
等值转换为使用值的方式。