html - 父 div 的高度百分比未转换为子 div 的百分比

标签 html css flexbox

上周早些时候我问了一个类似的问题,但我仍在努力为我正在构建的调查问卷找到解决方案。

目前,我将 htmlbody 标签设置为 100% 高度,然后将另一个标签 .questionnaire-container 嵌套在 set 中到 100%。

.questionnaire-container 中有一个名为 .questionnaire-box 的容器,它占据了 .questionnaire-container 的 80% 高度,并且在其中我有一个名为 .questions 的标签。

我希望 .questions 填充 100% 的 .questionnaire-box 并让任何溢出文本显示滚动。

我遇到的问题是高度 % 没有一直向下传递,我的溢出也没有被隐藏。我终究无法找出导致此问题的原因。

html, body {
  min-height: 100%; 
}

.questionnaire-container {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 100%;
  background-color: rgba(0,0,255, .1);
}

.questionnaire-box {
  position: relative;
  width: 80%;
  min-height: 85%;
  margin: 20px auto;
  background-color: #ffffff
 }

.questions {
  min-height: 100%;
  padding: 2rem 3rem;
  overflow: auto;
}
<div class="questionnaire-container">
  <form class="questionnaire-box">
    <div class="questions">
      <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>

      <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>

      <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>

      <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>

      <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
    </div>
  </form>
</div>

最佳答案

overflow:hidden 添加到 .questionnaire-box 并且您可以将所有 min-height 更改为 height

html,
body {
  height: 100%;
  margin:0
}
.questionnaire-container {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 255, .1);
}
.questionnaire-box {
  position: relative;
  width: 80%;
  height: 85%;
  margin: 20px auto;
  background-color: #ffffff;
  overflow: hidden
}
.questions {
  height: 100%;
  padding: 2rem 3rem;
  overflow: auto;
}
<div class="questionnaire-container">
  <form class="questionnaire-box">
    <div class="questions">
      <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure
        dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>

      <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure
        dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>

      <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure
        dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>

      <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure
        dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>

      <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure
        dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
    </div>
  </form>
</div>

关于html - 父 div 的高度百分比未转换为子 div 的百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38571031/

相关文章:

html - 颜色选择器的问题

javascript - 将特定 div 之后的所有内容移至不同标签下

html - 如何使用 CSS/Bootstrap 网格系统水平排列两行?

jquery - 内联 SVG 的 <a> 标记链接在 Safari 中不起作用

css - 父 div 在 IE7 中阻止了子 div 的光标焦点

html - 为什么 <a> 图像之间有 -(破折号)或 _(下划线)

html - 用于在动态调整 2 个元素大小时对齐 3 个元素的纯 HTML/CSS 解决方案?

html - CSS - 如何使容器适合祖 parent 的所有可用高度?

html - 如何在固定容器内使用 flexbox?

reactjs - 当同一行中有其他组件时,如何使组件水平居中?