将HTML区域扩展到屏幕底部,并使用HTML5和CSS创建顶部和左侧菜单栏

将HTML区域扩展到屏幕底部,并使用HTML5和CSS创建顶部和左侧菜单栏,html,css,css-float,Html,Css,Css Float,我正在尝试创建一个页面设置,上面和左边有两个导航区域,与此类似: 浅灰色区域是每个页面的主要内容所在的区域。左侧是第二个导航菜单,该菜单应延伸至屏幕底部,并与主要内容区域保持一致 我不知道如何调整它们,使左侧菜单和主内容区域都向下延伸到屏幕底部。我使用宽度百分比、浮动和位置CSS属性将它们彼此对齐显示属性没有任何效果。我认为问题在于我必须使用以下方法将主内容区域提升95像素: bottom: 95px; 否则,左导航菜单的右下角和主内容区域的左上角会对角接触,标题区域下方会有一个很大的白色间隙

我正在尝试创建一个页面设置,上面和左边有两个导航区域,与此类似:

浅灰色区域是每个页面的主要内容所在的区域。左侧是第二个导航菜单,该菜单应延伸至屏幕底部,并与主要内容区域保持一致

我不知道如何调整它们,使左侧菜单和主内容区域都向下延伸到屏幕底部。我使用宽度百分比、浮动和位置CSS属性将它们彼此对齐显示属性没有任何效果。我认为问题在于我必须使用以下方法将主内容区域提升95像素:

bottom: 95px;
否则,左导航菜单的右下角和主内容区域的左上角会对角接触,标题区域下方会有一个很大的白色间隙,直到它到达浅灰色主内容区域

我发现将其高度扩展到底部的唯一方法是以像素为单位设置其高度,但这并不完全有效,因为我将主内容区域向上移动了95像素,因此主内容区域的底部在其下方有一个白色间隙,并且与左导航菜单不一致。我的HTML分区如下所示:

<body>
  <header>
    <nav id="topMenu">
    </nav>
    <div id="titleAndUserInfo">
    </div>
  </header>

  <nav id="leftMenu">
  </nav>

  <section id="main">
  </section>
</body>
导航标签遵循ul li a模式

更新

我能够让我的CSS和HTML5工作,这样位置是正确的,但是当没有足够的内容自动执行时,左侧的导航菜单和浅灰色的主内容区域仍然没有扩展到屏幕底部。我该怎么强制呢?用100%或px值设置它们的高度似乎不起作用。这是我在Chrome中查看的HTML、CSS和结果

<body>
  <header>
    <nav id="topMenu">
      <ul>
        <li><a href="/">xxx</a></li>
         <li><a href="/Home/About">xxxxx</a></li>
       </ul>
     </nav>
     <div id="titleUserLogin">
       <h1>Title</h1>
       Welcome <strong>test</strong>!
       <a href="/Account/LogOff">Log Off</a>
     </div>
   </header>
   <nav id="leftMenu">
     <ul>
       <li><a href="/">Home</a></li>
       <li><a href="/">xxxx</a></li>
       <li><a href="/">xxxx</a></li>
       <li><a href="/">xxx</a></li>
       <li><a href="/">xxxx</a></li>
       <li><a href="/">xxxx</a></li>
       <li><a href="/">xxxx</a></li>
       <li><a href="/">xxxx</a></li>
       <li><a href="/">xxxx</a></li>
     </ul>
   </nav>
   <section id="main">
     <p>content</p>
   </section>
 </body>


/* General */
body {
  margin: 0;
  padding: 0;
  border: 0;
  height: 100%;
}

/* Header */
header {
  text-align: left;
  float: right;
  position: relative;
  width: 90.5%;
}

div#titleUserLogin {
  color: #fff;
  background-color: #303030;
  display: inline-block;
  width: 100%;
}

div#titleUserLogin h1 {
  display: inline;
}

div#titleUserLogin a {
  text-align: right;
  float: right;
}

/* Navigation menus */
nav#topMenu ul {
  padding: 0 0 2px;
  position: relative;
  display: inline;
}

nav#topMenu ul li {
  list-style: none;
  display: inline;
}

nav#topMenu ul li a {
  background-color: #303030;
  color: #fff;
  -webkit-border-radius: 4px 4px 0 0;
  -moz-border-radius: 4px 4px 0 0;
  padding: 10px 20px;
  line-height: 2.8;
  text-decoration: none;
}

nav#leftMenu {
  background-color: #303030;
  position: relative;
  float: left;
  width: 9%;
}

nav#leftMenu ul {
  position: relative;
}

nav#leftMenu ul li {
  list-style: none;
}

/* main content */
section#main {
  background-color: #d7d7d7;
  height: 100%;
  width: 90.5%;
  float: right;
  height: 100%;
}
解决方案:

添加以下规则,并使用百分比高度调整navleftMenu和sectionmain规则,直到每个规则的内容到达屏幕底部:

html { 
  height: 100%;
}

jsfiddle链接会很有帮助:或者至少发布您的布局的cssTry这个演示:根据您的需要设计css样式可能会很有帮助。