伪类、伪元素选择器

205 阅读3分钟

### 伪类选择器 定义: 伪类用于定义元素的特殊状态。由于状态的变化是非静态的,所以元素达到一个特定状态时, 它可能得到一个样式;当状态改变时,它又会失去这个样式。 由此可以看出,它的功能和 class 有些类似,但它是基于文档之外的抽象,所以叫伪类。 1. 链接伪类: 注意: 以下三个是作用于超链接元素 的! :link 表示作为超链接,并指向一个未访问的地址的所有锚 :visited 表示作为超链接,并指向一个已访问的地址的所有锚 :target 代表一个特殊的元素,它的id是URI的片段标识符 URL 带有后面跟有锚名称 #,指向文档内某个具体的元素。这个被链接的元素就是目标元素(target element)。 :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开始计数 示例: #wrap ele:nth-child(index) 表示匹配#wrap中第index的子元素 这个子元素必须是ele 特殊值: 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)系列 示例:#wrap ele:nth-of-type(index) 表示匹配#wrap中第index的ele子元素 :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