css伪类用于向某些选择器添加特殊的效果
css伪元素用于将特殊的效果添加到某些选择器
伪类种类
:active | 将样式添加到被激活的元素 |
:focus | 将样式添加到被选中的元素 |
:hover | 鼠标悬浮在上方 |
:link | 未被访问过的链接 |
:visited | 被访问过的链接 |
:first-child | 特殊的样式添加到元素第一个子元素 |
:lang | 允许创作者来定义指定的元素中使用的语言 |
伪元素种类
:first-letter | 将特殊的样式添加到文本的首字母 |
:first-line | 将特殊的样式添加到文本的首 |
:before | 在某元素之前插入某些内容 |
:after | 在某元素之后插入某些内容 |
区别
伪类的效果可以通过添加一个实际的类来达到,而伪元素的效果则需要通过添加一个实例才能达到,这样式他们为什么一个称为伪类,一个称为伪元素的原因
总结
伪元素和伪类之所以这么容易混淆,是因为他们的效果类似而且写法相仿,但实际上css3为了区分两者,已经明确规定了伪类用一个冒号来表示,而伪元素则用两个冒号来表示
但因为兼容性的问题,所以现在大部分还是统一的单冒号,但是抛开兼容性的问题,我们在书写时应该尽可能养成好习惯,区分两者
伪元素的使用
css伪元素::after用来创建一个伪元素,作为已选中元素的最后一个子元素。通常会配合content属性来为该元素添加装饰内容。这个虚拟元素默认是行内元素
a::after{
content:"->";
background-color:red;
border-color:black;
border-style:dotted;
}
提示用法
attr() css表达式和一个自定义数据属性data-descr创建一个存css,词汇表提示工具
span[data-descr]:hover::after{
content:attr(data-desrc);
将属性为data-desrc的属性值变为伪元素
//这里写伪元素的样式
}
content:url(链接)
content:"("attr(href)")" //感觉是字符串和变量连接在一起
清除浮动
实现多张背景图片
做一些动画
a:hover::before, a:hover::after { position: absolute; } a:hover::before { content: "5B"; left: -10px; } a:hover::after { content: "5D"; right: -10px; }