伪类选择器和伪元素

    技术2022-07-31  76

    伪类选择器

    伪类选择器有以下6种:

    动态伪类:

    锚点伪类用户行为伪类

    目标伪类

    UI元素状态伪类

    否定伪类选择器

    语言伪类选择器

    CSS3结构伪类

    动态伪类

    这些伪类并不存在于HTML中,只有当用户和网站交互的时候才能体现出来

    锚点伪类 link visited hover active(一定要按照这个顺序写)

    用户行为伪类 hover active focus

    目标伪类

    用于命名锚记

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> div{ height: 600px; font-size: 100px; text-align: center; line-height: 600px; } /* 目标添加效果 */ div:target{ background: yellowgreen; color: yellow; } </style> </head> <body> <p> <a href="#box1">1</a> <a href="#box2">2</a> <a href="#box3">3</a> <a href="#box4">4</a> <a href="#box5">5</a> </p> <div id="box1">1</div> <div id="box2">2</div> <div id="box3">3</div> <div id="box4">4</div> <div id="box5">5</div> </body> </html>
    UI元素状态伪类

    概念:

    ​ 我们把“:enabled”,“:disable”,“:checked”,“:seclect"伪类称为UI元素状态伪类

    兼容性:

    ​ IE9+,FireFox、Chrome、Safari、Opera

    否定选择器(:not)

    概念:

    ​ :not(Element/selector) 选中除了括号里的其它元素

    兼容性:

    ​ IE9+,FireFox,Chrome,Safari,Opera

    举个例子:

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>not</title> <style type="text/css"> * { margin: 0; padding: 0; border: none; } a { text-decoration: none; color: #333; font-size: 14px; display: block; float: left; width: 100px; height: 30px; } nav { width: 800px; margin: 0 auto; } nav > a:not(:last-of-type) { /*除了最后一个a没有被选中,nav下的所有a都被选中*/ border-right: 1px solid red; } </style> </head> <body> <nav> <a href="#">first</a> <a href="#">second</a> <a href="#">third</a> <a href="#">fourth</a> <a href="#">fifth</a> <!-- 最后一个没有右边框效果 --> </nav> </body> </html>
    语言伪类选择器

    用来匹配使用指定语言的元素

    <!DOCTYPE html> <head> <meta charset="UTF-8"> <title>Document</title> <style> p:lang(zh-cn){ background-color: red; } </style> </head> <body> <p lang="en"><q>Quote in English</q></p> <p lang="zh-cn"><q>中文的引号</q></p> </body> </html>
    CSS3结构伪类

    CSS3的:nth选择器

    ​ 我们把CSS3的:nth选择器也称为CSS3结构类

    选择方法: ​ :first-child,:last-child,:nth-child(),:nth-last-chld,nth-of-type(),:nth-last-of-type(),:first-of-type(),:last-of-type,:only-child,:only-of-type,:empty

    Element:first-child

    概念:

    ​ 选择第一个元素

    兼容性:

    ​ IE8+,FireFox、Chrome、Safari、Opera

    Element:last-child

    概念:

    ​ 选择最后一个元素

    兼容性:

    ​ IE8+,FireFox、Chrome、Safari、Opera

    Element:nth-child()

    概念:

    ​ 选择确切的位置上的元素,nth-child(1)等于first-child

    兼容性:

    ​ IE9+,FireFox4+,Chrome,Safari,Opera

    关于参数(n)

    ​ nth-child(n)选取每一行

    ​ n:所有的行

    ​ 2n:每2行选择一行

    ​ 3n:每3行选择一行

    ​ n+2:除第1行外所有的行

    ​ 2n+4:从第4行开始隔1行选择1行

    ​ :nth-last-child(n) 从后向前选择,n为参数

    ​ n:所有行

    ​ 2:倒数第2行

    ​ -n+3:最后3行

    ​ :only-child只有一个元素时使用

    Element:nth-last-child(N)

    概念:

    ​ 匹配属于其元素的第N个子元素的每个元素,不论元素的类型,从最后一个子元素开始计数

    兼容性:

    ​ IE9+,FireFox4+,Chrome,Safari,Opera

    Element:nth-of-type(N)

    概念:

    ​ :nth-of-type(N)选择匹配属于父元素的特定类型的第N个子元素的每个元素

    兼容性:

    ​ IE9+,FireFox4+,Chrome,Safari,Opera

    Element:nth-last-of-type(N)

    概念:

    ​ 匹配属于父元素的特定类型的第N个子元素的每个元素,从最后一个子元素开始计数

    兼容性:

    ​ IE9+,FireFox4+,Chrome,Safari,Opera

    Element:first-of-type

    概念:

    ​ :first-of-type选择器匹配属于其父元素的特定的首个子元素的每个元素

    兼容性:

    ​ IE9+,FireFox4+,Chrome,Safari,Opera

    Element:last-of-type

    概念:

    ​ :last-of-type选择器匹配属于其父元素的特定的首个子元素的每个元素

    兼容性:

    ​ IE9+,FireFox4+,Chrome,Safari,Opera

    Element:only-child

    概念:

    ​ :only-child选择器匹配属于其父元素的唯一子元素的每个元素

    兼容性:

    ​ IE9+,FireFox,Chrome,Safari,Opera

    Element:only-of-type

    概念:

    ​ :only-of-type选择器匹配属于其父元素的特定类型的唯一子元素的每个元素

    兼容性:

    ​ IE9+,FireFox4+,Chrome,Safari,Opera

    Element:empty

    概念:

    ​ :empty选择器匹配没有子元素(包括文本节点)的每个元素

    兼容性:

    ​ IE9+,FireFox,Chrome,Safari,Opera

    伪元素

    CSS伪元素用于向某些选择器设置特殊效果

    语法格式:

    ​ 元素::伪元素 (Element::pseudo-element)

    兼容性:

    ​ IE9+,FireFox,Chrome,Safari,Opera

    Element::first-line

    概念:

    ​ 根据“first-line”伪元素中的样式对Element元素的第一行文本进行格式化

    说明:

    ​ “first-line”伪元素只能用于块级元素

    Element::first-letter

    概念:

    ​ 用于向文本的首字母设置特殊样式

    说明:

    ​ “first-letter”伪元素只能用于块级元素

    Element::before

    概念:

    ​ 在元素的内容前面插入新的内容

    说明:

    ​ 常用“content”配合使用

    Element::after

    概念:

    ​ 在元素的内容后面插入新内容

    说明:

    ​ 常用“content”配合使用,多用于清除浮动

    Element::selection

    概念:

    用于设置在浏览器选中文本后的背景色和前景色

    兼容性说明:

    ::selection在IE家族中,只有IE9+版本支持,在Firefox中需要加上其前缀“-moz”

    伪类选择器和伪元素选择器的区别

    css伪类:状态伪类基于元素当前状态进行选择的。结构伪类利用dom树进行元素过滤,通过文档结构的互相关系来匹配元素。

    css伪元素:对元素中的特定内容进行操作,而不是描述状态。

    css3为了区分两者伪类使用单冒号,伪元素使用双冒号,但因为兼容问题现在大部分还是用单冒号。

    Processed: 0.010, SQL: 9