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