2013-08-18 152 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