2016-11-07 14 views
1

每當我在我的導航中打開子菜單或子菜單時,父菜單的寬度會發生變化。我在這裏做錯了什麼;我如何防止這種情況? 我的目標是讓子菜單的最小寬度等於它上面的菜單。另外,爲什麼底部邊框不能在一些菜單項上正確排列,但在別人上看起來很棒?在我向客戶展示它之前,我需要這個菜單看起來不錯並且打磨。這是不行的。爲什麼我的導航子菜單會改變寬度,我該如何修復它?

我的HTML:

<div id="navigation-wrapper"> 
    <div id="navigation"> 
     <ul id="nav"> 
      <li class="n1"> 
       <a href="PrimaryLink">Main Link</a> 
       <ul class="subnav"> 
        <li> 
         <a href="SecondaryLink">Secondary Link</a> 
        </li> 
        <li> 
         <a href="SecondaryLink">Secondary Link</a> 
        </li> 
        <li> 
         <a href="SecondaryLink">Secondary Link</a> 
        </li> 
        <li> 
         <a href="SecondaryLink">Secondary Link</a> 
         <ul class="subsub"> 
          <li><a href="TertiaryLink">Tertiary Link</a> 
          <li><a href="TertiaryLink">Tertiary Link</a> 
          <li><a href="TertiaryLink">Tertiary Link</a> 
          <li><a href="TertiaryLink">Tertiary Link</a> 
         </ul> 
        </li> 
       </ul> 
      </li> 
      <li class="n2"> 
       <a href="PrimaryLink">Main Link</a> 
       <ul class="subnav"> 
        <li> 
         <a href="SecondaryLink">Secondary Link</a> 
        </li> 
        <li> 
         <a href="SecondaryLink">Secondary Link</a> 
        </li> 
        <li> 
         <a href="SecondaryLink">Secondary Link</a> 
        </li> 
        <li> 
         <a href="SecondaryLink">Secondary Link</a> 
         <ul class="subsub"> 
          <li><a href="TertiaryLink">Tertiary Link</a> 
          <li><a href="TertiaryLink">Tertiary Link</a> 
          <li><a href="TertiaryLink">Tertiary Link</a> 
          <li><a href="TertiaryLink">Tertiary Link</a> 
         </ul> 
        </li> 
       </ul> 
      </li> 
      <li class="n3"> 
       <a href="PrimaryLink">Main Link</a> 
       <ul class="subnav"> 
        <li> 
         <a href="SecondaryLink">Secondary Link</a> 
        </li> 
        <li> 
         <a href="SecondaryLink">Secondary Link</a> 
        </li> 
        <li> 
         <a href="SecondaryLink">Secondary Link</a> 
        </li> 
        <li> 
         <a href="SecondaryLink">Secondary Link</a> 
         <ul class="subsub"> 
          <li><a href="TertiaryLink">Tertiary Link</a> 
          <li><a href="TertiaryLink">Tertiary Link</a> 
          <li><a href="TertiaryLink">Tertiary Link</a> 
          <li><a href="TertiaryLink">Tertiary Link</a> 
         </ul> 
        </li> 
       </ul> 
      </li> 
      <li class="n4"> 
       <a href="PrimaryLink">Main Link</a> 
       <ul class="subnav"> 
        <li> 
         <a href="SecondaryLink">Secondary Link</a> 
        </li> 
        <li> 
         <a href="SecondaryLink">Secondary Link</a> 
        </li> 
        <li> 
         <a href="SecondaryLink">Secondary Link</a> 
        </li> 
        <li> 
         <a href="SecondaryLink">Secondary Link</a> 
         <ul class="subsub"> 
          <li><a href="TertiaryLink">Tertiary Link</a> 
          <li><a href="TertiaryLink">Tertiary Link</a> 
          <li><a href="TertiaryLink">Tertiary Link</a> 
          <li><a href="TertiaryLink">Tertiary Link</a> 
         </ul> 
        </li> 
       </ul> 
      </li> 
      <li class="n5"> 
       <a href="PrimaryLink">Main Link</a> 
       <ul class="subnav"> 
        <li> 
         <a href="SecondaryLink">Secondary Link</a> 
        </li> 
        <li> 
         <a href="SecondaryLink">Secondary Link</a> 
        </li> 
        <li> 
         <a href="SecondaryLink">Secondary Link</a> 
        </li> 
        <li> 
         <a href="SecondaryLink">Secondary Link</a> 
         <ul class="subsub"> 
          <li><a href="TertiaryLink">Tertiary Link</a> 
          <li><a href="TertiaryLink">Tertiary Link</a> 
          <li><a href="TertiaryLink">Tertiary Link</a> 
          <li><a href="TertiaryLink">Tertiary Link</a> 
         </ul> 
        </li> 
       </ul> 
      </li> 
     </ul> 
     <div class="clear"></div> 
    </div> 
