伪元素,顾名思义,就是你根本没有在你的源代码中写这个元素,但是在运行的时候确出现的元素。
伪元素不是选择器。但是伪元素是和选择器连在一起的。
伪元素的形式如下:
selector:伪元素
伪类和伪元素的形式完全一样,只是它们表达的含义不同。
在selector
匹配到的HTML
元素之前插入一个元素。
示例:
.welcome:before {
content: "Hello ";
color: red;
text-size: 12px
}
在selector
匹配到的HTML
元素之后插入一个元素。
示例:
.clear-float:after {
display: block;
clear: both;
content:'';
}
匹配selector
匹配到的HTML
元素的第一个子元素。
示例:
.panel-body:first-child {
}
匹配selector
匹配到的HTML
元素的最后一个子元素。
示例:
.panel-body:last-child {
}
匹配selector
匹配到的HTML
元素的第一行文本。
示例:
.panel-body > .h1 + p : first-line {
backgroud-color : red;
}
匹配selector
匹配到的HTML
元素的第一个字母。
示例:
.panel-body > .h1 + p : first-letter {
text-size : 30px;
}
匹配selector
匹配到的HTML
元素的直接子元素。
n
可以取下面的值:
整数,从1开始 | 表示第n个子元素 |
---|---|
odd | 表示第偶数个子元素 |
even | 表示第奇数个子元素 |
带有n的表达式 | 比如2n+1 |
示例:
ul : nth-child(1) {
color : write;
}
ul : nth-child(odd) {
color : red;
}
ul : nth-child(even) {
color : green;
}
ul : nth-child(3n) {
color : black;
}
匹配selector
匹配到的HTML
元素被激活为当前锚点的时候触发。 如果没有指定selector
,那么当前页面上的任何锚点被激活,都会触发。
IE9
以下的IE
浏览器不支持。
示例:
:target {
border: 2px solid #D4D4D4;
background-color: #e5eecc;
}
#posix:target {
border: 2px solid #D4D4D4;
background-color: #e5eecc;
}
匹配selector1
匹配到的HTML
元素中排除了selector2
匹配到的HTML
元素中剩下的那些元素。
示例:
:not(p) {
border:1px solid #ccc;
}