尝试将 div 大小调整为整个页面的百分比

问题描述 投票:0回答:1

尝试将 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>
html css twitter-bootstrap
1个回答
0
投票

使用 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>

© www.soinside.com 2019 - 2024. All rights reserved.