伪类选择器
定义:
伪类用于定义元素的特殊状态。由于状态的变化是非静态的,所以元素达到一个特定状态时,
它可能得到一个样式;当状态改变时,它又会失去这个样式。
由此可以看出,它的功能和 class 有些类似,但它是基于文档之外的抽象,所以叫伪类。
1. 链接伪类:
注意: 以下三个是作用于超链接元素 <a> 的!
:link 表示作为超链接,并指向一个未访问的地址的所有锚
:visited 表示作为超链接,并指向一个已访问的地址的所有锚
:target 代表一个特殊的元素,它的id是URI的片段标识符
URL 带有后面跟有锚名称
:target 选择器可用于选取当前活动的目标元素。
由于隐私的原因 :visited选择器, 只能将下列属性应用到已访问链接:
color
background-color
border-color
2. 动态伪类:
注意:(:hover 和 :active)基本可以作用于所有的元素!
:hover 表示悬浮到元素上
:active 表示匹配被用户激活的元素(点击按住时)
由于a标签的:link和:visited可以覆盖了所有a标签的状态,
所以当:link,:visited,:hover,:active同时出现在a标签身上时,
a:hover 必须在 CSS 定义中的 a:link 和 a:visited 之后,才能生效!
a:active 必须在 CSS 定义中的 a:hover 之后才能生效!伪类名称对大小写不敏感。
3. 表单相关伪类:
:enabled 匹配可编辑的表单
:disabled 匹配被禁用的表单
:checked 匹配被选中的表单
:focus 匹配获焦的表单
4. 结构性伪类:
:first-child:表示选中第一个子元素
:last-child: 表示选中最后一个子元素
:nth-child(index):index的值从1开始计数
示例:
特殊值:
n 第n个 n的范围是0到正无穷
2n 或 even 表示选中偶数位的元素
2n+1 或 odd 表示选中奇数位的元素
:nth-last-child(index)
:only-child (相对于:first-child:last-child 或者 :nth-child(1):nth-last-child(1))
:first-of-type
:last-of-type
:nth-of-type(index)系列
示例:
:nth-last-type(index)
:only-of-type (相对于:first-of-type:last-of-type 或者 :nth-of-type(1):nth-last-of-type(1))
此外:nth-child和:nth-of-type有一个很重要的区别!!
nth-of-type以元素为中心!!!
:not: 否定伪类
:empty(内容必须是空的,有空格都不行,有attr没关系)
伪元素选择器
表示页面中一些特殊的并不真实存在的元素(特殊的位置)
语法:使用双冒号(::)开头
::after
::before
::first-letter
::first-line
::selection