理解 height 百分比

相对于父元素的高度根据百分比计算高度。如果父元素没有设置高度或者父元素高度百分比不生效,则无法计算自己的高度。当没有给父元素设置高度或父元素高度百分比不生效时,父元素高度由子元素高度决定。

html 的父元素可以理解成 window,浏览器会将 html 填充完整个浏览器窗口:

当 html 高度设置为具体像素值或百分比时:

  • html 高度大于浏览器窗口高度:会出现滚动条;
  • html 高度大于浏览器窗口高度:浏览器同样会将 html 填充完整个浏览器窗口;

但是 html 的子元素高度设置成百分比时,会按照 html 实际设置的高度值来计算百分比。

<style>
    html {
        height: 50%;
        background-color: yellowgreen;
    }
    body {
        height: 100%;
        background-color: white;
    }
    .parent {
        height: 50%;
        background-color: cadetblue;
    }
</style>
<div class="parent"></div>

效果:

在这里插入图片描述

将 html 高度设置为 200px ,效果如下:

在这里插入图片描述

当 html 高度大于浏览器窗口高度时,会出现滚动条:

<style>
    html {
        height: 150%;
        background-color: yellowgreen;
    }
    body {
        height: 100%;
        background-color: white;
    }
    .parent {
        height: 50%;
        background-color: cadetblue;
    }
</style>
<div class="parent"></div>

效果:

在这里插入图片描述

如果父元素没有设置高度或者父元素高度百分比没有生效,那么子元素的高度百分比不会生效:

<style>
    body {
        height: 50%;
        background-color: yellowgreen;
    }
    .parent {
        height: 100%;
        background-color: cadetblue;
    }
</style>
<div class="parent">html 没有设置高度</div>

这里没有 html 高度,因此 body 的高度规则跟 html 类似,但是这里的 body 实际高度为 0,所以 parent 的高度百分比不生效,其高度由子元素决定。

效果:

在这里插入图片描述

参考:理解 height 百分比

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值