【CSS3】选择器

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4     <meta charset="utf-8">
 5     <title></title>    
 6     <link rel="stylesheet" type="text/css" href="style.css">
 7 </head>
 8 <body>    
 9     <h1 class="class1" class="class2">h1标题内容</h1><!--一个元素可以有多个类名称-->
10     <p class="class1">p段落内容</p>
11     <div id="div1" class="class1">div的内容</div>
12 </body>
13 </html>
1 p{color:green;}/*元素选择器样式优先级高于通用选择样式*/
2 *{color: red}/*星号*为通用样式*/
3 #div1{color: blue}/*id选择器样式高于通用选择器和元素选择器样式*/
4 div{color: yellow}
5 .class1{color: pink}/*类选择器样式低于id选择器样式,高于元素选择器样式和通用选择器样式*/
6 h1.class1{padding: 20px}/*指定类名称为某个特定元素的*/

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4     <meta charset="utf-8">
 5     <title></title>    
 6     <link rel="stylesheet" type="text/css" href="style.css">
 7 </head>
 8 <body>    
 9     <form>
10         <input type="text" name="text1" style="padding: 10px 20px 30px">
11         <input type="text" name="text2" style="padding: 15px 25px 35px">
12         <input lang="en-us" type="tel">
13         <input type="email" name="email" value="qq@qq.com">
14         <input type="submit" name="submit" value="确认">
15     </form>
16 </body>
17 </html>
1 /*input[name]{background: red}*/
2 /*input[name][value]{background: green}*//*含指定属性的元素*/
3 /*input[name="email"]{background: blue}*//*指定属性等于指定值的元素*/
4 /*input[style~='25px']{background:green}*/
5 /*input[lang|='en']{background: pink}*//*属性值以en开头,并后跟-的元素*/
6 /*input[name^="e"]{background:red }*//*属性name值以e开头的元素*/
7 /*input[name$="t"]{background: red}*//*指定属性值以特定字符串结尾的元素*/
8 input[name*="a"]{background: red}/*指定属性值包含特定字符串的元素*/

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4     <meta charset="utf-8">
 5     <title></title>    
 6     <link rel="stylesheet" type="text/css" href="style.css">
 7 </head>
 8 <body>    
 9     <ul>
10         <li>第一个li元素
11             <ol>
12                 <li>后代选择器</li>
13                 <li>后代选择器</li>
14             </ol>
15         </li>
16     </ul>
17     <div>
18         <h1>h1h1</h1>
19         <p>p标签</p>
20         <h2>h2标签</h2>
21         <h1>h1标签</h1>
22     </div>
23     <h1>第3个h1标签</h1>
24 </body>
25 </html>
1 /*ul li{background: red}*/
2 /*ul>li{color: red;border:1px solid;}*//*颜色会被继承下去。边框不会被继承,只对子级有效,对孙级无效。*/
3 /*div h1{color: red}*/
4 /*p+h1{color: red}*//*紧贴在p之后的h1元素,如果p和h1之间有其他元素则无效*/
5 p~h1{color: red}/*p之后的所有h1,p之前的h1无效,p之后的h1和p之间有其他元素不会干扰。超出同个父级标签范围之后的h1无效*/

伪元素选择器:

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4     <meta charset="utf-8">
 5     <title></title>    
 6     <link rel="stylesheet" type="text/css" href="style.css">
 7 </head>
 8 <body>    
 9     <p>
10         万里长城永不倒<br>
11         千里黄河水涛涛
12     </p>
13 </body>
14 </html>
1 /*伪元素选择器*/
2 p::first-letter{color: red;font-size: 60px}
3 p::first-line{background: red}
4 p::before{content: "前插入内容"}
5 p::after{content: "后插入内容"}/*不止插入文字,还可插入图片等*/
6 p::selection{background: pink}

结构伪类选择器:

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4     <meta charset="utf-8">
 5     <title></title>    
 6     <link rel="stylesheet" type="text/css" href="style.css">
 7 </head>
 8 <body>    
 9     <ul>
