如何让一个元素溢出:当父元素溢出时为auto:隐藏?
问题描述:
小提琴here如何让一个元素溢出:当父元素溢出时为auto:隐藏?
我试图让这个如果菜单是大于100%的高度,我可以在菜单中滚动,而不是在身体,直到菜单关闭。
当菜单打开我申请了以下内容:
body.menu-open {
overflow: hidden;
}
和菜单样式:
.navbar .menu {
position: fixed;
width: 30%;
height: auto;
min-height: 150%; /* height greater than 100% */
overflow: auto;
top: 50px;
left: -30%;
background-color: DeepSkyBlue;
transition: left 0.2s ease-in-out;
}
答
变化min-height
到100%
与100%
添加max-height
到菜单:
.navbar .menu {
position: fixed;
width: 30%;
height: auto;
min-height: 100%;
max-height: 100%;
overflow: auto;
top: 50px;
left: -30%;
background-color: DeepSkyBlue;
transition: left 0.2s ease-in-out;
}
$('.navbar .fa-bars').on('click', function() {
\t $('body').toggleClass('menu-open');
\t $('.navbar .menu').toggleClass('in');
});
body {
min-height: 100%;
height: 1000px;
margin: 0;
padding: 0;
}
body.menu-open {
overflow: hidden;
}
.navbar {
height: 50px;
background-color: royalblue;
display: flex;
align-items: center;
position: fixed;
width: 100%;
}
.navbar .fa-bars {
color: #fff;
padding: 15px;
cursor: pointer;
}
.navbar .menu {
position: fixed;
width: 30%;
height: auto;
min-height: 100%;
max-height: 100%;
overflow: auto;
top: 50px;
left: -30%;
background-color: DeepSkyBlue;
transition: left 0.2s ease-in-out;
}
.navbar .menu.in {
left: 0;
}
.navbar .menu a {
color: #fdfdfd;
text-decoration: none;
}
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="navbar">
<div class="menu-icon">
<i class="fa fa-bars fa-2x"></i>
</div>
<div class="menu">
<ul class="nav">
<li><a href="#">Item</a></li>
<li><a href="#">Item</a></li>
<li><a href="#">Item</a></li>
<li><a href="#">Item</a></li>
<li><a href="#">Item</a></li>
<li><a href="#">Item</a></li>
<li><a href="#">Item</a></li>
<li><a href="#">Item</a></li>
<li><a href="#">Item</a></li>
<li><a href="#">Item</a></li>
<li><a href="#">Item</a></li>
<li><a href="#">Item</a></li>
<li><a href="#">Item</a></li>
<li><a href="#">Item</a></li>
<li><a href="#">Item</a></li>
<li><a href="#">Item</a></li>
<li><a href="#">Item</a></li>
<li><a href="#">Item</a></li>
<li><a href="#">Item</a></li>
<li><a href="#">Item</a></li>
<li><a href="#">Item</a></li>
<li><a href="#">Item</a></li>
<li><a href="#">Item</a></li>
<li><a href="#">Item</a></li>
<li><a href="#">Item</a></li>
<li><a href="#">Item</a></li>
<li><a href="#">Item</a></li>
<li><a href="#">Item</a></li>
<li><a href="#">Item</a></li>
<li><a href="#">Item</a></li>
<li><a href="#">Item</a></li>
<li><a href="#">Item</a></li>
<li><a href="#">Item</a></li>
<li><a href="#">Item</a></li>
<li><a href="#">Item</a></li>
<li><a href="#">Item</a></li>
</ul>
</div>
</div>
这里添加'max-height'是干什么用的?菜单只能达到100%吗? –
编号'max-height:100%'使滚动条出现,因为菜单溢出了“.menu”的100%高度。请参阅片段。 –
哎呀!在我的个人项目中,我还必须在菜单中添加一个“padding-bottom:65px;”,以便在底部显示最后一个菜单项。我有它'位置:固定; top:65px;'所以它一开始没有显示。 –