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;
}
解決了底部邊框的第二個問題,但我仍在尋找方法來防止菜單寬度跳躍。 –