我正在尝试在页面左侧创建一个与网站一样长的垂直导航栏(即向下延伸到页脚)。但是,当它上面没有任何东西时它只是正确的高度 - 当我添加网站的标题时,导航栏比网站更长。
gameList - root node
Basketball - child node of gameList
addedBy: "xxx" - child node of key Basketball
gamename: "Basketball" - child node of key Basketball
body{
padding: 0px;
margin: 10px auto 0 auto;
font-family: 'corbel','arial';
background: #fff;
color: #444; /* text colour */
max-width: 1500px;
height: auto;
position: relative;
}
footer{
background: #333;
color: #fff;
padding: .1em 3em;
width: auto;
margin-left: 130px;
}
h1{
text-align: center;
font-size: 85px;
padding: 10px;
margin: auto;
margin-top: 10px;
}
#content{
margin-left: 150px;
}
/* Navbar */
#navbar{
background-color: #599;
list-style-type: none;
overflow: hidden;
width: 130px;
margin: 0px;
font-family: 'corbel','arial';
text-align: center;
padding-left: 0px;
height: 100%;
float: left;
position: absolute;
}
#nav_li{
text-align: center;
}
#nav_a{
text-decoration: none;
margin: 10px;
display: inline-block;
color: white;
}
非常感谢能够提供帮助的任何人!
答案 0 :(得分:0)
有多种方法可以解决此问题 - 最简单的方法是将html, body
背景颜色作为CSS中的侧边栏(使用height: 100%
),然后添加粘性header
和在顶部和底部footer
,并在容器元素上添加背景颜色。
这样的事情:
* { margin: 0; padding: 0;}
html, body {
height: 100%;
background: blue;
}
#content {
background: white;
}
h1 {
background: white;
position: absolute;
top: 0;
left: 0;
right: 0;
height: 3em;
}
#menu {
margin-top: 3.5em;
float: left;
width: 7em;
color: white;
}
#content {
background: white;
height: 100%;
margin: 3em 0 4em 7em;
padding-top: 3.5em;
}
footer {
position: fixed;
bottom: 0;
left: 0;
right: 0;
height: 4em;
background: gray;
}
<body>
<h1>This is a heading</h1>
<ul id="menu">
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
</ul>
<div id="content">
<p>Something goes in here</p>
</div>
<footer>This is the footer</footer>
</body>
答案 1 :(得分:0)
尝试使用position:fixed
和min/max-height
我还建议使用calc()
来计算导航栏的大小。
这里有jsfiddle