一、基本选择器,有三种应用方式:
1、使用通配符 *
* 对所有标签进行渲染,包括body标签,优先级最低
2、使用id
id不能以数字开头,具有唯一性,不可重复
3、使用class
class不能以数字开通,但是不具有唯一性,可以重复
注意:
通配符的优先级低于标签,标签的优先级低于id或class;
当存在多层、同样优先级的选择器渲染时,按编辑的顺序,style中后面的优先级最高
二、组合选择器,基本选择器可组合使用
1、逗号隔开,表示关系:或
2、指定嵌套的后代时,使用空格,无论儿子还是孙子,都有效
3、指定嵌套的子代时,使用>,只有儿子变,孙子不变
4、指定毗邻标签时,使用A+B,只对A的兄弟标签B渲染
注意:p标签不能嵌套块标签,嵌套效果等于无
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>exercise</title> <style> *{ background-color:pink; color:green; font-size:10px; } <!--#second{--> <!--color:blue;--> <!--font-size:20px;--> <!--}--> <!--.cc{--> <!--color:yellow;--> <!--font-size:20px;--> <!--}--> <!--.tt{--> <!--color:yellow;--> <!--font-size:10px;--> <!--}--> <!--div.tt{--> <!--background-color:green;--> <!--color:yellow;--> <!--font-size:10px;--> <!--}--> <!--div,p{--> <!--color:black;--> <!--font-size:10px;--> <!--}--> <!--div div{--> <!--background-color:white;--> <!--color:blue;--> <!--}--> <!--div p{--> <!--color:red;--> <!--}--> <!--.tt a{--> <!--background-color:black;--> <!--color:white;--> <!--}--> <!--div>p{--> <!--color:red;--> <!--}--> <!--.tt>div{--> <!--background-color:black;--> <!--color:white;--> <!--}--> div+p{ color:red; } a+p{ color:yellow; } a+div{ color:yellow; } </style> </head> <body> <p>以下练习的是基本选择器,多重渲染效果时: 1:通配符的优先级低于其他;指定id或class的优先级最高 2:按解释器的顺序,即style中出现的先后,以最后面的为优先级最高</p> <p> 第一种方式green:通配符*,对所有标签进行渲染,包括body标签 </p> <p id="second"> 第二种方式blue:通过id,id不能以数字开头,是唯一的 </p> <p class="cc"> 第三种方式yellow:通过class,class与id一样,不能用数字开头 </p> <a class="cc"> class不是唯一的,可以重复 </a> <p class="tt cc"> 同时存在多层渲染时,按上面编辑的顺序,后面的优先级最高 </p> <div class="tt"> 同时存在多层渲染时,按上面编辑的顺序,后面的优先级最高 <a> 后代 <div> tt-a-div </div> </a> <p> p标签不能嵌套块标签,嵌套效果等于无 <div> tt-a-div </div> </p> </div> <p> 以下练习的是组合选择器: 1、逗号隔开,表示关系:或 2、指定嵌套的后代时,使用空格,无论儿子还是孙子,都有效 3、指定嵌套的子代时,使用>,只有儿子变,孙子不变 4、指定毗邻标签时,使用A+B,只对A的兄弟标签B渲染 </p> <div> 第一层,有3个后代 <div>后代1,还有两个后代 <div>后代1.1div</div> <p>后代1.2p</p> </div> <div> 后代2div </div> <p> 后代3p </p> </div> <p>p标签不能嵌套块标签,嵌套效果等于无</p> </body> </html>
三、属性选择器
标签内可自定义属性,并根据属性添加渲染效果。
1、直接使用[属性名],对所有同属性的添加效果
2、标签名相同,但是值不同,使用[标签名="***"]的方式,指定作用域
3、标签名和自定义属性同时使用,表示作用效果在带有此属性的类标签下
4、自定义属性值由含有空格的字符串组成时,可使用[属性名~="***"]指定
5、若自定义属性值是由 - 连接的字符串、并以***开头,可使用[属性名|="***"]指定
6、[属性名^="***"]匹配以***开头的,无关后面是什么连接,应用范围广
7、[属性名$="***"]匹配以***结尾的
8、[属性名*="***"]匹配以***开头的
注意:使用before和after可在标签前后进行字段插入
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>exercise2</title> <style> <!--[zidingyi]{--> <!--color:blue;--> <!--}--> <!--[zidingyi="dz"]{--> <!--color:blue;--> <!--}--> <!--p[zidingyi]{--> <!--color:red;--> <!--}--> <!--[zidingyi~="kk"]{--> <!--color:blue;--> <!--}--> <!--[zidingyi|="bp"]{--> <!--color:blue;--> <!--}--> <!--[zidingyi^="ueht"]{--> <!--color:blue;--> <!--}--> <!--[zidingyi|="ueht"]{--> <!--color:blue;--> <!--}--> <!--[zidingyi^="bp"]{--> <!--color:red;--> <!--}--> <!--[zidingyi$="htod"]{--> <!--color:red;--> <!--}--> <!--[zidingyi*="ewe"]{--> <!--color:yellow;--> <!--}--> #insert:before{ content:"开始:"; color:red; } #insert:after{ content:"结束。"; color:red; } </style> </head> <body> <p>以下练习属性选择器:</p> <div zidingyi="zd"> 标签内可自定义属性,并根据属性添加渲染效果: <p>1、直接使用[属性名],对所有同属性的添加效果</p> </div> <div zidingyi="dz"> <p>2、标签名相同,但是值不同,使用[标签名="***"]的方式,指定作用域</p> </div> <p zidingyi="bp"> 3、标签名和自定义属性同时使用,表示作用效果在带有此属性的类标签下 </p> <p zidingyi="bp kk zd"> 4、自定义属性值由含有空格的字符串组成时,可使用[属性名~="***"]指定 </p> <p zidingyi="bp-kk-zd"> 5、若自定义属性值是由 - 连接的字符串、并以***开头,可使用[属性名|="***"]指定 </p> <p zidingyi="uehtiohtoieqr"> 6、[属性名^="***"]匹配以***开头的,无关后面是什么连接,应用范围广 </p> <p zidingyi="uehtiohtod"> 7、[属性名$="***"]匹配以***结尾的 </p> <p zidingyi="trewerw"> 8、[属性名*="***"]匹配以***开头的 </p> <p id="insert"> 9、使用before和after可在标签前后进行字段插入 </p> </body> </html>
四、伪类选择器
伪类选择器,对同一内容进行操作,不同操作显示不同效果,注意顺序
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>exercise3</title> <style> a:link{ color:red; } a:visited{ color:blue; } a:hover{ color:green; } a:active{ color:yellow; } </style> </head> <body> <a href="helloWeb.py">伪类选择器,定义连接点击时与点击前后的显示效果</a> <a>注意设置伪类选择器时的顺序,一定按照实际操作的顺序,否则会出错</a> </body> </html>
浙公网安备 33010602011771号