::before 和::after 详解
在元素的 ::before 和 ::after 中插入内容——content 属性(如果没有写 content 样式,伪元素会失效)
contnt 属性的类别:

4.在每个 <h1>
元素的内容之前插入一幅图:
css
h1::before {
content: url();
}
5.在每个 <h1>
元素的内容之后插入一幅图像:
css
h1::after {
content: url();
}
6.使所选文本在蓝色背景上显示为红色:
css
h1::selection {
color: red;
background: blue;
}
可以应用于 ::selection 的属性
color
background
cursor
outline
7.伪元素与 CSS 类结合使用:(将以粉色和较大的字体显示 class="name" 的段落的首字母)
css
p.name::first-letter {
color: hotpink;
font-size: 200%;
}
<p class="name">你好漂亮!</p>
五、伪类和伪元素的应用
1、画分割线
效果如图
css
<style>
* {
padding: 0;
margin: 0;
}
/*content没有内容也一定要记得写*/
.line::before, .line::after {
content: '';
display: inline-block;
width: 300px;
border-top: 1px solid black;
margin: 5px;
}
</style>
</head>
<body>
<p class="line">此处为分割线</p>
</body>
2、清除浮动
如果父元素的所有子元素都是浮动的,父元素的高度则无法撑开。可以通过对父元素添加 after 伪类撑开父元素高度,因为 after 就是其最后一个子元素。
代码如下:
css
.clear::after {
content: "";
display: block;
clear: both; /*清除(忽略)前面的div设置的float浮动,但是不会影响原来的浮动效果!*/
}
3、计数器
使用 CSS 实现计数器,用到的属性有:
counter-reset: 属性设置某个选择器出现次数的计数器的值。默认为 0。
counter-increment: 属性设置某个选取器每次出现的计数器增量。默认增量是 1。
content: 插入生成的内容。
代码如下:
css
<head>
<style>
.chooses {
counter-reset: letters; /*letters相当于是自定义的变量*/
}
.chooses input:checked {
counter-increment: letters;
}
.choose span::after {
content: counter(letters);
}
</style>
</head>
<body>
<div class="chooses">
<input type="checkbox">a
<input type="checkbox">b
<input type="checkbox">c
<input type="checkbox">d
<input type="checkbox">e
<input type="checkbox">f
<input type="checkbox">g
<input type="checkbox">h
<input type="checkbox">i
<input type="checkbox">j
</div>
<p class="choose">我选择了<span></span>个字母</p>
</body>
效果如下: