A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 环球信息中心 中级黑马   /  2014-5-9 16:46  /  835 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

选择器(selector)是CSS中很重要的概念,所有HTML语言中的标记都是通过不同的CSS选择器进行控制的。用户只需要通过选择器对不同的HTML标签进行控制,并赋予各种样式声明,即可实现各种效果。
         1. ** { margin: 0; padding: 0; }  星号选择器用于选取页面中的所有元素,可用于快速清除所有元素的 margin 与 padding,但最好只在测试的时候使用,而不要正式用在 CSS 文件中,否则会大大加重浏览器负担。此外,星号选择器也可以给父层的所有子元素设定样式,重复一遍,尽量少用这种方式:
#container * { border: 1px solid black; }  兼容 IE6+
 2. #X#container { width: 960px; margin: auto; }  id 选择器,最常见的选择器用法之一,不可重复使用。
          兼容 IE6+
 3. .X.error { color: red; }  class 选择器,也是最常见的选择器用法之一,与 id 选择器不同的是 class 选择器可同时选取多个元素,而 id 选择器只能给一个独一无二的元素设定样式。
          兼容 IE6+
 4. X Yli a { text-decoration: none; }  后代选择器 (descendant selector),选取 X 元素内的所有 Y 元素,比如上面这段代码将选取 li 标签内的所有链接。
          兼容 IE6+
 5. Xa { color: red; } ul { margin-left: 0; }  标签选择器 (type selector),用于选取 HTML 标签 (tag)。
          兼容 IE6+
 6. X:visited and X:linka:link { color: red; } a:visted { color: purple; }  :link 伪类选择器 (pseudo class selector) 用于选取所有未点击过的链接,而 :visited 则用于选取所有已访问过的链接。
          兼容 IE6+
 7. X + Yul + p { color: red; }  临近选择器 (adjacent selector),选取紧邻在 X 元素后面出现的第一个元素,比如上面这段代码将选取 ul 元素后出现的第一个元素,也就是 p 元素。
          兼容性 IE6+
 8. X > Ydiv#container > ul { border: 1px solid black; }  在第 4 条中,后代选择器 X Y 选取父层 X 内的所有 Y 元素;子选择器 X > Y 则只选取直接出现在父层 X 内的 Y 元素。比如下面的 HTML 结构中,#container > ul 选取直接出现在 div#container 内的 ul 元素,不包含嵌套在 li 内的 ul 元素:
<div id="container"> <ul> <li> List Item <ul> <li> Child </li> </ul> </li> <li> List Item </li> <li> List Item </li> <li> List Item </li> </ul> </div>  兼容 IE6+
 9. X ~ Yul ~ p { color: red; }  同样也是临近选择器,前面第 7 条 X + Y 选取紧邻在 X 后出现的第一个元素,而 X ~ Y 将选取 X 元素后出现的所有同级元素。上面这段代码将选取 ul 元素后出现的所有同级 p 元素,而不是像 ul + p 这样选取第一个出现的 p 元素。
          兼容 IE7+
 10. X[title]a[title] { color: green; }  属性选择器 (attributes selector),根据元素使用的属性进一步缩小选取范围,上面这段代码将选取所有使用了 title 属性的链接,或者 a[title="title content"]{color:green} 再进一步缩小选取范围。
          兼容 IE7+
 11. X[href="foo"]a[] { color: #1f6053; /* nettuts green */ }  上面这段代码将选取所有跳转到 http://net.tutsplus.com 的链接,这些链接将显示为绿色,其他链接不受影响。
          只是这种方式很严格不能相差一个字符,下面将会逐一介绍更灵活的用法。
          兼容 IE7+
 12. X[href*="nettuts"]a[href*="tuts"] { color: #1f6053; /* nettuts green */ }  * 表示只要属性值中包含双引号内的内容就满足选取要求,这段代码将选取跳转到 nettuts.com,net.tutsplus.com,或者 tutsplus.com 等链接。
          兼容 IE7+
 13. X[href^="http"]a[href^="http"] { background: url(path/to/external/icon.png) no-repeat; padding-left: 10px; }  ^ 表示只要属性值以双引号内的内容开头就满足选取要求,这段代码也常用来给页面中所有外部接设定样式。
          兼容 IE7+
 14. X[href$=".jpg"]a[href$=".jpg"] { color: red; }  $ 表示只要属性值以双引号内的内容结尾就满足选取要求,这段代码将选取所有跳转到 jpg 图片的链接。
          兼容 IE7+
 15. X[data-*="foo"]  上面第 14 条提到了如何选取所有跳转到 jpg 图片的链接,若要选取跳转到图片的所有链接可以用下面的方法:
a[href$=".jpg"], a[href$=".jpeg"], a[href$=".png"], a[href$=".gif"] { color: red; }  或者,先给图片链接添加 data- 属性(注:HTML5 Custom Data Attributes
<a href="path/to/image.jpg" data-filetype="image"> Image Link </a>  然后再通过属性选择器选取:
a[data-filetype="image"] { color: red; }  兼容 IE7+
 16. X[foo~="bar"]a[data-info~="external"] { color: red; } a[data-info~="image"] { border: 1px solid black; }  如果属性值中有用空格分隔的一连串属性值,~ 可以选取其中一个属性值,比如:
<a href="path/to/image.jpg" data-info="external image"> Click Me, Fool </a>  借助 ~ 选取包含 external 或者 image 属性值的元素:
/* Target data-info attr that contains the value "external" */ a[data-info~="external"] { color: red; } /* And which contain the value "image" */ a[data-info~="image"] { border: 1px solid black; }  兼容 IE7+
 17. X:checkedinput[type=radio]:checked { border: 1px solid black; }  :checked 伪类选择器用于选取所有标记为 checked 的元素,比如单选框 (radio button) 或复选框 (checkbox)。
          兼容 IE9+
 18. X:after  :before 与 :after 是两个令人兴奋的伪类选择器,几乎每天都有人发明出一些新用法,这里简单介绍一下如何用它清除浮动:
.clearfix:after { content: ""; display: block; clear: both; visibility: hidden; font-size: 0; height: 0; } .clearfix { *display: inline-block; _height: 1%; }  这种方式通过 :after 在元素后面添加一块区域,然后将其隐藏,可以弥补 overflow: hidden; 的缺陷。
                根据 CSS3 选择器标准,理论上伪类选择器应该使用双冒号,但实际上浏览器也支持单冒号的形式,所以可以继续使用单冒号。
          兼容 IE8+
 

1 个回复

正序浏览
值得学习ing!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马