CSS中的选择器(一)

 API文档:http://css.cuishifeng.cn/all.html

1. 通配选择符(*)

语法:

  * { sRules }

说明:

  通常不建议使用通配选择符,因为它会遍历并命中文档中所有的元素,出于性能考虑,需酌情使用

兼容性:

  IE6及更早浏览器并不支持通配选择符(*),而是将它忽略了,所以也变相的能看到效果。

2. 类型选择符(E)

语法:

  E { sRules }

3. ID选择符(E#id)

语法:

  E#myid { sRules }

4. 类选择符(E.class)

语法:

  E.myclass { sRules }

说明:

  不同于ID选择符的唯一性,类选择符可以同时定义多个。

  .a.b { color: #f00; }

兼容性:

  IE6不支持多类选择符,形如:.a.b {}

5. 包含选择符(E F)

语法:

  E F { sRules }

说明:

  选择所有被E元素包含的F元素。

6. 子选择符(E>F)

语法:

  E>F { sRules }

说明:

  选择所有作为E元素的子元素F。

  与 包含选择符(E F) 不同的是,子选择符只能命中子元素,而不能命中孙辈。

<div class="demo">
  <div class="a">
    <div class="b">子选择符</div>
  </div>
</div>
.demo > div { position: relative; }
此例只有 .a 会被命中,因为它是 .demo 的子元素;

兼容性:

  IE6不支持

7. 相邻选择符(E+F)

语法:

  E+F { sRules }

说明:

  选择紧贴在E元素之后F元素,元素E与F必须同属一个父级。

兼容性:

  IE6不支持

8. 兄弟选择符(E~F)

语法:

  E~F { sRules }

说明:

  选择E元素后面的所有兄弟元素F,元素E与F必须同属一个父级。

  需要注意的是,选择的只是同级的元素F,后代中的元素F不会被选择。

兼容性:

  IE6不支持

9. E:link

语法:

  E:link { sRules }

说明:

  设置超链接a在未被访问前的样式。

  如果需要给超链接定义:访问前,鼠标悬停,当前被点击,已访问这4种伪类效果,而又没有按照一致的书写顺序,不同的浏览器可能会有不同的表现。超链接的4种状态,需要有特定的书写顺序才能生效。

  a:link {} a:visited {} a:hover {} a:active {}

  注意,a:hover 必须位于 a:link 和 a:visited 之后,a:active 必须位于 a:hover 之后

  可靠的顺序是:l(link)ov(visited)e h(hover)a(active)te, 即用喜欢(love)和讨厌(hate)两个词来概括

兼容性:

  IE7及更早浏览器只支持a元素的:active,从IE8开始支持其它元素的:active。

10. E:focus

语法:

  E:focus { sRules }

说明:

  设置对象在成为输入焦点(该对象的onfocus事件发生)时的样式。

  webkit内核浏览器会默认给:focus状态的元素加上outline的样式。

兼容性:

  IE7及以下不兼容

11. E:first-child

语法:

  E:first-child { sRules }

说明:

  匹配父元素的第一个子元素E。

  要使该属性生效,E元素必须是某个元素的子元素,E的父元素最高是body,即E可以是body的子元素

12. E[att]

语法:

  E[att] { sRules }

说明:

  选择具有att属性的E元素。

兼容性:

  IE6不兼容

13. E[att="val"]

语法:

  E[att="val"] { sRules }

说明:

  择具有att属性且属性值等于val的E元素。

兼容性:

  IE6不兼容

14. E[att~="val"]

语法:

  E[att~="val"] { sRules }

说明:

  选择具有att属性且属性值为一用空格分隔的字词列表,其中一个等于val的E元素(包含只有一个值且该值等于val的情况)。

兼容性:

  IE6不兼容

15. E[att^="val"]

语法:

  E[att^="val"] { sRules }

说明:

  选择具有att属性且属性值为以val开头的字符串的E元素。

兼容性:

  IE6不兼容

16. E[att$="val"]

语法:

  E[att$="val"] { sRules }

说明:

  选择具有att属性且属性值为以val结尾的字符串的E元素。

兼容性:

  IE6不兼容

17. E[att*="val"]

语法:

  E[att*="val"] { sRules }

说明:

  选择具有att属性且属性值为包含val的字符串的E元素。

兼容性:

  IE6不兼容

18. E[att|="val"]

语法:

  E[att|="val"] { sRules }

说明:

  选择具有att属性,其值是以val开头并用连接符"-"分隔的字符串的E元素;如果值仅为val,也将被选择。

  这样理解会更简单:如果元素E拥有att属性,并且值为val,或者值是以val-开头的,那么E将会被选择。

兼容性:

  IE6不兼容

 

posted @ 2019-11-02 11:06  codedot  阅读(141)  评论(0编辑  收藏  举报