【问题标题】:A dropdown menu for a navbar导航栏的下拉菜单
【发布时间】:2013-08-18 11:48:28
【问题描述】:

我一直在尝试为我的导航栏创建一个下拉菜单,但没有成功,每个 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> 

我已经尝试了很多次,但都未能达到正确的结果。对你的帮助表示感谢。谢谢

【问题讨论】:

    标签: css drop-down-menu navigation uinavigationbar navbar


    【解决方案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

    【讨论】:

    • 非常感谢,我一直试图得到这个结果,但没有成功。再次感谢您的帮助
    • 欢迎您。请将答案标记为适合您的解决方案(腿上的“v”)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-01
    • 1970-01-01
    相关资源
    最近更新 更多