前端之路前端开发那些事儿

【CSS】height:100%

2020-04-21  本文已影响0人  前端菜篮子

高度设置为100%不起效,为啥呢?

<div class="main">
  <div class="pos"> hehdhdhdh </div>
</div>
<style>
.pos{
  width: 100%;
  height: 100%;
}
</style>

浏览器渲染的基本操作:

浏览器首先下载文档内容,加载头部的样式资源,然后按照从上倒下,从外到内的顺序渲染dom内容。套用本例就是先渲染父元素,在渲染子元素。

对于width来说,当渲染父元素的时候,子元素的width:100%,并未被渲染,等渲染子元素的时候父元素的宽度已经固定,如果宽度不够,溢出就好了,overflow 属性就是为此而生的。

那么宽都可以,为什么高就不行呢。规范给出了答案:如果包含块的高度没有显式指定,且该元素不是绝对定位,那么则计算值为auto

显然auto百分比计算,肯定是算不了的。

但是宽度的解释为:如果包含块的宽度取决于该元素的宽,那么产生该元素的布局在CSS2.1中是未定义的。规范没有明确,那么就由浏览器自由发挥。

既然原因找到了,问题相应的也就解决了。

<div>
  <div> hehdhdhdh </div>
</div>
<style>
html, body {
  height: 100%;
}
.main {
  height: 100%;
}
.pos{
  width: 100%;
  height: 100%;
  position: absolute;
}
</style>

几点说明

上一篇 下一篇

猜你喜欢

热点阅读