属性选择器可以根据元素的属性及属性值来选择元素。
........ 标签名[属性名]:选择含有给定属性的标签 ........
举例如下:
<style> li[title]{ color: blue; font-size: 80px; } </style> ....... <ul> <li title="yd">西安邮电大学</li> <li title="xa-jt">西安交通大学</li> <li id="dzkj">西安电子科技大学</li> <li class="lg-dx">西安理工大学</li> <li title="zf-dx">西北政法大学</li> <li title="xa-sf">陕西师范大学</li> </ul>
........ 标签名[属性名=值]:选择含有给定属性值的标签 ........
举例如下:
<style> li[title='yd']{ color: blue; font-size: 80px; } </style> ....... <ul> <li title="yd">西安邮电大学</li> <li title="xa-jt">西安交通大学</li> <li id="dzkj">西安电子科技大学</li> <li class="lg-dx">西安理工大学</li> <li title="zf-dx">西北政法大学</li> <li title="xa-sf">陕西师范大学</li> </ul>
........ 标签名[属性名^=值]:选择给定属性值是以某个字符开头的 ........
举例如下:
<style> li[title^='xa']{ color: blue; font-size: 80px; } </style> ....... <ul> <li title="yd">西安邮电大学</li> <li title="xa-jt">西安交通大学</li> <li id="dzkj">西安电子科技大学</li> <li class="lg-dx">西安理工大学</li> <li title="zf-dx">西北政法大学</li> <li title="xa-sf">陕西师范大学</li> </ul>
........ 标签名[属性名$=值]:选择给定属性值是以某个字符结尾的 ........
举例如下:
<style> li[title$='dx']{ color: blue; font-size: 80px; } </style> ....... <ul> <li title="yd">西安邮电大学</li> <li title="xa-jt">西安交通大学</li> <li id="dzkj">西安电子科技大学</li> <li class="lg-dx">西安理工大学</li> <li title="zf-dx">西北政法大学</li> <li title="xa-sf">陕西师范大学</li> </ul>
示例:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>003</title> </head> <style> li[id] { color: red; font-size: 50px; } li[title^='xa'] { color: blue; font-size: 80px; } li[title='yd'] { color: yellow; font-size: 77px; } li[title$='dx'] { color: #5fd; font-size: 44px; } </style> <body> <ul> <li title="yd">西安邮电大学</li> <li title="xa-jt">西安交通大学</li> <li id="dzkj">西安电子科技大学</li> <li class="lg-dx">西安理工大学</li> <li title="zf-dx">西北政法大学</li> <li title="xa-sf">陕西师范大学</li> </ul> </body> </html>
关系选择器和前面讲的复合选择器类似,但关系选择器可以更精确的控制元素样式。CSS3中的关系选择器主要包括子元素选择器和相邻兄弟选择器,其中子元素择器由符号“>”连接,相邻兄弟选择器由符号“+”和“~”连接。
子元素择器主要用来选择某个元素的第一级子元素,表示为父标签 > 子标签。
举例如下:
<style> ul>li { color: red; font-size: 80px; } </style>
兄弟选择器用来选择与某元素位于同一个父元素之中,且位于该元素之后的兄弟元素。
该选择器使用加号“+”来链接前后两个选择器。选择器中的两个元素有同一个父亲,而且第二个元素必须紧跟第一个元素。
举例如下:
<style> ul>li { color: red; font-size: 80px; } </style>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>003</title> </head> <style> ul+ol { color: #ad6; font-size: 80px; } </style> <body> <ul> <li title="yd">西安邮电大学</li> <li title="xa-jt">西安交通大学</li> <li id="dzkj">西安电子科技大学</li> </ul> <ol> <li>北京邮电大学</li> <li>清华大学</li> <li>北京大学</li> </ol> <ul> <li>王昭君</li> <li>貂蝉</li> <li>杨玉环</li> </ul> </body> </html>
普通兄弟选择器使用 “~”来链接前后两个选择器。选择器中的两个元素有同一个父亲,但第二个元素不必紧跟第一个元素。
举例如下:
<style> ul~ul { color: #ad6; font-size: 80px; } </style>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>003</title> </head> <style> ul~ul { color: #ad6; font-size: 80px; } </style> <body> <ul> <li title="yd">西安邮电大学</li> <li title="xa-jt">西安交通大学</li> <li id="dzkj">西安电子科技大学</li> </ul> <ul> <li>北京邮电大学</li> <li>清华大学</li> <li>北京大学</li> </ul> <ul> <li>王昭君</li> <li>貂蝉</li> <li>杨玉环</li> </ul> </body> </html>
用逗号分隔
<style> #dzkj,.lg-dx { color: #ad6; font-size: 80px; } </style>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>003</title> </head> <style> #dzkj,.lg-dx { color: #ad6; font-size: 80px; } </style> <body> <ul> <li title="yd">西安邮电大学</li> <li title="xa-jt">西安交通大学</li> <li id="dzkj">西安电子科技大学</li> <li class="lg-dx">西安理工大学</li> <li title="zf-dx">西北政法大学</li> <li title="xa-sf">陕西师范大学</li> </ul> </body> </html>
用空格分隔
#dd li { color: #ad6; font-size: 80px; }
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>003</title> </head> <style> #dd li { color: #ad6; font-size: 80px; } </style> <body> <ol id="dd"> <li>北京邮电大学</li> <li>清华大学</li> <li>北京大学</li> </ol> <ul> <li>王昭君</li> <li>貂蝉</li> <li>杨玉环</li> </ul> </body> </html>
当鼠标悬停在目标对象上时,展示的形式。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>003</title> </head> <style> #dd li:hover{ color: #ad6; font-size: 80px; } </style> <body> <ol id="dd"> <li>北京邮电大学</li> <li>清华大学</li> <li>北京大学</li> </ol> <ul> <li>王昭君</li> <li>貂蝉</li> <li>杨玉环</li> </ul> </body> </html>
表示已经访问过的超链接的样子
:visited { font-size: 65px; color: blue; }
超链接未被访问的样式
a:link { color: crimson; }
激活超链接时
a:active { color: yellow; }
举例如下:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>超链接a的伪类选择器</title> </head> <style> /* 超链接未被访问时 */ a:link { color: crimson; } /* 当链接已经被访问 */ a:visited { font-size: 65px; color: blue; } /* 当鼠标悬停在超链接上时 */ a:hover { font-size: 15px; color: purple; } /* 激活超链接时 */ a:active { color: yellow; } </style> <body> <a href="#">百度</a> <br><br> <a href="#">搜狐</a> <br><br> <a href="#">360</a> </body> </html>
:root选择器用于匹配文档根元素,在HTML中,根元素始终是html元素。也就是说使用“:root选择器”定义的样式,对所有页面元素都生效。对于不需要该样式的元素,可以单独设置样式进行覆盖。
:root{ color: red; font-size: 79px; }
如果对某个结构元素使用样式,但是想排除这个结构元素下面的子结构元素,让它不使用这个样式,可以使用:not选择器。
<style> div :not(#aa){------/注意div与:not之间要加一个空格 color: red; font-size: 79px; } </style>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>003</title> </head> <style> div :not(#aa){ color: red; font-size: 79px; } </style> <body> <div> <p id="aa">四大名著</p> <p id=ss>四大美女</p> <p id="dd">四大金刚</p> </div> </body> </html>
:only-child 选择器用于匹配属于某父元素的唯一子元素的元素,也就是说,如果某个父元素仅有一个子元素,则使用“:only-child 选择器”可以选择这个子元素。
<style> div :only-child { color: red; font-size: 79px; } </style>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>003</title> </head> <style> div :only-child { color: red; font-size: 79px; } </style> <body> <div> <p id="aa">四大名著</p> <p id=ss>四大美女</p> <p id="dd">四大金刚</p> </div> <div> <p>四大书院</p> </div> </body> </html>
:first-child选择器和:last-child选择器分别用于为父元素中的第一个或者最后一个子元素设置样式。
<style> div :first-child { color: red; font-size: 79px; } div :last-child { color:blue; font-size: 80px; } </style>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>003</title> </head> <style> div :first-child { color: red; font-size: 79px; } div :last-child { color:blue; font-size: 80px; } </style> <body> <div> <p id="aa">四大名著</p> <p id=ss>四大美女</p> <p id="dd">四大金刚</p> </div> </body> </html>
使用:first-child选择器和:last-child选择器可以选择某个父元素中第一个或最后一个子元素,但是如果用户想要选择第2个或倒数第2个子元素,这两个选择器就不起作用了。为此,CSS3引入了:nth-child(n)和:nth-last-child(n)选择器,它们是:first-child选择器和:last-child选择器的扩展。
:nth-child(n):匹配父元素中正数第n个元素,:nth-last-child(n):匹配父元素中倒数第n个元素,()内填需要改变的数字。
<style> div :nth-child(2) { color: red; font-size: 79px; } div :nth-last-child(1) { color:blue; font-size: 80px; } </style>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>003</title> </head> <style> div :nth-child(2) { color: red; font-size: 79px; } div :nth-last-child(1) { color:blue; font-size: 80px; } </style> <body> <div> <p id="aa">四大名著</p> <p id=ss>四大美女</p> <p id="dd">四大金刚</p> <p>四大神话</p> </div> </body> </html>
:before伪元素选择器用于在被选元素的内容前面插入内容,必须配合content属性来指定要插入的具体内容。
:after伪元素选择器用于在某个元素之后插入一些内容,使用方法与:before选择器相同。
<style> div:before { /* 注意content后加文字时要给文字带引号*/ content: '西安'; } div:after { content: '陕西'; } </style>