CSS 伪元素用于创建特定的特殊效果,它们可以用于选择和样式化元素的某些部分,这些部分在文档树中并不存在作为可访问的元素节点。
伪元素主要用于添加装饰性的效果,例如添加前缀内容、创建边框效果等。
而前文的伪类CSS伪类大全!4大类伪类详解用于根据特定条件为已有元素添加样式,它们描述了元素的某个状态,如:hover、:focus、:nth-child()等。
伪元素在 CSS 中使用两个冒号(::)作为前缀,例如:
- .my-element::before {
- content: "This is before the element's content";
- }
-
- .my-element::after {
- content: "This is after the element's content";
- }
-
ok,那我们一起来看看吧。
::before 伪元素用于在元素的内容之前插入内容。可以使用的属性取决于所生成的内容,一般来说可以使用的属性与普通元素一样,它的使用。
- .my-element::before {
- content: "「This is before the element's content";
- color: red;
- font-weight: bold;
- }
-
但需要注意:
::after 伪元素用于在元素的内容之后插入内容。注意事项和 ::before 一样。
- .my-element::after {
- content: "This is after the element's content」😆";
- color: red;
- font-weight: bold;
- }
-
::before 和 ::after 伪元素在网页设计中其实玩法超多,比如:
这些场景展示了 ::before 和 ::after 伪元素的灵活性和强大功能,它们可以帮助开发者和设计师在不增加额外HTML结构的情况下,通过CSS创造出丰富的视觉效果。
::selection 伪元素用于选择元素的选中文本,并对其进行样式化。可以设置选择文本的样式属性,如背景色、颜色等。
- ::selection {
- background-color: yellow;
- color: #f00;
- }
-
选中文字以后,效果如下:
需要注意的是:
::first-line,伪元素用于选择元素的第一行文本,并对其进行样式化,可以设置文本的样式属性,如字体、颜色、背景等。
- p::first-line {
- color: red;
- font-weight: bold;
- }
-
注意:只能应用于块级元素,不能应用于表格元素,不包括任何内联元素。
::first-letter, 伪元素用于选择元素的首字母,并对其进行样式化。可以设置字母的样式属性,如字体、大小、颜色等。
- p::first-letter {
- color: red;
- font-size: 20px;
- }
-
注意:只能应用于块级元素和某些其他特定元素,如段落和标题等,字母不能位于其他标记之内。
第一块效果是前2个伪元素,后三个是依次的伪元素效果,如下:
那你可能会说,为什么是双引号呢?这里就得科普一下 CSS 的一些历史了~
双冒号(::)是 CSS3 中伪元素的语法。它用于区分伪类(使用单冒号)和伪元素,提高代码的可读性,而单冒号(:)是 CSS2 中伪类和伪元素的共同语法。在 CSS3 中,单冒号继续用于伪类,而伪元素则改为使用双冒号。
在 CSS3 出现之前,伪类和伪元素都使用单冒号。但为了更清晰地区分伪类和伪元素,CSS3 推荐使用双冒号来表示伪元素。
但也不是说,必须用双引号,由于向后兼容性的原因,许多浏览器仍然也支持单冒号语法(例如 :before 和 :after)。