尝试将 div 高度设置为身体高度的百分比。我正在使用引导版本 5.3。我能够使 body 元素 100% 占据视图。然而,所有其他 div 的大小都相同,均为 24px。我试图覆盖页面的整个高度。以下不起作用。我已经浏览了其他几篇解决此问题的帖子,但到目前为止没有一个对我有用。我缺少什么?完整代码就吹吧。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<link
rel="stylesheet"
href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css"
/>
</head>
<style>
html {
height: 100%;
}
body {
min-height: 100%;
margin: 0;
padding: 0;
}
</style>
<body>
<div class="container-fluid">
<div class="row">
<div class="col-12" style="height: 5%; background-color: blueviolet">
header
</div>
</div>
<div class="row" style="height: 86.5%; background-color: aliceblue">
<div class="col-12">main</div>
</div>
<div class="row" style="height: 1.9%; background-color: green">
<div class="col-12">thin banner</div>
</div>
<div class="row" style="height: 6.56%; background-color: darkslategray">
<div class="col-12">footer</div>
</div>
</div>
</body>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"></script>
</html>
使用 Flexbox,这是可能的。我将
height
改为均匀四舍五入,以便在视觉上更具吸引力并更好地了解正在发生的情况。另外,我删除了内联样式,因为它更容易维护。正如您所看到的,我为每个 .row
添加了一个独特的类,以便于寻址。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" />
</head>
<style>
html,
body {
height: 100%;
margin: 0;
padding: 0;
}
.container-fluid {
display: flex;
flex-flow: column;
height: 100%;
}
.header {
height: 10%;
background-color: blueviolet
}
.main {
height: 70%;
background-color: aliceblue
}
.banner {
height: 10%;
background-color: green
}
.footer {
height: 10%;
background-color: darkslategray
}
</style>
<body>
<div class="container-fluid">
<div class="row header">
<div class="col-12" style="">
header
</div>
</div>
<div class="row main" style="">
<div class="col-12">main</div>
</div>
<div class="row banner" style="">
<div class="col-12">thin banner</div>
</div>
<div class="row footer" style="">
<div class="col-12">footer</div>
</div>
</div>
</body>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"></script>
</html>