2013-01-14 115 views
1

我很困惑!這裏是我正在開發的網站:Cancer Support siteCSS菜單問題:子菜單在父菜單項處於活動狀態時出現(當前)頁面

我似乎有兩個問題......我花了數小時試圖找出解決方案..所以我真的希望有人可以提供幫助。

問題1:我使用的ID = navactive保持父菜單項活性,如果它是被diplayed當前頁面。這樣可行。但是,我編寫CSS的方式,它通過使子菜單項首次顯示在ID =導出父項的mousever上時顯示爲活動狀態而引入了錯誤。相反,子菜單項最初應顯示爲非活動狀態,直到它們實際上被淹沒。在網站上,您可以看到「主頁」頁面是父菜單上的活動頁面。如果將鼠標懸停在上面,則會顯示兩個子項子菜單,但它們顯示爲有效。它們應該顯示爲非活動狀態 - 與您將鼠標懸停在「我們的工作」父項菜單項上時的子菜單相同。

問題2:我的孫子的無子菜單項出現在所有..在兩個「家」和「我們的工作」父菜單項,我有以下配置:

Top level menu (parent) 
    Submenu 1 (child 1) 
     Submenu 2 (grandchild 1) 
    Submenu 3 (child 2) 

相反,它出現頁這樣在孫子1成爲子2,並且沒有孫子是可見的上(以及原子2子菜單3]缺少):

Top level menu (parent) 
    Submenu 1 (child 1) 
    Submenu 2 (child 2) 

任何建議,將不勝感激!!! 謝謝!

爲了您的方便..這裏是在導航菜單部分我的CSS代碼:

