2017-06-05 107 views
0

我試圖從可摺疊邊欄菜單創建一個彈出式子菜單,但彈出式菜單不會完全顯示,因爲邊欄的寬度太小。我如何在不更改側邊欄寬度的情況下進行彈出?從可摺疊邊欄菜單彈出菜單

<div class="sidebar_menu"> 
    <i class="fa fa-times">x</i> 
    <a id="logo_image" href="index.html"></a> 
    <ul class="navigation_selection"> 
    <li class="nav_item"><a class="current"href="index.html">Home</a></li> 
    <li class="nav_item" id="work"><a href="#">Work</a> 
     <ul id="sub_menu"> 
     <li class="nav_item drop_item"><a href="#">Residential</a></li> 
     <li class="nav_item drop_item"><a href="#">Commercial</a></li> 
     <li class="nav_item drop_item"><a href="#">Historical</a></li> 
     </ul> 
    </li> 
    <li class="nav_item"><a href="#">About</a></li> 
    <li class="nav_item"><a href="#">Contact</a></li> 
    </ul> 
</div> 

*{ 
    padding: 0; 
    margin: 0; 
    text-decoration: none; 
    list-style: none; 
} 

body{ 
    background: #f5f5f5; 
    background-size: cover; 
} 

.toggle_menu{ 
    position: fixed; 
    padding: 15px 15px 15px 15px; 
    margin: 20px; 
    color: #f5f5f5; 
    background-color: #05CC56; 
    cursor: pointer; 
    z-index: 10000000; 
    font-size: 100%; 
    opacity: 0; 
    text-align: center; 
    box-shadow: 1px 0px 5px #000; 
} 

.sidebar_menu{ 
    color: #f5f5f5; 
    position: fixed; 
    width: 250px; 
    margin-left: 0; 
    height: 100vh; 
    overflow: hidden; 
    background-color: rgba(17, 45, 17, 0.8); 
    transition: all 0.3s ease-in-out; 
    padding: 5px; 
    border-right: solid 3px #05CC56; 
    z-index: 100000; 
    box-shadow: 1px 0px 5px #000;} 

.fa-times{ 
    right: 10px; 
    top: 10px; 
    opacity: 0.5; 
    cursor: pointer; 
    position: absolute; 
    color: #fff; 
    transition: all 0.3s ease-in-out; 
} 

.fa-times:hover{ 
    opacity: 1; 
} 

.opacity_one:hover{ 
    opacity: 1; 
} 

#logo_image{ 
    float: left; 
    background: url(../img/DDCLogo.png) no-repeat center; 
    background-size: 200px auto; 
    height: 100px; 
    width: 250px; 
    z-index: 10000; 
    margin-bottom: 30px; 
} 

.navigation_selection{ 
    margin: 0 0; 
    display: block; 
    width: 200px; 
    margin-left: 25px; 
} 

.sidebar_menu > ul > li > ul{ 
    margin: 0; 
    padding: 0; 
    width: 0; 
    height: 0; 
    z-index: 1000000000; 
    position: relative; 
    left: -200px; 

} 

.sidebar_menu ul > li:hover > ul{ 
    width:200px; 
    display:block; 
    position:relative; 
    top:0; 
    border: 0; 
    left:200px; 
    z-index: 1000000000; 
} 

.sidebar_menu ul > li:hover > ul > li > a{ 
    background:#e8e8e8; 
} 

.nav_item{ 
    font-weight: 200; 
    font-family: 'Open Sans'; 
    color: #f5f5f5; 
    padding: 12px 0; 
    box-sizing: border-box; 
    font-size: 14px; 
    color: #d8d8d8; 
    border-bottom: solid 1px #f5f5f5; 
    cursor: pointer; 
    transition: all 0.3s ease-in-out; 
    width: 100%; 
} 

.nav_item > a{ 
    display: block; 
    color: #f5f5f5; 
    transition: all 0.4s ease-in-out; 
    width: 100%; 
} 

.nav_item > .current{ 
    color: #05CC56; 
} 

.nav_item:hover > a{ 
    color: #05CC56; 
    margin-left: 10px; 
    transition: all 0.4s ease-in-out; 
} 

.hide_menu{ 
    margin-left: -270px; 
} 

.opacity_one{ 
    opacity: 0.5; 
    transition: all 0.3s ease-in-out; 
} 

.slide > img{ 
    width: 100vw; 
    height: 100vh; 
    max-height: 100vh; 
    overflow: hidden; 
    object-fit: cover; 
    z-index: 1; 
} 


.cycle-slideshow{ 
    width: 100%; 
    height: 100vh; 
    display: block; 
    position: relative; 
    overflow: hidden; 
    z-index: 1; 
} 

.sidebar_menu > h2{ 
    font-family: 'Open Sans'; 
    font-weight: 400; 
    margin-left: 25px; 
    color: #fff; 
    position: 
} 

.box{ 
    font-family: 'Open Sans'; 
    color: #f5f5f5; 
    position: absolute; 
    bottom: 20px; 
    right: 0; 
    background-color: #4e5054; 
    height: 20%; 
    width: 35%; 
    z-index: 9999; 
    opacity: 0.75; 
    overflow: scroll; 
    padding: 5px 5px 5px 40px; 
    box-shadow: 1px 0px 5px #000; 
} 

.box > h3{ 
    font-weight: lighter; 
    padding: 0 0 10px 0 
} 

.foot{ 
    position: absolute; 
    bottom: 0; 
    margin-left: 25px; 
    margin-bottom: 20px; 
    font-size: 10px; 
    font-family: 'Open Sans'; 
    color: #05CC56; 
    text-decoration: none; 
    font-weight: 200; 
} 

.foot > a{ 
    color: #05CC56; 
} 

.logo{ 
    position: absolute; 
    bottom: 15px; 
    left: 15px; 
    width: 45%; 
    z-index: 10000000; 
    opacity: 0; 
    transition: all 0.3s ease-in-out; 
} 

.logo_show{ 
    opacity: 0.8; 
    transition: all 0.3s ease-in-out; 
} 


@media only screen and (max-width: 500px) { 
    body { 
     display: none; 
    } 
} 

​​

忽略所有未使用的樣式。

+1

「*忽略所有未使用的樣式。*」 - 不,從您的代碼/問題中刪除未使用的樣式;你需要發佈一個「* [mcve] *」來重現你的問題,而不是發佈一切。 –

+1

從'.sidebar_menu'中刪除'overflow:hidden'? –

回答

0

是的,刪除溢出:從.sidebar_menu隱藏,但你也應該刪除#sub_menu的高度:0,並使其位置絕對。給nav_item一個相對位置。這樣,您可以添加背景顏色,如果需要,還可以添加#sub_menu或其他樣式。

+0

當我刪除高度:0它導致父列表項擴展到懸停子菜單的高度,我怎麼能停止這種行爲? –

+0

你必須給nav_item一個相對位置。 –

+0

.sidebar_menu> ul> li> ul { display:none; } .sidebar_menu ul> li:hover> ul { width:200px; display:block; position:absolute; top:0; border:0; left:200px; z-index:10; } .nav_item position:relative; position:relative; } –