我有一个侧边栏菜单:
HTML
<div class="container right-menu">
<nav class="panel-nav">
<ul>
<li><a href="#about us">About us</a></li>
<li><a href="#portfolio">Portfolio</a></li>
<li><a href="#contacts">Contacts</a></li>
</ul>
</nav>
</div>
CSS
.right-menu {
position: relative;
height: 100%;
}
.panel-nav {
position: absolute;
right: 0;
float: right;
width: 195px;
min-height: 100%;
padding: 87px 0 0 21px;
margin-right: -59px;
background: #f6f6f3;
box-shadow: inset 7px 0 5px -6px rgba(0, 0, 0, 0.1);
font-size: 14px;
z-index: 2;
}
我需要做的是panel-nav
是页面的完整高度。但是现在,这个div的高度等于里面内容的高度。如何解决?
答案 0 :(得分:2)
只需将父级div的100%
更改为100vh
即可实现此目的:
.right-menu {
position: relative;
height: 100vh;
}
Jsfiddle:http://jsfiddle.net/rycpx4g2/
vh
是一个CSS3衡量单位,代表viewport height
答案 1 :(得分:1)
您可以在绝对位置元素处设置top: 0
和bottom: 0
,以便根据相对定位的父元素达到100%的高度:
.panel-nav {
position: absolute;
top: 0;
bottom: 0;
}
修改强>
每次滚动时,您都可以使用jQuery并将新的顶部位置设置为.panel-nav
。
$(window).scroll(function() {
var top = $(window).scrollTop();
$('.panel-nav').css({'top': top + 'px'});
});
#parent {
position: relative;
border: 1px solid #333;
width: 200px;
height: 300px;
float: left;
}
#child {
position: absolute;
top: 0;
bottom: 0;
width: 100%;
background-color: red;
}
&#13;
<div id="parent">
<div id="child">
<ul>
<li>text</li>
<li>text</li>
<li>text</li>
<li>text</li>
</ul>
</div>
</div>
&#13;
答案 2 :(得分:1)
看到这个小提琴:http://jsfiddle.net/Bek9L/1879/
<强> HTML 强>
<div class="container">
<div class="sidebar">
<p>This is a side bar</p>
</div>
<div class="content">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean condimentum.</div>
</div>
<强> CSS 强>
html, body{
width: 100%;
margin:0;
padding:0;
}
.container{
border:1px solid red;
position:relative;
}
.content{
width:75%;
margin-left:25%;
}
.sidebar{
position:absolute;
top:0;
left:0;
height:100%;
width:25%;
height:100%;
background:gray;
}
答案 3 :(得分:1)
这里的问题是身高,解决它将html和body的高度添加到100%
即
html,body{
height:100%;
padding:0;
margin:0;
}
答案 4 :(得分:0)
使用position: absolute;
时,您不会设置height
值。
您应该使用top: 0, bottom: 0;
来达到100%的身高。
如果您想确保在滚动窗口时这不会改变,请使用position: fixed;
答案 5 :(得分:0)
使用这种方式非常简单 第1步创建一个空洞div并使用padding-right放置内容 第2步里面再做一个div设置一个位置:固定;并设置高度和颜色
检查代码并轻松执行此操作enter code here
http://jsfiddle.net/simeon1929/h3sqe9re/15/