2010-06-28 145 views
4

这是更好地使用CSS选择器(菜单UL LI)或(菜单里)

.menu{ 
    float:left; 
    width:600px; 
    height:25px; 
    background:url(bg.png) repeat-x; 

} 
.menu ul{ 
    float:left; 
} 
.menu ul li{ 
    float:left; 
    width:150px; 
    height:25px; 
    background:#F00; 
} 

.menu{ 
    float:left; 
    width:600px; 
    height:25px; 
    background:url(bg.png) repeat-x; 

} 
.menu ul{ 
    float:left; 
} 
.menu li{ 
    float:left; 
    width:150px; 
    height:25px; 
    background:#F00; 
} 

这标签是正确menu ul limenu li

回答

8

当你说which tag is right menu ul li or menu li?,你是在说一个与class="menu"格或你在谈论deprecated menu tag<menu>)?

如果你只是在谈论你的CSS代码,那些不是标签,它们是选择器。而且我要提供最具体的选择去,以避免意外分配

.menu > ul > li{ 
    // this matches only list items directly inside a ul directly inside a .menu 
} 

更妙的是这样的:

#menu > ul > li{ 
    // now you are referencing the menu by id, so you know this is a unique assignment 
} 

,或者如果你有多个菜单:

#menubar > .menu > ul > li{ 
} 

因为否则你是在惊喜,你可能实际上有这样的结构: (这是丑陋的,我知道,但只是为了证明一点)

<div class="menu"> 
    <ul> 
     <li>Menu Item 1</li> 
     <li>Menu Item 2</li> 
     <li>Menu Item 3 
     <ul> 
      <li id="abc">Menu Item abc</li> 
     </ul> 
     </li> 
     <li>Menu Item 4 
     <div><div><div><ol><li><div><ul> 
       <li id="xyz">Menu Item xyz</li> 
     </ul></div></li></ol></div></div></div> 
     </li> 
    </ul> 
</div> 

(您可能不想匹配项目abc或xyz)。

+0

我也要评论嵌套列表。这绝对是最好的方式。 – theorise 2010-06-28 13:57:00

+0

只是一个说明。 *

*不再被弃用。它已被复活用于HTML5。 :) – 2011-03-28 14:06:33

+0

@ J.T.S。很高兴知道,但在我写这篇文章之前我从来没有听说过它(我只是自己搜索了一下:-)) – 2011-03-28 14:40:34

2

除非您必须与同一样式表中的其他类似选择器交互,否则它没有区别 - 然后取决于这些选择器是什么。

+0

我真的不明白这个答案试图说什么。请你澄清一下吗? – Beejamin 2010-06-28 15:18:22

0

除非你打算在.menu容器内也有有序列表(<ol>),结果是完全一样的。有人可能会说一个比另一个更快,但这是无关的(很难证明,因为它可能会在每个浏览器中不同)

2

这取决于。如果您在.menu内有olul,则您需要使用更具体的.menu ul li。否则,.menu li是好的。您可能想要read up on CSS specifity

0

你的选择应与你的意图 - 如果你的意思是任何列表项,无论它是否是一个UL或OL里面设置样式相同,那么例如B.如果UL李的要的风格,这只是,那么A.

这是一个相当简单的例子,但这是一个有用的经验法则。问问自己:“如果某人来了,在.menu里面加入了一个有序列表,我该怎么看它?

这是一个很好的方法来保持CSS的正确水平的特异性,同时保持HTML结构的灵活性它可以应用到。

+0

好,简单的答案。 :) – 2011-03-28 14:08:24

0

Mozilla的Devcenter推荐使用.menu li。你可以红更多关于Writing Efficient CSS和优化CSS代码。就个人而言,我用<ul id='menu'>,然后#menu { display: block; margin: 0; padding: 0 }