2011-09-20 115 views
1

我应该尝试使用其他CSS选择器来代替元素ID /类名称,反之亦然。在其他CSS选择器上使用元素ID /类名称

例如:body > header nav ul+ul { ... }当我只能做#socialnav { ... }实现同样的事情。

例HTML代码是(当然也有与在代码的其他地方的孩子资产净值头):

<header> 
    <nav> 
     <ul>...</ul> 
     <ul....</ul> 
    </nav> 
</header> 

什么是这个共识?我的意思是,我发现使用CSS选择器可以管理它,但是有缺点吗?

+2

'#elementid' * *是一个CSS选择器。 – Spudley

+0

对不起,我的坏...题目不清晰/问题。 – Cheetah

回答

5

您的第一指导校长应该是保留标记语义。上面的标记就是一个很好的例子 - 您使用语义上有意义的方式使用headernavul标记。

你的第二指导原则应该是保持(例如,内容和表示)的分离。如果向你的标记中添加类名或标识符对语义没有任何帮助,并且你可以使用它们制作CSS选择器,那么你应该避免为标记添加额外的噪音。

然而,有时候,类名和id是非常有用的(不仅在CSS中,而且在JavaScript中),所以它们有它们的位置。如果不需要,就不要诉诸于它们,因此会给标记添加不必要的混乱。

0

通常我会尽量避免在CSS中使用ID选择器。

我觉得比使用ID更容易处理类。

如果在服务器端应用程序(如ASP.NET)中使用标记,ID会呈现为与它们在标记中显示方式不同的情况,则ID可能会导致问题稍后在下线。

然而,ID选择不优先于类选择:

http://jsfiddle.net/wcLrF/

1

这取决于你的喜好。

我觉得使用body > header nav ul+ul并不明智,因为你的文档结构有一点点改变,你必须重写CSS选择器。

使用.classselectors#id-selectors表示不是主文档中令人难以置信的重要部分的元素,并使用#one-special-item > ul > li > a:hover span来选择更具体的元素。

0

您应该将自己的样式表作为您网站的规则集。

  • 如果你正在写一个风格,是要与一个特定内容的工作,那么它是引用元素的ID好的做法。

  • 如果您正在编写属于您的一般网站外观的风格,则应尽可能将其写入引用标记名和/或类。

会有时候,实际的HTML代码,使得它变得难以遵循这些规则,但如果你试着坚持,在一般情况,那么你会好起来的。如果您需要支持旧版浏览器(咳嗽,IE,咳嗽),那么您可能还需要改变规则,这些浏览器不支持您通常希望使用的所有CSS功能。

所以是的,我会说你在问题中所做的方式是推荐的方法。

相关问题