【问题标题】:CSS html 100 % width height layoutCSS html 100 % 宽度高度布局
【发布时间】:2013-02-16 23:11:31
【问题描述】:

我正在尝试构建一个占用浏览器中所有可见空间的布局。我按照不同 SO 帖子中的建议设置了 html, body height 100%。以下是我正在尝试的标记

<div>
  <div class="header">
  </div>
  <div class="main">
    <div class="container">
        <div class="content"></div>
    </div>
  </div>
</div>

CSS:

html, body {
  height: 100%;
  max-height: 100%;
}
.header {
  height: 30px;
  background-color: #000;
}
.main {
  height: auto;
  padding-right: 0px;
  max-height: 100%;
  width: 100%;
  display: block;
  clear: both;
  background-color: #eee;
}

.container {
  width: 90%;
  overflow-y: scroll; 
  background-color: #ccc;
}
.content {    
  height: 2000px;
  width: 80%;
  background-color: #fff;
}

内容 div 的高度会导致整个主体变大,因此会显示浏览器的默认滚动条。尽管我已将容器 div 设置为滚动以显示内容 div 的内容,但容器 div 的滚动条仍然不显示。我该如何解决这个问题。

这里是jsfiddle

【问题讨论】:

  • @SheikhHeera 所以如果不使用相对位置或绝对位置就无法实现这一点?

标签: css html


【解决方案1】:

已编辑:

默认情况下,div 元素的height 取决于其内容(与 width 不同,它占用父元素的 100% 宽度)。这就是为什么当您将内部元素的高度指定为百分比时,如果您的父标签没有明确定义的高度(这意味着必须将高度定义到 DOM 的最顶部,因为高度不可继承),则它将不准确。 .

在您的情况下,您需要将 height: 100%; 或任何其他高度添加到您的 .container.main 和包装器 div

modified fiddle

【讨论】:

  • 谢谢,以像素为单位设置高度确实有效,但以 %age 为单位设置却没有,这就是我所追求的。因为以像素为单位设置会破坏目的。
  • 直接在浏览器中尝试,而不是fiddle
  • 与我的实际代码中的结果相同,容器 div 的高度确实为 100%。容器 div 是相对定位的 ..
  • 对不起,它对我有用,因为我没有使用任何文档类型
  • 我已经更改了答案以使其在指定 doctime 时起作用
猜你喜欢
  • 2011-09-03
  • 1970-01-01
  • 2010-09-06
  • 1970-01-01
  • 2010-11-03
  • 2012-12-20
  • 1970-01-01
  • 1970-01-01
  • 2013-07-23
相关资源
最近更新 更多