什么是伪元素?
伪元素是创造关于文档语言能够指定的文档树之外的抽象。
例如文档语言不能提供访问元素内容第一字或者第一行的机制。
伪元素允许设计师引用它们,否则这是难以办到的。
伪元素还提供样式设计师给在源文档中不存在的内容分配样式(例如:::before和::after能够访问产生的内容)。
伪元素有:
| 12
 3
 4
 5
 
 | ::first-line::first-letter
 ::before
 ::after
 ::selection
 
 | 
::first-line
::first-line选择器用于选取指定元素文档的首行(第一行)
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 
 | <!DOCTYPE html><html>
 <head>
 <meta charset="UTF-8">
 <title>first-line</title>
 <style type="text/css">
 div{
 width: 200px;
 height: 200px;
 }
 div::first-line{
 color: red;
 }
 </style>
 </head>
 <body>
 <div>符合身份和集散地该U盾傻瓜ID搜我爱护公大赛后宫ID撒谎个欧ID搜爱国我海带丝欧安哥嫂该活动四阿哥好</div>
 </body>
 </html>
 
 | 
这个是修改文字颜色 只有第一行的文字颜色变为红色 其他文字颜色还是默认黑色
执行效果为

再改下背景颜色
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 
 | <!DOCTYPE html><html>
 <head>
 <meta charset="UTF-8">
 <title>first-line</title>
 <style type="text/css">
 div{
 width: 200px;
 height: 200px;
 }
 div::first-line{
 color: red;
 background-color: #000;
 }
 </style>
 </head>
 <body>
 <div>符合身份和集散地该U盾傻瓜ID搜我爱护公大赛后宫ID撒谎个欧ID搜爱国我海带丝欧安哥嫂该活动四阿哥好</div>
 </body>
 </html>
 
 | 
执行效果为 同样只有第一行的背景颜色改变了

如上所示 ::first-line 这个属性只作用于该文档的第一行文字
同样除了上面演示的几种属性还有
- 字体属性
- 颜色属性
- 背景属性
- word-spacing
- letter-spacing
- text-decoration
- vertical-align
- text-transform
- line-height
- clear
::first-letter
::first-letter 属性只作用于元素的首个字母或文字
还是上面的代码
| 12
 3
 4
 
 | div::first-letter{color: red;
 background-color: #000;
 }
 
 | 
只是改成first-letter
效果如下

如图所示 只有第一个文字样式被改变了
同样 还可以改变:
- 字体属性
- 颜色属性
- 背景属性
- 外边距属性
- 内边距属性
- 边框属性
- text-decoration
- vertical-align(只有在 float 为 ‘none’ 时)
- text-transform
- line-height
- float
- clear
::before
::before 在元素内容之前插入新的内容
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 
 | <!DOCTYPE html><html>
 <head>
 <meta charset="UTF-8">
 <title>first-line</title>
 <style type="text/css">
 div{
 width: 200px;
 height: 200px;
 background-color: deepskyblue;
 }
 div::before{
 content: '';
 width: 100px;
 height: 100px;
 display: block;
 background-color: red;
 }
 </style>
 </head>
 <body>
 <div>符合身份和集散地该U盾傻瓜ID搜我爱护公大赛后宫ID撒谎个欧ID搜爱国我海带丝欧安哥嫂该活动四阿哥好</div>
 
 </body>
 </html>
 
 | 
效果如图


在DVI的前面多了一个红色方框 上边第二张图片是浏览器控制台的状态 在文档之前多了一个::before
::after
::after 与::before 相反 他是在元素的后面添加
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 
 | <!DOCTYPE html><html>
 <head>
 <meta charset="UTF-8">
 <title>first-line</title>
 <style type="text/css">
 div{
 width: 200px;
 height: 200px;
 background-color: deepskyblue;
 }
 div::after{
 content: '';
 width: 100px;
 height: 100px;
 display: block;
 background-color: red;
 }
 </style>
 </head>
 <body>
 <div>符合身份和集散地该U盾傻瓜ID搜我爱护公大赛后宫ID撒谎个欧ID搜爱国我海带丝欧安哥嫂该活动四阿哥好</div>
 
 </body>
 </html>
 
 | 
效果如图


在DVI的后面多了一个红色方框 上边第二张图片是浏览器控制台的状态 在文档后面多了一个::after
::selection
::selection 设置文本选中状态
不过只能设置两个属性 
执行下面代码:
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 
 | <!DOCTYPE html><html>
 <head>
 <meta charset="UTF-8">
 <title>first-line</title>
 <style type="text/css">
 div{
 width: 200px;
 height: 200px;
 }
 </style>
 </head>
 <body>
 <div>符合身份和集散地该U盾傻瓜ID搜我爱护公大赛后宫ID撒谎个欧ID搜爱国我海带丝欧安哥嫂该活动四阿哥好</div>
 
 </body>
 </html>
 
 | 
效果为

这是默认效果
添加属性
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 
 | <!DOCTYPE html><html>
 <head>
 <meta charset="UTF-8">
 <title>first-line</title>
 <style type="text/css">
 div{
 width: 200px;
 height: 200px;
 }
 div::selection{
 color: #fff;
 background:deepskyblue;
 }
 </style>
 </head>
 <body>
 <div>符合身份和集散地该U盾傻瓜ID搜我爱护公大赛后宫ID撒谎个欧ID搜爱国我海带丝欧安哥嫂该活动四阿哥好</div>
 
 </body>
 </html>
 
 | 
效果为:

选中文字颜色和背景变成我设置的颜色了
大家可以自己复制上面代码 有编辑器的保存到编辑器
没有编辑器的可以在文本中粘贴 然后另存为 index.html  注意扩展名 不要选默认的txt