如何在CSSselect器中结合类和ID?

如果我有以下div:

<div class="sectionA" id="content"> Lorem Ipsum... </div> 

有没有一种方法来定义一种风格,expression的想法“一个id='content'id='content' AND class='myClass' ”?

或者你只是单方面或另一方面

 <div class="content-sectionA"> Lorem Ipsum... </div> 

要么

 <div id="content-sectionA"> Lorem Ipsum... </div> 

在你的样式表中:

 div#content.myClass 

编辑:这些也可能有帮助:

 div#content.myClass.aSecondClass.aThirdClass /* Won't work in IE6, but valid */ div.firstClass.secondClass /* ditto */ 

并根据你的例子:

 div#content.sectionA 

编辑,4年后:由于这是超级老,人们不断find它: 不要在您的select器中使用tagNames。 #content.myClassdiv#content.myClass快,因为tagName添加了一个你不需要的过滤步骤。 在select器中只使用tagNames!

在CSS中#header .callout#header.callout #header .callout之间有区别。

这里是#header .callout的“纯英文”
select所有带有类名称callout的元素,这些元素是具有header标识的元素的后代。

这里是#header.callout的“纯英文”:
select具有header ID和callout类名称的元素。

你可以在这里阅读更多的CSS技巧

一般来说,你不需要对由id指定的元素进行分类,因为id总是唯一的,但是如果你真的需要的话,下面的代码应该可以工作:

 div#content.sectionA { /* ... */ } 

在一个元素上组合一个id和一个类没有什么问题,但是你不需要为一个规则同时识别它。 如果你真的想要你可以这样做:

 #content.sectionA{some rules} 

正如其他人所build议的那样,您不需要ID前面的div

一般来说,特定于该元素的CSS规则应该用ID来设置,并且这些规则将比仅仅该类的权重更大。 由类指定的规则将是适用于多个项目的属性,在您需要调整时,您不想在多个位置更改这些项目。

这归结为:

  .sectionA{some general rules here} #content{specific rules, and overrides for things in .sectionA} 

合理?

可以在CSS中组合ID和Class,但是ID旨在是唯一的,所以向CSSselect器添加一个类会超出限定的范围。

使用: tag.id ; tag#class tag.id ; tag#classvariables中的tag.id ; tag#class在您的CSS。

Ids应该是独特的文件范围,所以你不应该select基于两者。 你可以通过class="class1 class2"来指定一个元素多个类

我认为你们都错了。 ID与类别不是一个特定的问题; 他们有完全不同的逻辑用途。

ID应该用来标识页面的特定部分:标题,导航栏,主要文章,作者归属地,页脚。

应该使用类将样式应用于页面。 假设你有一个通用的杂志网站。 网站上的每个页面都将具有相同的元素 – 标题,导航,主要文章,侧栏,页脚。 但是你的杂志有不同的部分 – 经济,体育,娱乐。 你要让三个部分有不同的面貌 – 经济保守和方方面面,运动行动,娱乐明亮和年轻。

你使用类。 你不想要多个ID – #经济 – 文章和#体育文章和#娱乐文章。 这没有意义。 相反,你会定义三个类,经济学,体育和娱乐,然后为每个类定义#nav,#article和#footer id。

 .sectionA[id='content'] { color : red; } 

虽然doctype是HTML 4.01虽然不会工作…