注意:伪类选择器hover 可以作用于所有元素,不仅仅是链接。
与hover类似的选择器还有link,visited,active。 link 选择器可以设置未被访问过的链接样式, visited 选择器可以设置已被访问过的链接样式,active选择器可以设置被激活的链接样式。不清楚的同学可以参考 CSS视频教程。
用法1:当鼠标经过链接时改变其自身的样式(hover后面直接接样式)
描述:当鼠标经过时,a标签的字体颜色变为红色,字体变大,
用法2:用伪类选择器hover控制其子元素的样式(hover后面加空格再接要改变元素的样式)
描述:当鼠标经过时div时,其子元素的颜色变为紫色,字体变大,出现红色边框,
用法3:当鼠标经过时控制其兄弟元素的样式(hover后面加“+”再接要改变元素的样式)
描述:鼠标经过时其兄弟元素的背景颜色变为黄色,字体变大,
1、动态伪类选择器
不同的状态,使用不同的样式。
E: link
E: visited
E: active
E: hover
E: focus
2、目标伪类选择器
用来匹配页面的URI中某个标识符的目标元素。
E: target
选择匹配E的所有元素,且匹配元素被相关URL指向。
3、语言伪类选择器
用来匹配使用指定语言的元素。
E: lang(language)
4、元素状态伪类选择器
当元素处于某种状态下时,才起作用,在默认状态下不起作用。
E: checked
eg: input[type="checkbox"]:checked{}
E: enabled
eg: input[type="text"]:checked{}
E: disabled
eg: input[type="text"]:disabled{}
5、结构伪类选择器
这个就比较多了,平时用的也比较频繁。
: nth-child
: nth-last-child
: nth-of-type
: nth-last-of-type
: first-child
: last-child
: only-child
: first-of-type
: last-of-type
: only-of-type
: root 匹配元素所有在文档的根元素
: empty 选择没有子元素的元素,且不包含节点
6、否定伪类选择器
E: not(F) 匹配所有除F外的E元素
1、CSS兄弟相邻选择器加号
相邻兄弟选择器使用了加号(+),即相邻兄弟结合符(Adjacent sibling combinator)。
注释:与子结合符一样,相邻兄弟结合符旁边可以有空白符。
CSS兄弟相邻选择器加号,举例说明
HTML代码
<p>这里是第一个P标签</p><p>这里是第二个P标签</p><h2 class = 'h2'>标题H2</h2><p>这里是第一个P标签</p><p>这里是第二个P标签</p><p>这里是第三个P标签</p><p>这里是第四个P标签</p>CSS代码
.h2 + p{color: red
}
2、CSS兄弟选择器~(匹配选择器)
'~'匹配所有在指定元素之后的同级某个元素
举例说明一个,CSS的匹配选择器
HTML代码
<p>这里是第一个P标签</p><p>这里是第二个P标签</p><h2 class = 'h2'>标题H2</h2><p>这里是第一个P标签</p><p>这里是第二个P标签</p><p>这里是第三个P标签</p><p>这里是第四个P标签</p>CSS代码
.h2 ~ p{color: red
}
3、总结:
CSS中的兄弟选择符号‘~’,可以选择指定元素后的,同级的相同的所有元素。比如上面的示例,所以h2标签后的P标签全部被选择,并加入了样式
通过这两个例子,可以发现虽然这两个选择器都表示兄弟选择器,但是‘+’选择器则表示某元素后相邻的兄弟元素,也就是紧挨着的,是单个的。而‘~’选择器则表示某元素后所有同级的指定元素,强调所有的。
其他选择器可参考