请查看this fiddle。
这是一个更复杂形式的非常愚蠢的版本。在.dojoxAlertBar
中,出于编程原因,高度设置为100%。事情都很好,直到我将#registerform
的高度设置为一组数字:
/* height:117px; */
如果没有这个,消息的高度“就像它需要的那样大”。但是,取消注释CSS中的117px高度会导致.dojoAlertBox
的高度等于#registerForm
。
有人可以解释一下为什么会这样吗?我一直在误解“高度”在CSS中是如何工作的。 “100%”究竟意味着什么?如果它意味着“100%的包含元素”,那么即使父母没有指定的高度,为什么不设置为“大”?
事实上,如果我可以乞求,有一个简单的表格,说明如何计算固定/绝对和相对/静态元素的高度,那也很好。
答案 0 :(得分:1)
没有这个,消息的高度“就像它需要的那样大”。
要为元素(.dojoAlertBar
)指定百分比高度,其父元素(#registerForm
)必须具有显式高度。因为,在您的示例中,.registerForm
的高度为auto,所以该块将采用其内容的高度。
然而,解决这个问题的结果是使评论框与#registerForm一样大......那“100%”究竟是什么意思?
高度为100%表示该元素的高度为其父级的100%。因此,父div必须具有显式的height属性。如果#registerForm
的高度为117px,则表示.dojoAlertBar
将为该高度的100%,或者为117px。