关于height:100%

2,278 阅读1分钟

先说结论:

  1. 正常文档流下,height:100%是相对于父元素而言的。同时,父元素需要设置具体的高度才能生效。如果父元素没有具体高度,那么子元素的height:100%会失效。
  2. 如果父元素的高度也是100%,那么会继续向上找,直到找到一个设有固定高度的父元素。如果这中间有一个父元素没有设置height,那么会停止,失效。这种寻找会一直找到html或body
  3. 如果父元素的高度没有设置,那么高度会由里面最高的子元素撑开。所以子元素设置百分比也无法计算出。
  4. 绝对定位的元素,脱离了文档流,不会对父元素的高度造成影响。
  5. 绝对定位的元素,height设置百分比,是相对于最近一个非static的父元素而言。如果这个父元素的高度是由里面的元素撑开的,即没有设置具体高度,也没有设置百分比。那么这个时候,绝对定位的子元素设置百分比是有效的。就是相对于这个父元素被撑开的高度。

实践:

image.png

【实现左边图片的高度由右边内容决定】

给左边图片设置absolute,右边内容不设置高度,由内容撑开。这俩元素的父元素设置relative。然后给左边图片设置height:100%即可。