首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >CSS:导航栏扩展到整个页面的高度

CSS:导航栏扩展到整个页面的高度
EN

Stack Overflow用户
提问于 2009-10-20 06:04:36
回答 3查看 8.8K关注 0票数 2

我对CSS不是很在行,但希望这里有人能帮上忙。我有以下样机。(我已经剥离了我的内容,以便于查看)

代码语言:javascript
运行
复制
<body>
   <div id="container">
     <div id="header"></div>
      <div id="body">
          <div id="navBar"></div>
          <div id="mainContent"></div>
      </div>
     <div id="footer"></div>
   </div>
</body>

我的CSS如下:

代码语言:javascript
运行
复制
html,
body {
   margin:0;
   padding:0;
   height:100%;
}
#container {
   min-height:100%;
   position:relative;
}
#header {
   background:#ff0;
   padding:10px;
}
#body {
   padding:10px;
   padding-bottom:60px;   /* Height of the footer */
}
#footer {
   position:absolute;
   bottom:0;
   width:100%;
   height:60px;   /* Height of the footer */
   background:#6cf;
}

现在我不确定如何将"navBar“设置为页面高度。我试过增加高度: 100%,但不起作用。

谢谢,马特

EN

回答 3

Stack Overflow用户

发布于 2009-10-19 22:14:22

赋予一个元素height: 100%将使它的高度等于它所包含的元素的高度,在本例中为#body。因为在你的示例中,body的大小和容纳其内容所需的大小一样大,所以#navBar将是该高度的100%。

为了解决这个问题,你可以让#container#body height:100%和body标签一样高,因为body标签占据了整个页面:

代码语言:javascript
运行
复制
#container {
    height:100%
}
#body{
    height:100%;
}

为了完整起见,您还可以设置#navBartopbottom

代码语言:javascript
运行
复制
position: absolute; 
top: 20px; 
bottom: 60px; /* height of footer */

要了解其中的区别,可以尝试使用。使用heighttop, bottom, position属性来查看您的更改如何影响布局;只是不要同时使用这两种定位方法!

票数 2
EN

Stack Overflow用户

发布于 2009-10-19 22:45:39

您的问题似乎是,直到BODY标签的每个父都必须显式地具有100%的高度,以便#navBar DIV具有100%的高度。这意味着您还必须将#body的高度设置为100%,因为它是#navBar的父容器。

票数 1
EN

Stack Overflow用户

发布于 2009-10-19 22:13:26

看看这个site --我假设你想要一个两栏的布局--这个网站会告诉你如何做你想做的事情。希望能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1591397

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档