因此,伪类比属性选择器稍微健壮一些。
结合伪类:
/*鼠标指针停留在未访问链接上时,可以让这些链接变成红色,而鼠标指针停留在已访问链接上时,链接变成紫红色。*/ 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就是不合法的,因为伪元素在选择器主体前面出现。