因此,伪类比属性选择器稍微健壮一些。
结合伪类:
/*鼠标指针停留在未访问链接上时,可以让这些链接变成红色,而鼠标指针停留在已访问链接上时,链接变成紫红色。*/
a:link:hover {
color: red;
}
a:visited:hover {
color: maroon;
}
用哪种顺序指定并不重要,写成a:hover:link会得到与a:link:hover一样的效果。
就像伪类为锚指定幻象类一样,伪元素能够在文档中插入假想的元素,从而得到某种效果。CSS2.1中定义了4个伪元素:设置首字母样式、设置第一行样式、设置之前和之后的样式。
用于设置一个块级元素首字母的样式,而且仅对该首字母设置样式。
/*让每个h2中第一个字母的大小是标题中其余字母大小的2倍*/
h2:first-letter {
font-size: 200%;
}
这个规则会导致用户代理(浏览器)对一个假想的元素作出响应,这个假想元素包含每个h2中的第一个字母。可能如下所示:
:first-line可以用来影响元素中第一个文本行。(第一行是指显示区域的第一行,所以浏览器窗口大小不同,第一行所代表的字符数量也是不同的。)
/*应用于每一段所显示的第一行文本。*/
p:first-line {
color: red;
}
:first-letter, :first-line允许设置的CSS属性:
| :first-letter | :first-line |
| 所有的font属性 | 所有的font属性 |
| color | color |
| 所有background属性 | 所有background属性 |
| 所有margin属性 | |
| 所有padding属性 | |
| 所有border属性 | |
| text-decoration | text-decoration |
| vertical-align | vertical-align |
| text-transform | text-transform |
| line-height | line-height |
| float | |
| letter-spacing | letter-spacing |
| word-spacing |
h2:before {
content: "before";
color: red;
}
h2:after {
content: "after";
color: red;
}
所有伪元素都必须放在出现该伪元素的选择器的最后面,如果写成p: first-line em就是不合法的,因为伪元素在选择器主体前面出现。