before && after
這兩個偽類元素功能很相似,都是在元素內(nèi)部插入新的內(nèi)容。下面一起看下他們的區(qū)別和用法。
1. 官方定義
before:元素的內(nèi)容之前插入新內(nèi)容。
after:元素的內(nèi)容之后插入新內(nèi)容。
2. 慕課解釋
before
和 after
的功能就是在元素的內(nèi)部的原有內(nèi)容之前,或者之后插入新的內(nèi)容。
3. 語法
.demo:before{
}
.demo:after{
}
解釋:使用方法如上面,通過在元素選擇器后面增加一個 :
來開始偽類的使用。
4. 兼容性
IE | Edge | Firefox | Chrome | Safari | Opera | ios | android |
---|---|---|---|---|---|---|---|
all | all | all | all | all | all | all | all |
5. 實例
<div class="demo">慕課網(wǎng)</div>
- 在元素內(nèi)容之前插入文字:姓名。
.demo:before{
content: '姓名:';
}
效果圖:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
.demo:before{
content: '姓名:';
}
</style>
</head>
<body>
<div class="demo">慕課網(wǎng)</div>
</body>
</html>
- 在元素內(nèi)容之后插入:很好。
.demo:after{
content: '很好';
}
效果圖:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
.demo:after{
content: '很好';
}
</style>
</head>
<body>
<div class="demo">慕課網(wǎng)</div>
</body>
</html>
6. 經(jīng)驗分享
這兩個偽類當然不是僅僅插入內(nèi)容這么簡單,它還有其他的妙用。
- 使用偽類 after 清除元素內(nèi)部浮動效果:
<div class="demo">
<div class="item">慕</div>
<div class="item">課</div>
</div>
<div class="">網(wǎng)</div>
.demo:after{
content: '';
display: block;
clear: both;
}
.item{
float: left;
}
效果圖:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
.demo:after{
content: '';
display: block;
clear: both;
}
.item{
float: left;
}
</style>
</head>
<body>
<div class="demo">
<div class="item">慕</div>
<div class="item">課</div>
</div>
<div class="">網(wǎng)</div>
</body>
</html>
說明:下面灰色部分是沒有清除浮動的效果,上面是清除浮動的效果。因為清除了浮動所以 “網(wǎng)” 這個字換行了。
- 在元素內(nèi)容開始前插入圖片。
<div class="demo">慕課網(wǎng)</div>
.demo:before{
content: '';
display:inline-block;
width:12px;
height:12px;
font-size:12px;
line-height:12px;
background: url(//img.mukewang.com/wiki/5eea2f6809a8d35e00400040.jpg) center no-repeat;
background-size: cover;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
.demo:before{
content: '';
display:inline-block;
width:12px;
height:12px;
font-size:12px;
line-height:12px;
background: url(//img.mukewang.com/wiki/5eea2f6809a8d35e00400040.jpg) center no-repeat;
background-size: cover;
}
</style>
</head>
<body>
<div class="demo">慕課網(wǎng)</div>
</body>
</html>
7. 小結(jié)
- 注意:對于 IE8 及更早版本中的
:before
、:after
,必須聲明 <!DOCTYPE>。 - 在元素選擇器后面這樣寫也可以:
.demo::before{
}
.demo::after{
}