css伪元素是用来添加一些选择器的特殊效果。

语法

伪元素的语法:

selector:pseudo-element{property:value;}

css类野可以使用伪元素

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

:first-line伪元素

"first-line" 伪元素用于向文本的首行设置特殊样式。

在下面的例子中,浏览器会根据 "first-line" 伪元素中的样式对 p 元素的第一行文本进行格式化:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"> 
<title>技术中文网(html99.cn)</title> 
<style>
p:first-line 
{
color:#4169E1;
font-variant:small-caps;
}
</style>
</head>

<body>
<p>你可以使用 "first-line" 伪元素向文本的首行设置特殊样式。</p>
</body>
</html>
css 伪元素-技术中文网

注意:"first-line" 伪元素只能用于块级元素。

注意: 下面的属性可应用于 "first-line" 伪元素:

  • font properties
  • color properties 
  • background properties
  • word-spacing
  • letter-spacing
  • text-decoration
  • vertical-align
  • text-transform
  • line-height
  • clear

:first-letter 伪元素

"first-letter" 伪元素用于向文本的首字母设置特殊样式:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"> 
<title>技术中文网(html99.cn)</title> 
<style>
p:first-letter 
{
	color:#4169E1;
	font-size:xx-large;
}
</style>
</head>

<body>
<p>你可以使用 "first-letter" 伪元素向文本的首字母设置特殊样式:</p>
</body>
</html>
css 伪元素-技术中文网

注意: "first-letter" 伪元素只能用于块级元素。

注意: 下面的属性可应用于 "first-letter" 伪元素: 

  • font properties
  • color properties 
  • background properties
  • margin properties
  • padding properties
  • border properties
  • text-decoration
  • vertical-align (only if "float" is "none")
  • text-transform
  • line-height
  • float
  • clear

伪元素和css类

伪元素可以结合ccs类:

p.article:first - letter {color:#4169E1;}
<p class ="article">文章段落</p>

上面的例子会使所有css为article的段落首字母变为蓝色。

多个伪元素

可以结合多个伪元素来使用。

在下面的例子中,段落的第一个字母将显示为红色,其字体大小为 xx-large。第一行中的其余文本将为蓝色,并以小型大写字母显示。

段落中的其余文本将以默认字体大小和颜色来显示:

css 伪元素-技术中文网

css - :before伪元素

":before" 伪元素可以在元素的内容前面插入新内容。

下面的例子在每个 <h1>元素前面插入一幅图片:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"> 
<title>技术中文网(html99.cn)</title> 
<style>
h1:before {content:url(https://yun.html99.cn/cloud/index.php?mod=io&op=thumbnail&original=1&path=Sm50NjJEV19UR0ZNZ0ZLNnRldVh1WTN5R2pabS0teU5uVjlUYVg4Q201R2IyWTFlNDNQVWM3WVJyQ290eEVjMkJkQVdSZDFfQ1g2dWdB&original=1);}
</style>
</head>

<body>
<h1>这是标题</h1>
<p>before伪元素在元素之前插入内容。</p>
<h1>这是标题</h1>
<p><b>注意:</b>仅当 !DOCTYPE 已经声明 IE8 支持这个内容属性</p>
</body>
</html>
css 伪元素-技术中文网

css - :after伪元素

":after"伪元素可以在元素的内容之后插入新内容。

下面的例子在每个<h1>元素后面插入一幅图片

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"> 
<title>技术中文网(html99.cn)</title> 
<style>
h1:after {content:url(https://yun.html99.cn/cloud/index.php?mod=io&op=thumbnail&original=1&path=Sm50NjJEV19UR0ZNZ0ZLNnRldVh1WTN5R2pabS0teU5uVjlUYVg4Q201R2IyWTFlNDNQVWM3WVJyQ290eEVjMkJkQVdSZDFfQ1g2dWdB&original=1);}
</style>
</head>

<body>
<h1>这是标题</h1>
<p>伪元素在元素之后插入内容。</p>
<h1>这是标题</h1>
<p><b>注意:</b>仅当!DOCTYPE 已经声明 IE8支持这个内容属性.</p>
</body>
</html>
css 伪元素-技术中文网

:linka:link选择所有未访问链接
:visited a:visited选择所有访问过的链接
:active a:active选择正在活动链接
:hover a:hover把鼠标放在链接上的状态
:focus input:focus选择元素输入后具有焦点
:first-letter p:first-letter选择每个<p> 元素的第一个字母
:first-line p:first-line选择每个<p> 元素的第一行
:first-child p:first-child选择器匹配属于任意元素的第一个子元素的 <p> 元素
:before p:before在每个<p>元素之前插入内容
:after p:after在每个<p>元素之后插入内容
:lang(language)p:lang(it)为<p>元素的lang属性选择一个开始值