学习CSS之如何改变CSS伪元素的样式
一、CSS伪元素
CSS 伪元素用于向某些选择器设置特殊效果。
伪元素的用法如下:
selector:pseudo-element {property:value;}
CSS 类也可以和伪元素搭配使用
selector.class:pseudo-element {property:value;}
二、修改伪元素样式
1.问题描述
伪元素例子:
.content { width: 100px; height: 100px; margin: 0 auto; background: black; } .content::before { content: ""; width: 20px; height: 20px; position: absolute; background: blue; }
如果我们想对修改伪元素的样式,又该怎么做呢?因为伪元素在DOM树中创建了一些抽象元素,但这些抽象元素是不存在于文档语言里的,即不存在于 HTML 源码里,所以并不能通过选择器来选择这些伪元素。既然不能选择伪元素,那要怎么才能修改伪元素的样式?
2.方案一
通过增加 style 标签以重新定义伪元素,实现对伪元素样式的覆盖,方法为:
$(".content").append("<style>.content::before{display:none}</style>");
但这种方案有个问题,因为对原来的样式进行了覆盖,所以会对所有该类的标签产生影响。
3.方案二
更优的方案是通过增加新的 CSS 类来对伪元素的某些样式进行修改,方法如下:
1)定义新的 CSS 类。
例如增加新的 CSS 类:
.change::before {
background: red;
}
2)添加新类以修改伪元素样式。
在 JQuery 中使用 id 选择器和 css 选择器,再使用 addClass() 进行添加修改,示例如下:
$("#content1").addClass("change");