class和id选择器
- id:id选择器就是像身份证号一样。原则上是唯一的。但是也可以不唯一。一般就用于选择一个元素。多用于页面分块的块级元素上。
- class:class选择器可以用于多个标签元素。一般是选择多个元素。
常见的选择器
- id选择器:#id
- 类选择器:.class
- 标签选择器:p
- 通用元素选择器:*
组合选择器
- E,F 多元素选择器,用,分隔,同时匹配元素E或元素F
- E F 后代选择器,用空格分隔,匹配E元素所有的后代(不只是子元素、-- 子元素向下递归)元素F
- E>F 子元素选择器,用>分隔,匹配E元素的所有直接子元素
- E+F 直接相邻选择器,匹配E元素之后的相邻的同级元素F
- E~F 普通相邻选择器(弟弟选择器),匹配E元素之后的同级元素F(无论直接相邻与否)
属性选择器
- E[attr]:匹配所有具有属性attr的元素
- E[attr=value]:匹配属性值为value的元素
- E[attr~=value]:匹配所有属性attr具有多个空格分隔,其中一个值等于- value的元素
- E[attr^=value]:匹配属性attr的值以value开头的元素
- E[attr$=value]:匹配属性attr的值以value结尾的元素
- E[attr*=value]:p匹配属性attr的值包含value的元素
伪类选择器
- E:first-child:匹配元素E的第一个子元素
- E:link :匹配素有未被点击的链接
- E:visited :匹配所有已经被点击的链接
- E:active :匹配鼠标已经在其上按下,但是还没有释放的E元素
- E:hover :匹配鼠标悬停其上的E元素
- E:focus :匹配获得当前焦点的E元素
- E:lang(c) :匹配lang属性等于c的元素
- E:enabled :匹配表单中可用的元素
- Edisabled :匹配表单中禁用的元素
- E:checked: 匹配表单中被选中的radio或checkbox元素
- E:selection: 匹配用户当前选中的元素
- E:root :匹配文档的根元素,对于HTML文档,就是HTML元素
- E:nth-child(n) :匹配其父元素的第n个子元素,第一个编号为1
- E:nth-last-child :匹配其父元素的第n个子元素,第一个编号为1
- E:nth-of-type(n):与:nth-child作用类似,但是仅匹配使用同种标签的元素
- E:nth-last-of-type(n) :与nth-last-child作用相似,但是仅匹配使用同种标签的元素
- E:first-child:匹配父元素的第一个子元素
- E:last-child :匹配父元素的最后一个子元素
- E:first-of-type :即 E:nth-of-type(1)
- E:last-of-type :即 E:nth-last-of-type(1)
- E:only-child :匹配父元素下仅有的一个子元素
- E:only-of-type :匹配父元素下使用同种标签的唯一一个子元素
伪元素选择器
- E::first-line :匹配E元素内容的第一行
- E::first-letter :匹配E元素内容的第一个字母
- E::before :在E元素之前插入生成的内容
- E::after :在E元素之后插入生成的内容
选择器的优先级
- 属性后加!important
- 内联样式
- id选择器
- 类选择器
- 伪类选择器
- 属性选择器
- 标签选择器
- 通用选择器
行内样式 --> 统计值为a
ID选择器 --> 统计值为b
类、属性选择器、伪类选择器 --> 统计为c
标签选择器 --> 统计为d
先比较a值的大小,a值大的则优先级高;如果a值相等,则再比较b值的大小,b值大的优先级高;如果b值相等,则比较c值的大小,c值大的优先级高;如果c值相等,则比较d值的大小,d值大的优先级高;
a:link, a:hover, a:active, a:visited 的顺序
a:link{
color:"#101"
}
a:visited{
color:"#151"
}
a:hover{
color:"#103"
}
a:active{
color:"#121"
}
原因:
当鼠标移动到a标签上,此时与标签颜色相关的选择器有:a:link,a:visited,a:hover,这三个选择器拥有相同的优先级,但是被写在最后的选择器会覆盖掉之前的选择器,因此要想实现“当鼠标移动到a标签上变换颜色”的效果,需要将a:hover置于 a:link 和 a:visited 之后
当鼠标点击a标签,此时与标签颜色相关的选择器有:a:link,a:visited,a:hover和a:active,这四个选择器拥有相同的优先级,但是被写在最后的选择器会覆盖掉之前的选择器,因此要想实现“当鼠标点击a标签时变换颜色”的效果,需要将a:active置于a:link,a:visited,a:hover 之后
div:first-child和div:first-of-type的作用和区别
- first-child 匹配其父元素的第一个子元素
- first-of-type 匹配其父元素下拥有相同标签的第一个元素
网友评论