簡體   English   中英

將子菜單拉伸到父菜單大小

[英]Stretch submenu to parent menu size

我正在使用CSS和javascript創建水平下拉菜單。 我已經將菜單拉伸到想要的寬度(956像素),並且菜單選項在其中展開,但是我不知道如何獲得所需的子菜單。 我希望他們每個人都擁有與父母相同的寬度。 有人可以幫助我嗎?

HTML:

<div id="nav">
  <div id="meny">
    <ul id="menu">
      <li class="dropmenu"><a href="#">Abcde</a>
        <ul class="submenu">
          <li><a href="#">1</a></li>
          <li><a href="#">2</a></li>
          <li><a href="#">3</a></li>
        </ul>
      </li>
      <li class="dropmenu"><a href="#">Fghijklmn</a>
        <ul class="submenu">
          <li><a href="#">1</a></li>
          <li><a href="#">2</a></li>
          <li><a href="#">3</a></li>
        </ul>
      </li>
      <li class="dropmenu"><a href="#">Shop</a>
        <ul class="submenu">
          <li><a href="#">1</a></li>
          <li><a href="#">2</a></li>
          <li><a href="#">3</a></li>
        </ul>
      </li>
    </ul>
  </div>
</div>

CSS:

#nav{
width: 956px;
margin-left: auto;
margin-right: auto;
}

#meny{
display: table;
width: 100%;
border-collapse: collapse;
border: none;
}

#menu{
display: table-row;
list-style: none;
}

.dropmenu{
display: table-cell;
background-color: #ff5b2e;
}

.dropmenu a{
display: block;
text-decoration: none;
text-align: center;
}

.submenu{
display: none;
list-style: none;
background: #ff5b2e;
padding: 0;
position: absolute;
}

.submenu li{
width: 100%;
}

JavaScript的:

$(document).ready(function() {
  $('.dropmenu').hover(function() {
    $(this).find('.submenu').slideToggle(); 
  });
});

固定在這里

$(document).ready(function() {
  $('.dropmenu').hover(function() {
    $(this).find('.submenu').toggle(); 
      var width = $(this).css('width'); // find width of sub menu
      $(this).find('.submenu').css('width', width); // set the width of drop down here
  });
});

您可以在這里看到它http://jsfiddle.net/yb2p8aoj/

好的,我覺得沒有javascript應該可以解決。 這是我所做的:

(1)從.submenu刪除position:absolute (是否有您想要在那里的原因?)

.submenu{
display: none;
list-style: none;
background: #CC0000;
padding: 0;
width: auto;
}

(2)將背景色從.dropmenu移至.dropmenu a

.dropmenu a {
display: block;
text-decoration: none;
text-align: center;
background-color: #ff5b2e;    
}

(3)另外,我注意到當您將鼠標懸停在子菜單上幾次時,下拉菜單也會切換多次。 請注意我在js的這一行上添加的stop()

$(this).find('.submenu').stop().slideToggle();

小提琴: http : //jsfiddle.net/ouz0q5Lj/1/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM