我目前正在开设一个新网站:http://maartenlodewijk.nl/2013/
右侧的浅灰色条(其中带有“test”一词)应该是我的导航栏。我一直在努力让它的高度填满页面高度(不仅仅是浏览器高度,而是整个页面)。就像我在这个模型中做的那样:http://i.imgur.com/Knjlc.jpg
我现在尝试了多种方法,从设置正文和html高度等简单的方法到100%(没有运气)和CSS hack如下:ejeliot.com/samples/equal-height-columns/example -7.html(哪个有效,但黑客真的是我的最后选择)
这是我的HTML和CSS代码。如果你想知道:是的,我有一个包装器和一个容器div,包装器使容器居中,而容器在包装器内保持一个固定的位置。
HTML
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Maarten Lodewijk // Home</title>
<link href="style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="navigation">
test
</div> <!-- end navigation -->
<div id="wrapper">
<div id="container">
<div id="header">
<img src="images/headerpng.png" alt="Logo" border="0" />
</div> <!-- header -->
<div id="weclome">
<img src="images/homemessagepng.png" width="645" height="203" alt="Maarten Lodewijk, Communication & Multimedia Designer" /></div><!-- end welcome -->
<div id="content">
<div id="leftcolumn">
<h1>HEADER</h1>
<p>TEXT</p>
<p>TEXT</p>
<p>TEXT</p>
</div><!-- end leftcolumn -->
<div id="rightcolumn">
<h1>Contact</h1>
<table width="286" border=0>
<tbody>
<tr>
<td width="96">Mail:</td>
<td width="180" class="rightalign">mail@maartenlodewijk.nl</td>
</tr>
<tr>
<td>Telefoon:</td>
<td class="rightalign">+31 6 348 268 52</td>
</tr>
</tbody>
</table>
<h1>HEADER</h1>
<p>TEXT</p>
<p>TEXT</p>
<p>TEXT</p>
</div><!-- end rightcolumn -->
</div> <!-- end content -->
</div> <!-- end container -->
</div> <!-- end wrapper -->
</body>
</html>
CSS
/* ----- TAGS -------*/
body {
font-size: 100%;
padding: 0px;
margin: 0px;
font-family: Georgia, "Times New Roman", serif;
background: #e8e8eb url(images/bg.png) repeat-y;
color: #666666;
}
html{
}
h1{
font-size: 150%;
color: #ff3366;
padding-top:30px;
}
/* ----- LAY OUT -----*/
#wrapper{
width:955px;
margin-left:auto;
margin-right:auto;
}
#container{
width:645px;
margin-left:20px;
}
#content{
padding: 0px 20px 0px 20px;
}
#navigation{
position:absolute;
top:0;
right:0;
width: 16%;
min-width: 163px;
max-width:233;
background-image:url(images/navbarbg.jpg);
height: 100%;
}
#leftcolumn{
width:286px;
float:left;
}
#rightcolumn{
width:286px;
float:right;
}
/* ----- CLASSES -----*/
.rightalign{
text-align:right;
}
答案 0 :(得分:0)
如果我看到了您的布局,那么如果您将position:fixed
而不是position:absolute;
提供给 #navigation DIV,那就太好了。写得像这样:
#navigation{
position:fixed;
top:0;
right:0;
width: 16%;
min-width: 163px;
max-width:233;
background-image:url(images/navbarbg.jpg);
height: 100%;
}
答案 1 :(得分:0)
请为#wrapper
添加背景颜色,并看到#leftcolumn
和#rightcolumn
不在#wrapper
区域。也许这是您模板中的问题。修好之后请检查。
如果这不起作用,您可以使用jQuery动态获取高度并设置导航高度。
答案 2 :(得分:0)
在此布局中存在一个大问题,即您在身体标记1920x99
上使用背景图像,因此您的身体仅对此部分作出反应。
在您的布局中没有任何内容可以合作,您应该重新构建它并为每个部分使用适当的样式
答案 3 :(得分:0)
如果您希望菜单始终可见,您可能希望使用previous answer中的解决方案。
如果您只是想在滚动后扩展侧边栏 - 您需要使用所谓的css equal height columns
- 以下是它们的示例:http://www.vanseodesign.com/css/equal-height-columns/
答案 4 :(得分:0)
如果您想要相同的身高#navigation
而#wrapper
应用此课程.equal_height
和
将此jquery函数与库文件
一起使用function equalHeight(group) {
tallest = 0;
group.each(function() {
thisHeight = $(this).height();
if(thisHeight > tallest) {
tallest = thisHeight;
}
});
group.height(tallest);
}
$(document).ready(function() {
equalHeight($(".equal_height"));
});
愿它能帮到你。