HTML给div设置百分比高度无效的解决方式 - 库塔姆斯 - CSDN博客

时间:2023-03-08 22:12:28

原文:HTML给div设置百分比高度无效的解决方式 - 库塔姆斯 - ****博客

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.****.net/HobHunter/article/details/73611192

给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>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

可div并没有按照所想的那样展开,但将div设置固定高度时能够正常展开,这是什么原因?

HTML给div设置百分比高度无效的解决方式 - 库塔姆斯 - ****博客

经过查找资料后,在给元素设置百分比高度时要制定父布局高度。正常情况下最外层的父布局是根据内容来确定的,正如上图,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>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

HTML给div设置百分比高度无效的解决方式 - 库塔姆斯 - ****博客

解决方法二:

<!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>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

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

HTML给div设置百分比高度无效的解决方式 - 库塔姆斯 - ****博客

是不是秒懂的节奏!??

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