10         <li>第一个子元素</li>
11         <ol>
12             <li>第1个子元素</li>
13             <li>第2个子元素</li>
14             <li>第3个子元素</li>
15         </ol>
16         <li>第二个子元素</li>
17         <li>第三个子元素</li>
18     </ul>
19     <ul><li>仅有的一个无序列表</li></ul>
20     <ol><li>仅有的一个有序列表</li></ol>
21     <div>
22         <h1>父元素下同类型h1元素只有一个</h1>
23         <p>父元素下同类型p元素只有一个</p>
24     </div>
25     <div>
26         <p>父元素下同类型p元素只有一个</p>
27     </div>
28     <div>
29         <p>父元素下同类型p元素有两个。有子元素。
30             <h2>h2元素</h2>
31         </p>
32         <p>父元素下同类型p元素有两个</p>
33     </div>
34     <div></div>
35 </body>
36 </html>
 1 /*伪类选择器*/
 2 /*结构伪类选择器*/
 3 /*:root{background: blue};*//*root指html标签*/
 4 /*li:first-child{color: red}*//*要满足两个条件:1.是li元素;2.是其父元素的第一个子元素*/
 5 /*ol>li:first-child{background: green}
 6 ul>li:last-child{color:blue;}*/
 7 /*p:only-child{background: red}*//*要满足两个条件:1.是p元素;2.p元素的父元素内只有一个元素*/
 8 /*p:only-of-type{color: green}*//*要满足两个条件:1.是p元素;2.p元素的父元素内只有一个p元素*/
 9 /*li:first-of-type{color: red}*//*要满足两个条件:1.是li元素;2.li元素的父元素内是第一个li元素。即匹配同级同类型第一个元素*/
10 /*li:last-of-type{color: red}*//*要满足两个条件:1.是li元素;2.li元素在父元素内是最后一个li元素。即匹配同级同类型最后一个元素*/
11 /*li:nth-of-type(2){color: red}*//*要满足两个条件:1.是li元素;2.li元素的父元素内是同类型第2个li元素。即匹配同级同类型第2个元素*/
12 /*li:nth-last-of-type(1){color: green}*//*要满足两个条件:1.是li元素;2.li元素的父元素内是同类型倒数第一个li元素。即匹配同级同类型倒数第1个元素*/
13 /*li:nth-child(2){color: red}*//*要满足两个条件:1.是li元素;2.li元素是父元素内第2个元素*/
14 /*li:nth-last-child(1){color: green}*//*要满足两个条件:1.是li元素;2.li元素是父元素内倒数第1个元素*/
15 /*li:nth-child(odd){color: red}*//*要满足两个条件:1.是li元素;2.li元素是父元素内第奇数个元素*/
16 /*li:nth-child(even){color: red}*//*要满足两个条件:1.是li元素;2.li元素是父元素内第偶数个元素*/
17 /*li:nth-child(3n){color: red}*//*要满足两个条件:1.是li元素;2.li元素是父元素内第3n个元素。还可用3n+1等各种表达式*/
18 div:empty{width: 300px;height: 200px;background: red}/*要绝对的空,连内容都不能有,空格都不能有*/

UI伪类选择器、其他伪类选择器:

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4     <meta charset="utf-8">
 5     <title></title>    
 6     <link rel="stylesheet" type="text/css" href="style.css">
 7 </head>
 8 <body>    
 9     <a href="">链接</a>
10     <a href="">链接2</a>
11     <a href="#p1">链接到target</a>
12     <form>
13         <input type="text" name="">
14         <input type="email" name="">
15         <input type="tel" name="" lang="zh-CN">
16         <input type="checkBox" name="" disabled="">复选框
17         <input type="radio" name="">单选按钮
18     </form>
19     <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
20     <p lang="" id="p1">target链接过来的文本内容</p>
21 </body>
22 </html>
 1 /*伪类选择器*/
 2 /*UI伪类选择器*/
 3 /*a:active{background: blue}*/
 4 /*a:hover{background: blue}*/
 5 /*a:link{color: pink;background: green}*//*未访问过的链接颜色设置要放在访问过的设置之前才有效*/
 6 /*a:visited{color: red}*/
 7 /*input:focus{background: pink}*/
 8 /*input:lang(zh-CN){background: pink}*/
 9 /*input:checked{ 20px;height: 20px}*/
10 /*input:disabled{ 30px;height: 30px}*/
11 /*input:enabled{ 30px;height: 30px}*/
12 /*p:target{color: red}*//*p元素的内容在被链接过来时会使用的样式*/
13 :not(a){color: red}

 选择器优先级:

一般情况:行内样式>ID>类>元素;

范围更小,描述更精准的优先级高;

后设置的优先级高。