CSS:属性语法,用于引用具有ID的元素

时间:2012-02-05 02:14:33

标签: css

参考本教程:https://www.servage.net/blog/2009/03/20/create-a-cool-css-based-drop-down-menu/

我使用了外部样式表,只需在每个CSS项目之前放置#menu,如下所示:

#menu ul{
font-family: Arial, Verdana;
font-size: 14px;
margin: 0;
padding: 0;
list-style: none;}

或:

#menu ul li{
display: block;
position: relative;
float: left;}

但是,当我使用#menu引用时,菜单无法正确呈现。它使父母'li'不受CSS的影响。

http://jsfiddle.net/UGW2L/

有什么想法吗?

THX, 戴夫

2 个答案:

答案 0 :(得分:3)

您的HTML就是这样:

<ul id="menu">

这意味着你的CSS必须是这样的:

ul#menu

您当前的CSS正在寻找一个UL内部的LI,其中包含ID为MENU的其他元素

答案 1 :(得分:1)

#menu ulul}为目标(id='menu' 内的任何<div id="menu"> <ul> <!-- <<-- this element is the target --> ... </ul> </div> <...}

div

id="menu"只是一个示例,上面可以使用ul#menu的任何元素。


ul以此为目标(id='menu' <ul id="menu"> <!-- <<-- this element is the target --> ... </ul> )...

<li>

根据评论进行修改:

引用:“...我错过了父节点周围的'框'。”

我认为您引用的节点是<ul id='menu'>,就在父ul#menu li a内,您根本没有将其定位到任何地方。

只需将ul#menu li a, ul#menu ul li a { display: block; text-decoration: none; color: #ffffff; border-top: 1px solid #ffffff; padding: 5px 15px 5px 15px; background: #2C5463; margin-left: 1px; white-space: nowrap; } 添加到您的包装样式中即可。 (注意逗号。它将两个完全独特的选择器分开,共享相同的样式。)

ul#menu

http://jsfiddle.net/cWpEg/1/

看到区别?

ul#menu li是父母。 ul#menu li a是父级内的第一个项目。 ul#menu li是父母的第一个孩子内的链接。

由于<li>定位任何&amp;所有 ul#menuul#menu li a { display: block; text-decoration: none; color: #ffffff; border-top: 1px solid #ffffff; padding: 5px 15px 5px 15px; background: #2C5463; margin-left: 1px; white-space: nowrap; } 父项的子项,您只需要一个选择器...

ul#menu {
  display: block;
  position: relative;
  float: left;
  list-style: none;
}

http://jsfiddle.net/cWpEg/2/

还要注意屏幕的整个宽度。

目标&amp;样式只是父母,添加这样的东西。

{{1}}

http://jsfiddle.net/cWpEg/6/