HTML给div设置百分比高度无效的解决方式

给div设置height:100%;

<!DOCTYPE html> 
<html>   
<head> 
    <meta charset=utf-8>   
    <title>div高度</title>  
    <style>
        *{margin:0;padding:0}
        .nav{
            width:200px;
            height:100%;
            background-color:#c7c7c7;
        }
    </style>
</head>   
<body>  
  <div class="nav">  
    divdivdiv
  </div>  
</body>   
</html> 

可div并没有按照所想的那样展开,但将div设置固定高度时能够正常展开,这是什么原因?
01.png-3.1kB
经过查找资料后,在给元素设置百分比高度时要制定父布局高度。正常情况下最外层的父布局是根据内容来确定的,正如上图,div的高度是21px。html的高度也是21px。既然知道问题原因后,那下面的事情就好办了。

解决方法一:
给外层设置高度为:100%

<!DOCTYPE html> 
<html style="height:100%">   
<head> 
    <meta charset=utf-8>   
    <title>div高度</title>  
    <style>
        *{margin:0;padding:0}
        .nav{
            width:200px;
            height:100%;
            background-color:#c7c7c7;
        }
    </style>
</head>   
<body style="height:100%">  
  <div class="nav">  
    divdivdiv
  </div>  
</body>   
</html> 

02.png-3.1kB

解决方法二:

<!DOCTYPE html> 
<html>   
<head> 
    <meta charset=utf-8>   
    <title>div高度</title>  
    <style>
        *{margin:0;padding:0}
        .nav{
            width:200px;
            height:100%;
            position:fixed;
            background-color:#c7c7c7;
        }
    </style>
</head>   
<body>  
  <div class="nav">  
    divdivdiv
  </div>  
</body>   
</html> 

可能会疑问为什么要用position:fixed。先看下W3C手册怎么说的吧~

03.png-50.2kB

是不是秒懂的节奏!??

两种方法各有不同。可以根据实际情况来做判断用哪种

  • 6
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值