如何在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.myClass
比div#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#class
variables中的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虽然不会工作…