9.1 构造选择器
选择器决定样式规则应用于哪些元素。例如,如果要对所有的p
元素添加Times字体、12像素高的格式,就需要创建一个只识别p
元素而不影响代码中其他元素的选择器。如果要对每个区域中的第一个p
设置特殊的缩进格式,就需要创建一个稍微复杂一些的选择器,它只识别作为页面中每个区域的第一个元素的p
元素。
选择器可以定义五个不同的标准来选择要进行格式化的元素。
元素的类型或名称,如图9.1.1所示。
元素所在的上下文,如图9.1.2所示。
元素的类或ID,如图9.1.3和图9.1.4所示。
元素的伪类或伪元素,如图9.1.5所示(放心,我将在后面解释伪类和伪元素)。
元素是否有某些属性和值,如图9.1.6所示。
为了指出目标元素,选择器可以使用这五个标准的任意组合。在大多数情况下,只使用一个或两个标准即可。另外,如果要对几组不同的元素应用相同的样式规则,可以将相同的声明同时应用于几个选择器(参见9.8节)。
本章其余部分将详细解释如何定义选择器。
图9.1.1 最简单的选择器类型就是要格式化的元素的类型的名称(在这个例子中为h1
)
图9.1.2 这个选择器使用上下文。这个样式只应用于h1
元素中的em
元素。其他地方的em
元素不受影响
图9.1.3 第一个选择器选择所有属于very
类的元素。换句话说,就是所有在开始标记中包含class="very"
的元素。第二个选择器选择id
为gaudi
的那个元素,也就是在开始标记中指定id="gaudi"
的元素。回忆一下,一个id
在每个页面中只能出现一次,而一个class
可以出现任意次数
图9.1.4 通过在class
或id
选择器前面添加目标元素的名称,可以增强选择器的特殊性。在这个例子中,第一个选择器仅选择属于very
类的em
元素,而不是属于very
类的任何元素。类似地,第二个选择器仅选择id
为gaudi
的article
元素。除非确有必要,一般不要使用这种方法。图9.1.3的示例中的特殊性弱一些的选择器是更好的方法
图9.1.5 在这个例子中,选择器选择属于link
伪类的a
元素(即还没有访问过的a
元素)
图9.1.6 可以在选择器中使用方括号添加关于目标元素的属性或值的信息