#navcontainer 
{ 
    width: 711px; 
    height: 25px; 
    text-align: center; 
    margin: 0px auto; /*Center container on page*/ 
    clear: both; 
    background-color: #129F9F; 
    border: 3px solid #FFFFFF; 
    -moz-border-radius: 5px; 
    -webkit-border-radius: 5px; 
    -o-border-radius: 5px; 
    -ms-border-radius: 5px; 
    border-radius: 5px; 

    /* IE10 Consumer Preview */ 
    background-image: -ms-linear-gradient(top, #16ACAC 0%, #0D6F6F 100%); 

    /* Mozilla Firefox */ 
    background-image: -moz-linear-gradient(top, #16ACAC 0%, #0D6F6F 100%); 

    /* Opera */ 
    background-image: -o-linear-gradient(top, #16ACAC 0%, #0D6F6F 100%); 

    /* Webkit (Safari/Chrome 10) */ 
    background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #16ACAC), color-stop(1, #0D6F6F)); 

    /* Webkit (Chrome 11+) */ 
    background-image: -webkit-linear-gradient(top, #16ACAC 0%, #0D6F6F 100%); 

    /* W3C Markup, IE10 Release Preview */ 
    background-image: linear-gradient(to bottom, #16ACAC 0%, #0D6F6F 100%); 
} 
.main_menu 
{ 
    height: 24px; 
    line-height: 24px; 
    font-size: 12px; 
    position: relative; 
} 
.main_menu ul 
{ 
    padding: 0px 0px 0px 35px; /* padding on left to get nav menu to center.. since it has a float left to make it display properly*/ 
    list-style: none; 
} 
.main_menu ul li 
{ 
    padding: 0; 
    margin: 0; 
    border-right: 2px solid #129F9F; 
    float: left; 
} 
.main_menu ul li.navcontact /* to stop right border at end of nav line */ 
{ 
    padding: 0; 
    margin: 0; 
    border-right: none; 
    float: left; 
} 
.main_menu ul li a 
{ 
    color: #FFF; 
    display: block; 
    text-decoration: none; 
    padding: 0 15px; 
} 
.main_menu ul > li:hover > a, #navactive a:link, #navactive a:visited, #navactive > ul > li > a:hover 
{ 
    text-decoration: none; 
    color: #EAA339; 
    /* IE10 Consumer Preview */ 
    background-image: -ms-linear-gradient(top, #0D6F6F 0%, #16ACAC 100%); 

    /* Mozilla Firefox */ 
    background-image: -moz-linear-gradient(top, #0D6F6F 0%, #16ACAC 100%); 

    /* Opera */ 
    background-image: -o-linear-gradient(top, #0D6F6F 0%, #16ACAC 100%); 

    /* Webkit (Safari/Chrome 10) */ 
    background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #0D6F6F), color-stop(1, #16ACAC)); 

    /* Webkit (Chrome 11+) */ 
    background-image: -webkit-linear-gradient(top, #0D6F6F 0%, #16ACAC 100%); 

    /* W3C Markup, IE10 Release Preview */ 
    background-image: linear-gradient(to bottom, #0D6F6F 0%, #16ACAC 100%); 
} 
.main_menu ul li ul 
{ 
    display: none; 
    width: auto; 
    position: absolute; 
    padding: 0px; 
    margin: 0px; 
} 
.main_menu ul li:hover ul 
{ 
    display: block; 
    position: absolute; 
    margin: 0; 
    padding: 0; 
} 
.main_menu ul li:hover li 
{ 
    float: none; 
    list-style: none; 
    margin: 0px; 
} 
.main_menu ul li:hover li 
{ 
    font-size: 12px; 
    height: 24px; 
    background: #54C4C4; 
    /* border-top: 1px solid #129F9F; */ 
    border: 1px solid #FFFFFF; 
    -moz-border-radius: 5px; 
    -webkit-border-radius: 5px; 
    -o-border-radius: 5px; 
    -ms-border-radius: 5px; 
    border-radius: 5px; 
} 
.main_menu ul li:hover li a 
{ 
    font-size: 11px; 
    color: #fff; 
    padding: 0px; 
    display: block; 
    width: 150px; 
} 
.main_menu ul li li a:hover 
{ 
    font-size: 11px; 
    height: 24px; 
    color:#EAA339; 
    -moz-border-radius: 5px; 
    -webkit-border-radius: 5px; 
    -o-border-radius: 5px; 
    -ms-border-radius: 5px; 
    border-radius: 5px; 
} 

這裏是HTML代碼:

<div id="navcontainer"> 
    <div class="main_menu"> 
     <ul> 
     <li id="navactive"><a href="index.asp" title="Cancer Support for Families Foundation is a community funded, community focused cancer charity.">Home</a> 
      <ul> 
      <li><a href="CSFF_presentation.pdf" title="Presentation about CSS in PDF format">submenu 1</a> 
       <ul> 
       <li><a href="CSFF_presentation.pdf" title="Presentation about CSS in PDF format">submenu 2</a></li> 
       </ul> 
      </li> 
      <li><a href="CSFF_presentation.pdf" title="Presentation about CSS in PDF format">submenu 3</a></li> 
      </ul> 
     </li> 
     <li><a href="what_is_csff.asp" title="Supporting families in financial need who are living with cancer.">What is CSFF</a> 
      <ul> 
      <li><a href="CSFF_presentation.pdf" title="Presentation about CSS in PDF format">submenu 4</a></li> 
      </ul> 
     </li> 
     <li><a href="make_a_donation.asp" title="CSFF supporters can fund the charitable support programs, community experiences and fundraising events.">Make a Donation</a></li> 
     <li><a href="our_work.asp" title="Individuals and families battling cancer need more financial support. CSFF can help.">Our Work</a> 
      <ul> 
      <li><a href="CSFF_presentation.pdf" title="Presentation about CSS in PDF format">submenu 5</a> 
       <ul> 
       <li><a href="CSFF_presentation.pdf" title="Presentation about CSS in PDF format">submenu 6</a></li> 
       </ul> 
      </li> 
      <li><a href="CSFF_presentation.pdf" title="Presentation about CSS in PDF format">submenu 7</a></li> 
      </ul> 
     </li> 
     <li><a href="our_events.asp" title="Local communities come together in a relaxed family friendly environment to support those living with cancer.">Events Outline</a></li> 
     <li class="navcontact"><a href="contact_csff.asp" title="Contact CSFF to help those in need.">Contact Us</a></li> 
     </ul> 
    </div> 
</div> 
+0

鏈接不工作:http://www.webau.net/CSFF/ – Chanckjh

+0

嘗試http://www.webau.net/CSFF/index.asp – SunnyOz

回答

0

您得到這個問題的原因是由於到您的CSS和您構建HTML代碼的方式。這是你的問題 -

.main_menu ul > li:hover > a, #navactive a:link, #navactive a:visited, #navactive > ul > li > a:hover 
{ 
STYLES 
} 

簡單地改變「#navactive一個:鏈接」你的CSS代碼的一部分以上處理該活動鏈接一個單獨的類。目前,「navactive」div中的任何鏈接都將繼承此類中給出的樣式,這就是爲什麼子菜單文本顯示爲黃色而不是白色的原因。所以,就像我上面說的CSS代碼更改爲一個單獨的類,例如: - 「#navactive .current」

,然後改變你的HTML代碼如下所示:

<div id="navcontainer"> 
<div class="main_menu"> 
    <ul> 
    <li id="navactive"><a class="current" href="index.asp" title="Cancer Support for 
Families Foundation is a community funded, community focused cancer charity.">Home</a> 

這應該做的伎倆!很明顯,我沒有能夠測試它,但讓我知道如果你有任何問題。同樣只是一個提示 - 使用Chrome'Inspect Element'功能在遇到這些問題時非常有用!

+0

剛注意到,你可能會需要刪除突出顯示的CSS的「#navactive a:visited」部分,否則該div內的所有訪問過的鏈接都將變成黃色,我猜你不希望發生這種情況! – Tom

+0

謝謝Tom和@Jore。我調整了代碼,似乎已經解決了子菜單的懸停樣式問題。我會在這裏添加代碼,但評論中沒有足夠的空間。但是我仍然在第三層子菜單的位置方面存在問題。 – SunnyOz

+0

你可以在這裏看到變化:[link](http://www.webau.net/CSFF/index.asp)但是我仍然有第三層子菜單的位置問題。看來我的孫子正在展示一個孩子的位置。我想我將不得不打開另一個論壇問題來探討這個問題..因爲我沒有足夠的空間在這裏解釋它。再次感謝您的幫助 – SunnyOz

0

問題1 在CSS:

.main_menu ul > li:hover > a, #navactive a:link, #navactive a:visited, #navactive > ul > li > a:hover 

你應該把一>在#navactive:visited和#navactive一個:鏈接,所以它看起來是這樣的:

.main_menu ul > li:hover > a, #navactive > a:link, #navactive > a:visited, #navactive > ul > li > a:hover 

的「>」意味着你只能用直接的子元素

相關問題