【发布时间】:2012-07-18 08:33:41
【问题描述】:
在我的以下导航栏菜单中,所有元素都显示为蓝色。如何让 sub1 和 sub2 以橙色显示并以蓝色列出元素?
<head>
<style type="text/css">
ul{
list-style-type:none;
margin:0;
padding:0;
background-color:#33CCFF;/*orange is not displaying*/
}
li{float:left;
display:block;
width:120px;
text-align:center;
padding:4px;
color:#FFFFFF;
background-color:;#FFCC33;}/*blue*/
</style>
</head>
<body>
<ul id="menu">
<li id="menu1">Sub 1
<ul>
<li>test 1</li>
<li>test 2</li>
<li>test 3</li>
<li>test 4</li>
</ul>
</li>
<li id="menu2">Sub 2
<ul>
<li>test 1</li>
<li>test 2</li>
<li>test 3</li>
<li>test 4</li>
</ul>
</li>
</ul>
</body>
【问题讨论】:
-
去掉填充后效果很好。
-
而不是 ul>li li{background-color:...},我输入 ul>li>ul>li{background-color:.....}。从stackoverflow.com/questions/11227322/… 进一步阅读后,我发现第二个 li 将获得第一个 li 下的所有 lis(即后代)。使用我的方法,它会得到第一个li的孩子(即.ul),然后它会得到ul的孩子(即.li)。
-
是的,我知道它只选择直接孩子。这是一篇关于所有这些选择器的精彩文章web-design-weekly.com/2012/05/31/css-selectors-that-rock。我只是试图让它尽快工作。如您所见,它是第一条评论。
标签: css menu background-color navigationbar