2017-10-12 134 views
0

小提琴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; 
} 

回答

1

变化min-height100%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>

+0

这里添加'max-height'是干什么用的?菜单只能达到100%吗? –

+1

编号'max-height:100%'使滚动条出现,因为菜单溢出了“.menu”的100%高度。请参阅片段。 –

+0

哎呀!在我的个人项目中,我还必须在菜单中添加一个“padding-bottom:65px;”,以便在底部显示最后一个菜单项。我有它'位置:固定; top:65px;'所以它一开始没有显示。 –