元素选择器
html {color:black;}
h1 {color:blue;}
h2 {color:silver;}
选择器分组
h2, p {color:gray;}
body, h2, p, table, th, td, pre, strong, em {color:gray;}
若去掉逗号则为后代选择器。
通配选择器
* {color:red;}
可与任何元素匹配。
类选择器
<h1 class="important">This heading is very important.</h1>
<p class="important">This paragraph is very important.</p>
*.important {color:red;}
首先指定class值,然后结合通配选择器。
p.important {color:red;}
也可结合元素选择器。
多类选择器
.important.warning {background:silver;}
将会选择同时包含这些类名的元素。
ID选择器
<p id="intro">This is a paragraph of introduction.</p>
#intro {font-weight:bold;}
类选择器还是ID选择器?
区别 1:只能在文档中使用一次
与类不同,在一个 HTML 文档中,ID 选择器会使用一次,而且仅一次。区别 2:不能使用 ID 词列表
不同于类选择器,ID 选择器不能结合使用,因为 ID 属性不允许有以空格分隔的词列表。区别 3:ID 能包含更多含义
类似于类,可以独立于元素来选择 ID。有些情况下,您知道文档中会出现某个特定 ID 值,但是并不知道它会出现在哪个元素上,所以您想声明独立的 ID 选择器。例如,您可能知道在一个给定的文档中会有一个 ID 值为 mostImportant 的元素。您不知道这个最重要的东西是一个段落、一个短语、一个列表项还是一个小节标题。您只知道每个文档都会有这么一个最重要的内容,它可能在任何元素中,而且只能出现一个。在这种情况下,可以编写如下规则:
#mostImportant {color:red; background:yellow;}
这个规则会与以下各个元素匹配(这些元素不能在同一个文档中同时出现,因为它们都有相同的 ID 值):
<h1 id="mostImportant">This is important!</h1>
<em id="mostImportant">This is important!</em>
<ul id="mostImportant">This is important!</ul>
属性选择器
只对有 href 属性的锚(a 元素)应用样式:
a[href] {color:red;}
后代选择器
如果您希望只对 h1 元素中的 em 元素应用样式,可以这样写
h1 em {color:red;}
上面这个规则会把作为 h1 元素后代的 em 元素的文本变为 红色。其他 em 文本(如段落或块引用中的 em)则不会被这个规则选中。
有关后代选择器有一个易被忽视的方面,即两个元素之间的层次间隔可以是无限的。
子元素选择器
与后代选择器相比,子元素选择器(Child selectors)只能选择作为某元素子元素的元素。
如果您希望选择只作为 h1 元素子元素的 strong 元素,可以这样写:
h1 > strong {color:red;}
相邻兄弟选择器
相邻兄弟选择器(Adjacent sibling selector)可选择紧接在另一元素后的元素,且二者有相同父元素。
如果要增加紧接在 h1 元素后出现的段落的上边距,可以这样写:
h1 + p {margin-top:50px;}
用一个结合符只能选择两个相邻兄弟中的第二个元素