CSS伪元素(非常详细)

伪元素是一个附加在选择器末尾的关键词,通过伪元素您不需要借助元素的 ID 或 class 属性就可以对被选择元素的特定部分定义样式。例如通过伪元素您可以设置段落中第一个字母的样式,或者在元素之前、之后插入一些内容等等。

10年积累的做网站、成都网站建设经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计后付款的网站建设流程,更有夷陵免费网站建设让你可以放心的选择与我们合作。

在 CSS1 和 CSS2 中,伪元素的使用与伪类相同,都是使一个冒号
:与选择器相连。但在 CSS3 中,将伪元素单冒号的使用方法改为了使用双冒号
::,以此来区分伪类和伪元素。因此,建议在使用伪元素时使用双冒号而不是单冒号。

selector::pseudo-element {
    property: value;
}

其中,selector 为选择器,pseudo-element 为伪元素的名称,property 为 CSS 中的属性,value 为属性对应的值。

注意:一个选择器中只能使用一个伪元素,而且伪元素必须紧跟在选择器之后。按照最新的 W3C 规范,在定义伪元素时您应该使用双冒号::而不是单个冒号:,以便区分伪类和伪元素。但由于旧版本的 W3C 规范并未对此进行特别区分,因此目前绝大多数的浏览器都同时支持使用单冒号和双冒号两种方式来定义伪元素。

CSS 中提供了一系列的伪元素,如下表所示:

伪元素 例子 例子描述
::after p::after 在每个

元素之后插入内容

::before p::before 在每个

元素之前插入内容

::first-letter p::first-letter 匹配每个

元素中内容的首字母

::first-line p::first-line 匹配每个

元素中内容的首行

::selection p::selection 匹配用户选择的元素部分
::placeholder input::placeholder 匹配每个表单输入框(例如 )的 placeholder 属性

1. ::after

伪元素 ::after 能够在指定元素的后面插入一些内容,在 ::after 中需要使用 content 属性来定义要追加的内容,而且在 ::after 中必须定义 content 属性才会生效(没有需要插入的内容时可以将 content 属性的值定义为空
"")。

下面通过一个示例来演示伪元素 ::after 的使用:




    


    

伪元素 ::after

伪元素 ::after

伪元素 ::after

运行结果如下图所示:



图:伪元素 ::after 的使用

2. ::before

伪元素 ::before 能够在指定元素的前面插入一些内容。与 ::after 相似,::before 中也需要使用 content 属性来定义要追加的内容,而且在 ::before 中必须定义 content 属性才会生效(没有需要插入的内容时可以将 content 属性的值定义为空
"")。

下面通过一个示例来演示伪元素 ::before 的使用:




    


    

伪元素 ::before

伪元素 ::before

伪元素 ::before

运行结果如下图所示:



图:伪元素 ::before 的使用

3. ::first-letter

伪元素 ::first-letter 用来设置指定元素中内容第一个字符的样式,通常用来配合 font-size 和 float 属性制作首字下沉效果。需要注意的是,伪元素 ::first-letter 仅可以用于块级元素,行内元素想要使用该伪元素,则需要先将其转换为块级元素。

下面通过示例来演示伪元素 ::first-letter 的使用:




    


    

伪元素 ::first-letter

运行结果如下图所示:



图:伪元素 ::first-letter 的使用

4. ::first-line

伪元素 ::first-line 用来设置指定元素中内容第一行的样式,与 ::first-letter 类似,伪元素 ::first-line 也仅可以用于块级元素,行内元素想要使用该伪元素,则需要先将其转换为块级元素。

下面通过示例来演示伪元素 ::first-line 的使用:




    


    

伪元素 ::first-line 用来设置指定元素中内容第一行的样式,与 ::first-letter 类似,伪元素 ::first-line 也仅可以用于块级元素,行内元素想要使用该伪元素,则需要先将其转换为块级元素。

运行结果如下图所示:



图:伪元素 ::first-line 的使用

5. ::selection

伪元素 ::selection 用来设置对象被选中时的样式,需要注意的是,伪元素 ::selection 中只能定义元素被选中时的 color、background、cursor、outline 以及 text-shadow(IE11 尚不支持定义该属性)等属性。

下面通过示例来演示伪元素 ::selection 的使用:




    


    

伪元素 ::selection 用来设置对象被选中时的样式,需要注意的是,伪元素 ::selection 中只能定义元素被选中时的 color、background、cursor、outline 以及 text-shadow(IE11 尚不支持定义该属性)等属性。

运行结果如下图所示:



图:伪元素 ::selection 的使用

6. ::placeholder

伪元素 ::placeholder 用来设置表单元素(