CSS 伪元素

CSS 伪元素是一种设置文档元素的方式,这些元素未由文档树中的位置明确定义。

什么是伪元素

CSS 伪元素允许你设置元素或元素部分的样式,而无需向其添加任何 ID 或类。当你只想设置段落的第一个字母以创建首字下沉效果或者你想要在元素之前或之后插入某些内容(仅通过样式表)时,它将非常有用。

CSS3 为伪元素引入了一种新的双冒号(::)语法,以区分它们和伪类。伪元素的新语法如下:

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

这些是以下最常用的伪元素:

::first-line 伪元素

::first-line 伪元素应用特殊的样式添加到文本的第一行。

以下示例中的样式规则格式化段落中的第一行文本。第一行的长度取决于浏览器窗口的大小或包含元素。

p::first-line {
    color: #ff0000;
    font-variant: small-caps;
}

注意: 可应用 ::first-line 伪元素的 CSS 属性包括: 字体属性背景属性颜色字间距字母间距文本修饰垂直对齐文本转换行高

::first-letter 伪元素

::first-letter 伪元素用于将特殊的样式添加到文本的第一行的第一个字母。以下示例中的样式规则格式化文本段落的第一个字母,并创建效果,如首字下沉。

p::first-letter {
    color: #ff0000;
    font-size: xx-large;
}

注意: 可应用 ::first-letter 伪元素的 CSS 属性包括: 字体属性文本修饰文本转换字母间距字间距行高浮点数垂直对齐 (仅当’ 浮点 ‘时是’无’),颜色边距填充属性边框属性背景属性

::before::after 伪元素

::before::after 伪元素可以用于在一个元素的内容之前或之后插入生成的内容。的 CSS content 属性与这些伪元素结合使用时,插入所生成的内容。

这对于进一步装饰具有丰富内容的元素非常有用,该元素不应该是页面实际标记的一部分。你可以使用这些伪元素插入常规文本字符串或嵌入对象(如图像和其他资源)。

h1::before {
    content: url("images/marker-left.gif");
}
h1::after {
    content: url("images/marker-right.gif");
}

伪元素和 CSS 类

通常,我们需要使用这些伪元素仅为某段文本或其他块级元素设置样式。这就是声明伪元素的类发挥作用的地方。伪元素可以与 CSS 类 组合以产生特别对于具有该类的元素的效果。

以下示例中的样式规则 class="article" 将显示所有段落的第一个字母的颜色为绿色和大小为 xx-large

p.article::first-letter {
    color: #00ff00;
    font-size: xx-large;
}