如果我有以下div:

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

是否有一种方法来定义一个风格,表达的想法“一个div与id='content'和类='myClass'”?

或者你只是简单地走一条路或者另一条路

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

Or

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

当前回答

我认为你们都错了。id与Class不是专一性的问题;它们有完全不同的逻辑用途。

id应该用于标识页面的特定部分:页眉、导航栏、主要文章、作者属性、页脚。

应该使用类将样式应用到页面。假设你有一个一般的杂志网站。网站上的每个页面都有相同的元素——标题、导航、主文章、边栏、页脚。但是你们的杂志有不同的版块——经济、体育、娱乐。你希望这三个部分有不同的外观——经济上保守而保守,体育运动活泼,娱乐方面活泼而年轻。

你可以使用类来实现。你不希望有多个id——#economics-article、#sports-article和#entertainment-article。这说不通啊。相反,您应该定义三个类,.economics、sports和.entertainment,然后为每个类定义#nav、#article和#footer id。

其他回答

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

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

#header. callout和#header之间有区别。css中的标注。

下面是#header .callout的“简单英语”: 选择具有类名标注的所有元素,这些元素是ID为header的元素的后代。

和#头。调出的意思是: 选择ID为header且类名为callout的元素。

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

在样式表中:

div#content.myClass

编辑:下面这些可能也会有所帮助:

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

而且,根据你的例子:

div#content.sectionA

编辑,4年后:因为这是超级老的,人们总是发现它:不要在你的选择器中使用tagNames。#内容。myClass比div#content快。myClass,因为tagName添加了您不需要的筛选步骤。在选择器中只在必要的地方使用tagNames !

你可以在CSS中组合ID和Class,但是ID是唯一的,所以在CSS选择器中添加一个类会过度限定它。

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

当doctype是html 4.01时不会工作…