摘要
伪类选择元素基于的是当前元素处于的状态,或者说元素当前所具有的特性,而不是元素的id、class、属性等静态的标志。由于状态是动态变化的,所以一个元素达到一个特定状态时,它可能得到一个伪类的样式;当状态改变时,它又会失去这个样式。由此可以看出,它的功能和class有些类似,但它是基于文档之外的抽象,所以叫伪类
与伪类针对特殊状态的元素不同的是,伪元素是对元素中的特定内容进行操作,它所操作的层次比伪类更深了一层,也因此它的动态性比伪类要低得多。实际上,设计伪元素的目的就是去选取诸如元素内容第一个字(母)、第一行,选取某些内容前面或后面这种普通的选择器无法完成的工作。它控制的内容实际上和元素是相同的,但是它本身只是基于元素的抽象,并不存在于文档中,所以叫伪元素。
伪类
anchor伪类
a:link {} /* 未访问的链接 /
a:visited {} / 已访问过的链接 /
a:hover {} / 鼠标划过的链接 /
a:active {} / 鼠标点击的链接 */
注意:
1.在 CSS 定义中,a:hover 必须被置于 a:link 和 a:visited 之后,才是有效的。
2.在 CSS 定义中,a:active 必须被置于 a:hover 之后,才是有效的。
3.伪类的名称不区分大小写。
伪类和CSS类
例:
a .red:hover {color:#FF0000;}
《a class=“red” href=“xxx”》
:first-child 伪类
选择父元素的第一个子元素。
例:
p:first-child
{
color:blue;
}
选择器匹配作为任何元素的第一个子元素的 p 元素
p > i:first-child
{
color:blue;
}
选择器匹配作为 p 元素的第一个 i 元素
p:first-child i
{
color:blue;
}
选择器匹配作为任何元素的第一个子元素的 p 元素中的所有 i 子元素
伪元素
:first-line
向文本的首行设置特殊样式
只能用于块级元素
:first-letter
向文本的首字母设置特殊样式
只能用于块级元素
:before
在元素的内容前面插入新内容
:after
在元素的内容后面插入新内容
属性选择器
根据元素中的属性或属性值来选定指定元素
[属性名]
p[title]
选定有title属性的所有p元素
[属性名=“属性值”]
input[type=“radio”]
选定type属性为radio的所有input元素
[属性名^=“属性值”]
p[title^=“ab”]
选定title属性的值以ab开头的所有p元素
[属性名$=“属性值”]
p[title$=“c”]
选定title属性的值以c结尾的所有p元素
[属性名*=“属性值”]
p[title*=“99”]
选定title属性的值包含99的所有p元素