html - 子 div 不会响应百分比高度

标签 html css

当我在一个网站上工作时遇到了我的页脚没有停留在容器 div 底部的问题(页脚不在容器内,它在 HTML 中被放置在它之后)。我意识到这是因为一些子 div 是 float 的,所以我不得不把 overflow:auto 放在容器上——但是,因为我需要 child 有百分比高度,我的高度是 100%,你可能知道overflow:auto + specified height = scrollbar。但是只有一个最小高度不允许 child div 获得他们的高度。两者兼而有之肯定行不通。

我在一些单独的测试文件中重现了该问题,删除了所有不必要的 CSS(尽管我确定仍有一些),这样我就可以清晰地看到问题。 It's on this JSFiddle currently.我目前已将高度注释掉,因为理想情况下我不会使用它。

这是我的容器 div CSS:

  #container {
    position: relative;
    width: 70%;
    /*height:100%;*/
    min-height: 100%;
    overflow: auto;
    margin: 0 auto;
    background-color:#FFDA8A;
  }

还有一个需要百分比高度的子 div:

.featured {
  position: relative;
  width: 100%;
  height: 50%;
  background-color:red;
}

编辑:我想补充一点,我知道为什么会发生这种情况,而不是想知道是否有人偶然发现了一种仅使用 CSS 的方法来处理它。如果它不能是百分比,那么我将研究 flexbox (如 PiniH 所述,谢谢!)。

最佳答案

这是一个老问题,没有很好的答案,通常当事情变成这样时,你最后应该使用 flex 盒子,最小高度属性不会影响 child ,除非它是一个表格,然后它得到一团糟。

您可以添加:

 #container {
    position: relative;
    width: 70%;
    /*height:100%;*/
    min-height: 100%;
    height: 1px;
    overflow: auto;
    margin: 0 auto;
    background-color:#FFDA8A;
  }

但是它不会增长,我想这就是您首先使用最小高度的原因。

一段时间以来,我一直在思考这个问题,最终我认为 flex 是这种情况下唯一的答案。

关于html - 子 div 不会响应百分比高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26872341/

相关文章:

c# - 在没有边框的 native 浏览器中调整 html 滚动条的大小

python - 使用请求 python 抓取网页上的 AJAX 内容

css - 仅更改列的背景颜色

javascript - 如何根据国家名称获取国旗代码?

javascript - 具有选择器和非选择器的 JQuery 选择器

javascript - 使用jQuery创建调查 - 任何示例?

html - 为什么这个文本不对齐 :justified work?

jquery - 使用 CSS 的滑动菜单?

html - 有序(枚举)dl 列表,可能带有 css

javascript - css 转换中的奇怪行为 :rotate