总结一下有关css选择器方面的知识:
1:css选择器的作用:通过选择器选中并对相关元素设置样式。
2:css选择器分类。
1:基本选择器
选择器 |
含义用法 |
示例 |
行内样式 |
在标签中设置样式 |
<p style=”color:red”></p> |
id |
#+名称,在网页中具有唯一性 |
#red{color:red} |
类别 |
.+名称。可以重复使用 |
.red{color:red} |
标签 |
标签名+样式 |
P{color:red} |
这四个选择器是最基本的选择器,但他们存在优先级的关系。他们的优先级为:行内样式>id样式>类别样式>标签样式
2:组合选择器
选择器 |
含义用法 |
示例 |
多元素选择器 |
同时匹配多个元素,用逗号隔开 |
Div,p{color:red} |
后代选择器 f s |
匹配所有f元素中后代F元素,用空格隔开 |
Div p{color:red} |
子元素选择器f>s |
匹配所有f元素中的子元素s |
Div>p{color:red} |
相邻元素选择器 f+s |
匹配所有f元素之后的同级元素s |
Div+p{color:red} |
3:属性选择器
他的表达式为:E[attr]
4:伪类选择器(css2)
选择器 |
含义和用法 |
示例 |
F:first-child |
匹配f元素的第一个子元素 |
P:first-child{color:red} |
a:active |
匹配鼠标已经按下、还没有释放a元素 |
A:active{text-decoration:none} |
a:visited |
匹配所有已经点击过的链接 |
A:visited{color:red} |
a:link |
匹配所有未被点击的链接 |
A:link{color:blue} |
a:hover |
匹配鼠标悬停其上的a元素 |
A:hover{color:#fff} |
F:foucs |
匹配获取焦点的元素f |
F:foucs{color:red} |
5:伪元素选择器
选择器 |
含义用法 |
示例 |
p:first-line |
匹配p元素的第一行 |
P:first-line{color:red} |
p:first-letter |
匹配p元素的第一个字母 |
P:first-letter{font-size:’24px} |
P:before |
在p元素之前插入生成的内容一般要与content一起用 |
P:before{content:“”;display:block} |
P:after |
在p元素之后插入生成的内容一般要与content一起用 |
P:after{content:“”;display:block} |
6:css3中的有关界面的伪类(主要用于表单当中)
选择器 |
含义用法 |
示例 |
E:enabled |
匹配所有被激活的表单元素 |
Input:enabled{border:1px solid red} |
E:disabled |
匹配所有被禁用的表单元素 |
Input:disabled{border:1px solid red} |
E:checked |
匹配所有被选中的表单元素(radio和checkbox) |
Radio:checked{ Height:20px ;width:20px } |
7:通配选择器
表达式为*{样式}
这个选择器通常用于reset css样式,因为每个浏览器的默认值都不一样,所以可以用其初始化样式。但用它不利于seo.他匹配所有的元素,所以相当的耗资源,现在不怎么推荐使用,并且他的优先级最低。
以上列举了一些常用的选择器。但有些选择器存在着一些兼容性的问题
以上除了基本的选择器外其余的几乎IE6都不兼容。其中:hover在IE6中只有a标签可以用,其他的不能用。同时在IE6中不支持.class1{}.class2{}双类选择器。
:before和:after ,:foucs在IE6 IE7中不被支持
Css3中的有关界面的的伪类在IE6,IE7,IE8中都不被支持。
其中子选择器和后代选择器的区别:子选择器是与其相关元素的直接相应子节点有效。后代选择器是对应用对象内的所有相应子节点都有效。一个指的是子元素,另一个指的的所有的后代元素
Id选择器和class选择器,二者用的比较多。Id选择器的优先级高于class选择器,在js中适合用。Class选择器在js中的效率比id选择器要差,因为class选择器需要遍历dom.但由于id选择器高优先级,他的复用性不是很高。所以需要两者配合的使用。