2013-08-18 55 views
0

我一直試圖爲我的導航欄創建下拉菜單失敗,每一個CSS方法似乎都不能提供我需要的所需效果。目前我的HTML看起來像....導航欄的下拉菜單

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Untitled</title> 
</head> 

<!-- Reset Sheet --> 
<link href="reset.css" rel="stylesheet" type="text/css"> 
<!-- Main Sheet --> 
<link href="main.css" rel="stylesheet" type="text/css"> 
<!-- Navigation Menu Sheet --> 
<link href="navbar.css" rel="stylesheet" type="text/css"> 

<body> 
<table id="header"> 
<table width="100%" style="height: 100%;" cellpadding="10" cellspacing="0" border="0"> 

<!-- Table containing logo --> 
<tr> 
<td colspan="2" valign="middle" height="30" align="center"> 
<a href="http://www.phonesrus.com.au"><img src="logo.JPG" alt="logo" width="570" ></a> 
</td></tr> 

<!-- Table containing NavBar --> 
<tr> 
<td colspan="2" valign="middle" height="55" bgcolor="#300000" align="center"> 
<div class="navbar"> 
<ul class="horizontal">    
    <li><a class="first" href="#">Home</a></li> 
    <li><a href="#">About Us</a></li> 
    <li><a href="#">Our Products</a></li> 
    <li><a href="#">Environment</a></li> 
    <li><a href="#">Latest News</a></li> 
    <li><a class="last" href="#">Contact Us</a></li> 
</ul> 
</div> 
</td></tr> 
</table> 

</body> 
</html> 

而且恭維我的導航欄CSS看起來像......

.navbar ul.horizontal 
{ 
list-style-type:none; 
margin:40 auto; 
width:640px; 
padding:0; 
overflow:hidden; 
} 

.navbar ul.horizontal > li 
{ 
float:left; 
} 

.navbar ul.horizontal li a 
{ 
display: block; 
text-decoration:none; 
text-align:center; 
padding:22px 20px 22px 20px; 
font-family:Arial; 
font-size:8pt; 
font-weight:bold; 
color:#FFFFFF; 
text-transform:uppercase; 
border-right:1px solid #607987; 
background-color:#300000; 
letter-spacing:.08em 
} 

.navbar ul.horizontal li a:hover 
{ 
background-color:#680000; 
color:#a2becf 
} 

.navbar ul.horizontal li a.first 
{ 
border-left:0 
} 

.navbar ul.horizontal li a.last 
{ 
border-right:0 
} 

我的一點問題是,如果我是做這個菜單一個下拉菜單中的「產品」按鈕遵循類似的風格模式(如懸停顏色和背景顏色)到其餘的導航欄。我將如何處理CSS來實現這一點。 在問題之中的CSS新的HTML ...

<div class="navbar"> 
<ul class="horizontal">    
    <li><a class="first" href="#">Home</a></li> 
    <li><a href="#">About Us</a></li> 
    <li><a href="#">Our Products</a></li> 
     <ul> 
      <li><a href="#">Apple</a></li> 
      <li><a href="#">HTC</a></li> 
      <li><a href="#">Nokia</a></li> 
      <li><a href="#">Samsung</a></li> 
     </ul> 
    <li><a href="#">Environment</a></li> 
    <li><a href="#">Latest News</a></li> 
    <li><a class="last" href="#">Contact Us</a></li> 
</ul> 
</div> 

我已經試過有這麼多的嘗試,但都未能取得正確的結果。對你的幫助表示感謝。謝謝

回答

1

我不太清楚,如果這是你的意思,也許它需要一些風格的調整。

問題是你的子菜單列表應該在主菜單的列表項中。就像這樣:

<ul> 
    <li>Item 
     <ul> 
      <li>...</li> 
     </ul> 
    </li> 
</ul> 

使用,在你的代碼(和優化CSS),這是我想出了: HTML

<div class="navbar"> 
<ul class="horizontal">    
    <li><a href="#">Home</a></li> 
    <li><a href="#">About Us</a></li> 
    <li><a href="#">Our Products</a> 
     <ul> 
      <li><a href="#">Apple</a></li> 
      <li><a href="#">HTC</a></li> 
      <li><a href="#">Nokia</a></li> 
      <li><a href="#">Samsung</a></li> 
     </ul> 
    </li> 
    <li><a href="#">Environment</a></li> 
    <li><a href="#">Latest News</a></li> 
    <li><a href="#">Contact Us</a></li> 
</ul> 
</div> 

CSS:

.horizontal { 
    list-style-type:none; 
    margin:40 auto; 
    width:640px; 
    padding:0; 
    overflow:hidden; 
} 
.horizontal > li { 
    float:left; 
} 
.horizontal li ul { 
    display: none; 
    margin: 0; 
    padding: 0; 
    list-style: none; 
    position: relative; 
    width: 100%; 
} 
.horizontal li:hover ul { 
    display: block; 
} 
.horizontal li a { 
    display: block; 
    text-decoration:none; 
    text-align:center; 
    padding:22px 10px; 
    font-family:Arial; 
    font-size:8pt; 
    font-weight:bold; 
    color:#FFFFFF; 
    text-transform:uppercase; 
    border-right:1px solid #607987; 
    background-color:#300000; 
    letter-spacing:.08em 
} 

.horizontal li a:hover { 
    background-color:#680000; 
    color:#a2becf 
} 

.horizontal li:first-child a { border-left:0; } 
.horizontal li:last-child a { border-right:0; } 

就像說,您可能需要更改一些樣式!

同時檢查工作JSFiddle Demo

+0

三江源這麼多,我一直在試圖得到這樣的結果沒有成功。 Thankyou再次爲您提供幫助 –

+0

您的歡迎。請將答案標記爲解決方案(legt上的「v」)以適應您的需求。 – LinkinTED