0

HTML:

<!-- MENU -->
        <nav id="menu">
            <li><a href="#">Categories 1</a>
                <ul>
                    <li><a href="#">temp1</a></li>
                    <li><a href="#">temp2</a></li>
                    <li><a href="#">temp3</a></li>
                </ul>
            </li>
            <li><a href="#"<Categories 2</a>
                <ul>
                    <li><a href="#">temp1</a></li>
                    <li><a href="#">temp2</a></li>
                    <li><a href="#">temp3</a></li>
                </ul>
            </li>
        </nav>

CSS:

#menu {
  background-color: #0000FF;
  height: 20px;
  padding: 15px 0 10px;
  margin-bottom: 20px;
  font: 12px 'DroidSansBold', Tahoma,sans-serif;
  font-weight: bold;
  text-transform: uppercase;
  letter-spacing: 1px;
  box-shadow: 3px 2px 3px #000;
  border-radius: 5px;
  text-align: center;
} 

#menu li{
  display: inline;
}

#menu li a {
  color: #fff;
  text-decoration: none;
  margin: 0 120px;
}

#menu li ul li{
  display: none;
}

#menu li a:hover{
  color: #dc692e;
}

结果如下所示:在此处输入图像描述

我似乎无法弄清楚为什么我的两个类别不接受 css display: inline。我在当前未显示的每个类别下都有一个菜单。当我删除“菜单下”时,就display:inline可以了。

不工作 JsFiddle:http: //jsfiddle.net/LynwV/

感谢大家的帮助!

4

4 回答 4

3

@claustrofob 是对的,inline-block是解决方案。但是,@Zenith 也是正确的。您需要修复您的标记。我还将更改您编写样式的方式,而不是长元素选择器链,在您想要定位的元素上放置一个类并以这种方式设置样式。

于 2013-06-24T16:49:40.790 回答
1

你的 a 标签是错误的。<li><a href="#"<Categories 2</a>应该是<li><a href="#">Categories 2</a>。而且,正如@Zenith 所说,您不能在 nav 之后直接跟 LI 元素。

于 2013-06-24T16:49:00.147 回答
1

尝试,

#menu li{
    display: inline-block;
}

正如@Zenith 所指出的,您有无效的标记,以及@Josefffs 所指出的一些损坏的语法

测试链接

于 2013-06-24T16:49:01.260 回答
0

我看到的问题是,您已经用<ul>另一个<li>标签包装了由标签定义的列表,该标签似乎隐藏了项目列表。

尝试检查元素以获得支持。

于 2013-06-24T16:58:09.833 回答