傲视苍穹H5_VIP专题饥人谷技术博客html/css

CSS选择器与优先级浅析

2016-05-19  本文已影响2356人  犯迷糊的小羊

CSS选择器是用于定位文档中的元素所在以便设定相应的样式,常见的选择器包括:基础选择器、组合选择器、属性选择器、伪类选择器和伪元素等。
而优先级则是CSS样式在浏览器中被解析的先后顺序

1.CSS选择器

选择器 含义 实例
* 通用选择器,匹配任何元素 *{font-size:16px;}
E 标签选择器,匹配所有使用E标签的元素 p{font-family:arial;}
.error class选择器,匹配所有class属性中包含error的元素 .error{font-weight:bold;}
#correct id选择器,匹配所有id属性值为correct的元素 #correct{font-style:italic;}
选择器 含义 实例
E,F 多元素选择器,同时匹配所有E元素或F元素 div,p{background-attachment:fixed;}
E F 后代元素选择器,匹配所有属于E元素的后代F元素 div a{background-color:blue;}
E > F 子元素选择器,匹配所有E元素的子元素F div>p{background-image:url(xxx.gif)}
E+F 毗邻元素选择器,匹配所有紧随E元素之后的同级元素F p+div{background-position:x% y%}
选择器 含义 实例
E[att] 匹配所有具有att属性的E元素 p[style]{background-repeat:repeat-y;}
E[att=val] 匹配所有att属性等于“val”的E元素 div[class="c1"]
E[att~=val] 匹配所有att属性具有多个空格分隔的值、其中一个值等于“val”的E元素 div[class~=c2]
E[att|=val] 匹配所有att属性具有多个连字号分隔(hyphen-separated)的值、其中一个值以“val”开头的E元素 p[lang|=en]

【注】除了上表提到的属性选择器之外,还包括一些CSS3新添加的属性选择器,这些留待日后更新

选择器 含义 实例
E:first-child 匹配父元素E下的第一个子元素 div:first-child{text-align:center;}
E:link 匹配所有未被点击的链接
E:visited 匹配所有已被点击的链接
E:active 匹配鼠标已经按下、还没有释放的E元素
E:hover 匹配鼠标悬停其上的E元素
E:focus 匹配获得当前焦点的E元素
E:lang(c) 匹配lang属性等于c的E元素
选择器 含义 实例
E:first-line 匹配E元素的第一行 p:first-line{color:red;}
E:first-letter 匹配E元素的第一个字母 .c1:first-letter{color:blue;}
E:before 在E元素之前插入生成的内容 .ctn before{content:"";display:block;;height:40px;width:40px;}
E:after 在E元素之后插入生成的内容 .ctn after{content:"";display:block;;height:40px;width:40px;}

2.CSS的优先级

【注】
本篇幅的知识点是根据网站的资料整合而成,是国内开发者关于CSS选择器优先级的一般看法,特点是计算简便,但存在一定的缺陷性。
这里,非常感谢饥人谷的夏东旭童鞋在阅览笔者的文章后,给予我关于CSS选择器的优先级的指正,夏东旭童鞋的文章更加具有参考价值,在此附上其文章地址
至于两种计算方式的计算优劣以及适用情况,由于笔者还算新手,视野未开,容日后对本文做进一步完善。

css优先级,即是指CSS样式在浏览器中被解析的先后顺序

div .class1 #people的权值等于1+10+100=111
.class2 li #age的权值等于10+1+100=111
如果第二个选择器后定义样式,则第二个的优先级要高


参考资料

上一篇下一篇

猜你喜欢

热点阅读