`width`和`height`默认设置的区别

时间:2013-07-16 12:52:36

标签: css height width default default-value

对于浏览器中的默认设置,width获取默认值100%height获取默认值auto

众所周知,垂直和水平的默认效果非常不同。然后,框的宽度(例如,<div>,但所使用的元素将改变结果)将是周围容器块元素的100%作为默认值。并且高度显然等于文本高度。

但如果我设置width: auto;,意味着widthheight现在具有相同的值auto,那么效果仍然非常不同(事实上宽度没有区别。

(我在Windows 7上使用最新版本的谷歌浏览器,但这并没有太大的区别 - 这里的浏览器并没有那么不同。)

我的问题是,这两个非常相似的比例widthheight怎么会有这样的差异?价值auto给出了两个非常不同的结果,这是一个很大的区别?

获得与另一个元素上的默认效果相同的效果是非常令人沮丧的。也就是说,它非常难以并且需要额外的工作/变通方法来获得100%高度的效果以及适合文本宽度的宽度的效果。我正在寻找的是更好地理解这两个比例及其auto值。如果你们有一些很好的资源和链接,我会很高兴。

2 个答案:

答案 0 :(得分:1)

你的问题很混乱,但我会从我理解的内容中回答

div是一个块级元素,默认heightauto,默认width100%,所以如果您希望height = text高度,而不是宽度=句子/段落宽度,而不是您需要使用display: inline-block;float

简而言之,height默认为autowidth100%,用于块级元素。

对于内联元素,height为自动,width为自动heightwidth不会生效,除非您使用display: inline-block;

Demo

答案 1 :(得分:1)

很简单,auto在传统CSS中评估高度和宽度的方式彼此非常不同,这是Normal Flow工作方式的结果。

section 10 of the CSS 2.1 spec详细介绍了宽度和高度从auto等值转换为使用值的方式。