3 个回答

不加定位height:100%,因为继承body,body没有设置高度,高度就为0。

绝对定位元素是相对于离它最近的那个 position 不为 static 的外层元素,如果没有这样的元素,则相对于body定位,宽高按浏览器窗口。

这个问题需要了解一下position中relative和absolute的区别 还有这个和%百分号的问题.
简短的讲一下:
relative不会脱离normal float, 他的height会直接依赖直接父元素(em单位也是), 所以百分比计算出来的高度是依照父元素继承的.
absolute会脱离normal float, 即该元素会直接以root标签(类似window但不是<html>标签)进行参照,而root标签的高度存在具体数值, 即浏览器视窗高度, 有明确px值.

例子在这:
html,body高度为0, 但是abosolute后依然能全屏显示.
codepen

如果一定要relative格式, 那么加上这两个

html, css {
  height: 100%;
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题