</div> 

我的CSS:

/* ---------------------------- 
NAVIGATION 
------------------------------*/ 
#navigation-wrapper { 
    width: 100%; 
    background: #f6f6f6 url(../images/sprites_bgs.png) repeat-x top; 
    border-bottom: 4px solid #ccc; 
    position: absolute; 
    left: 0; 
    top: 0; 
    z-index: 100; 
} 
#navigation { 
    width: 950px; 
    margin: 0 auto; 
    border: 0px solid #9C0; 
    height: 64px; 
    overflow: hidden; 
} 
#nav, 
#nav ul { 
    list-style: none; 
} 
#nav { 
    float: left; 
} 

#nav > li { 
    float: left; 
    height: 64px; 
} 
#nav li a { 
    display: block; 
    text-decoration: none; 
} 
#nav > li > a { 
    line-height: 64px; 
    text-align: center; 
} 
.n1 { width: 219px; } 
.n2 { width: 228px; } 
.n3 { width: 94px; } 
.n4 { width: 154px; } 
.n5 { width: 255px; } 
#nav ul { 
    position: absolute; 
    display: none; 
    z-index: 999; 
} 
#nav li:hover ul.noJS { 
    display: block; 
} 

/* Main menu 
--------------*/ 
#nav { 
/* font-family: Arial; */ 
    font-size: 16px; /* 12px */ 
    background: transparent; /* #2f8be8 */ 
} 
#nav > li > a { 
    color: #555; /* #fff */ 
    font-weight: 700; 
    border-right: 1px solid #eee; 
    text-shadow: 1px 1px 2px #fff; 
} 
#nav > li:hover > a { 
    background: #00275E; 
    color: #fff; 
    text-shadow: 1px 1px 2px #000; 
} 
#nav > li > a.last { 
    border-right: 0; 
} 

/* Submenu 
-----------*/ 
#nav ul { 
    background: #00275E; 
    width:auto; 
} 
#nav ul > li { 
    max-height: 37px; 
    white-space: nowrap; 
} 
#nav ul li a { 
    border-bottom: 1px solid #ccc; 
    color: #fff; 
    font-size: 14px; /* 12px */ 
    padding: .6em .6em; 
} 
#nav ul li:hover a { 
    background: #0085BD; 
    color: #fff; 
} 

/* Sub-submenu 
-----------*/ 
#nav ul li > ul { 
    left: -99999em; 
    position: absolute; 
    white-space: nowrap; 
} 
#nav > li:hover > ul { 
    left: auto; 
} 
#nav > li li:hover > ul { 
    bottom: 37px; 
    left: 100%; 
    position: relative; 
} 
#nav > li li:hover > ul a { 
    background: #00275E; 
    color: #fff; 
} 
#nav > li li:hover > ul a:hover { 
    background: #0085BD; 
    color: #fff; 
} 

/* arrow hover styling */ 
#nav ul li a:first-child:nth-last-child(2):before { 
    content: ""; 
    float: right; 
    height: 0; 
    position: relative; 
    top: 8px; 
    width: 0; 
    border: 5px solid transparent; 
} 
#nav li li > a:first-child:nth-last-child(2):before { 
    border-left-color: #fff; 
    margin: -5px 0 0 10px; 
} 
+0

解決了底部邊框的第二個問題,但我仍在尋找方法來防止菜單寬度跳躍。 –

回答

0

看起來像我的...

#nav ul > li { 
    max-height: 37px; 
} 

...是...需要

#nav ul > li { 
    height: 37px; 
} 

...爲了保持底部邊框排列。

相關問題