CSS 伪类
CSS 伪类选择器基于附加条件匹配元素,并且不一定由文档树定义。
什么是伪类
CSS 伪类允许你设置元素的动态状态,例如悬停,活动和焦点状态,以及文档树中存在的元素,但不能通过使用其他选择器来定位而不添加任何元素它们的 ID 或类,例如,定位第一个或最后一个子元素。
伪类以冒号(:
) 开头。其语法如下:
selector:pseudo-class { property : value ; }
以下部分描述了最常用的伪类。
锚伪类
使用 anchor 伪类链接可以以不同的方式显示:
这些伪类使你可以将未访问的链接设置为与访问过的链接不同。最常见的样式技术是从访问过的链接中删除下划线。
a:link {
color: blue;
}
a:visited {
text-decoration: none;
}
一些锚伪类是动态的 - 它们是作为用户与文档交互的结果而应用的,例如悬停或焦点等。
a:hover {
color: red;
}
a:active {
color: gray;
}
a:focus {
color: yellow;
}
这些伪类更改链接的呈现方式以响应用户操作。
:hover
适用于当用户将光标放在元素上但不选择它时。:active
适用于激活或单击元素时。:focus
适用于当元素具有键盘焦点时。
注: 为了使这些伪类很好地工作,你必须在正确的顺序将它们定义- , :link
, :visited
, :hover
:active
,:focus
。
::first-child
伪类
:first-child
伪类匹配的是一些其他元素的第一个子元素的元素。下面示例中的 ol li:first-child
选择器选择有序列表的第一个列表项,并从中删除顶部边框。
ol li:first-child {
border-top: none;
}
注意: 要 :first-child
在 Internet Explorer 8 及更早版本中工作,必须在文档顶部声明。 <!DOCTYPE>
::last-child
伪类
:last-child
伪类匹配的是一些其他元素的最后一个子元素的元素。下例中的 ul li:last-child
选择器从无序列表中选择最后一个列表项,并从中删除右边框。
ul li:last-child {
border-right: none;
}
注意: CSS :last-child
选择器在 Internet Explorer 8 和早期版本中不起作用。Internet Explorer 9 及更高版本支持。
::nth-child
伪类
CSS3 引入了一个新的 :nth-child
伪类,允许你定位给定父元素的一个或多个特定子元素。此选择的基本语法为 :nth-child(N)
,其中 N
是一个参数,其可以是一个数字,一个关键字(even
或 odd
),或表达式 xn+y
,其中 x
和 y
是整数(例如 1n
, 2n
, 2n+1
,…)。
table tr:nth-child(2n) td {
background: #eee;
}
上例中的样式规则只是突出显示备用表行,而不向 <table>
元素添加任何 ID 或类。
**提示:**在必须选择在特定间隔或模式中出现在文档树内部的元素(如偶数或奇数位置等)的情况下,CSS :nth-child(N)
选择器非常有用。
:lang
伪类
语言伪类 :lang
允许基于特定标签的语言设置构建选择器。
q:lang(no) {
quotes: "~" "~";
}
/* HTML code snippet */
<p>Some text <q lang="no">A quote in a paragraph</q> Some text.</p>
注意: 版本 7 以下的 Internet Explorer 不支持 :lang
伪类。仅当指定了 <!DOCTYPE>
时,IE8 才支持。
伪类和 CSS 类
伪类可以与 CSS 类结合使用。
以下示例中的 class="red"
链接将以红色显示。
a.red:link { /* style rule */
color: #ff0000;
}
<a class="red" href="#">Click me</a> /* HTML code snippet */
PREVIOUS PAGE