CSS选择器笔记
一、元素选择符
| 序号 | 选择器 | 含义 | 
| 1. | * | 通用元素选择器,匹配任何元素 | 
| 2. | E | 标签选择器,匹配所有使用E标签的元素 | 
| 3. | .info | class选择器,匹配所有class属性中包含info的元素 | 
| 4. | #footer | id选择器,匹配所有id属性等于footer的元素 | 
1. *
* {
  margin:;
  padding:;
}
在我们看比较高级的选择器之前,应该认识下这个众所周知的清空选择器。星号呢会将页面上所有每一个元素都选到。许多开发者都用它来清空`margin`和`padding`。当然你在练习的时候使用这个没问题,但是我不建议在生产环境中使用它。它会给浏览器凭添许多不必要的东西。
`*`也可以用来选择某元素的所有子元素。
#container * {
  border: 1px solid black;
}
它会选中`#container`下的所有元素。
2. E
a { color: red; }
ul { margin-left:; }
如果你想定位页面上所有的某标签,不是通过`id`或者是’class’,直接使用标签选择器。
3. .info
.error {
  color: red;
}
这是个`class`选择器。它跟`id`选择器不同的是,它可以定位多个元素。当你想对多个元素进行样式修饰的时候就可以使用`class`。当你要对某个特定的元素进行修饰那就是用`id`来定位它。
4. #footer
#container {
   width: 960px;
   margin: auto;
}
在选择器中使用`#`可以用id来定位某个元素。
二、多元素的组合选择器
| 序号 | 选择器 | 含义 | 
| 5. | E,F | 多元素选择器,同时匹配所有E元素或F元素,E和F之间用逗号分隔 | 
| 6. | E F | 后代元素选择器,匹所有属于E元素后代的F元素,E和F之间用空格分隔 | 
| 7. | E > F | 子元素选择器,匹配所有E元素的子元素F | 
| 8. | E + F | 相邻元素选择器,匹配所有紧随E元素之后的同级元素F | 
| 9. | E~F | 匹配任何在E元素之后的同级F元素 | 
5. E,F
a,li { color: red; }
匹配所有的a元素和li元素
6. E F
li a {
  text-decoration: none;
}
只匹配li后面多有的a元素(包括孙子辈)
7. E > F
div#container > ul {
  border: 1px solid black;
}
只匹配li后面多有的a元素(不包括孙子辈)`E F`和`E > F`的差别就是后面这个指挥选择它的直接子元素。看下面的例子:
<div id="container">
<ul>
<li> List Item</li>
<ul>
<li> Child </li>
</ul>
<li> List Item </li>
<li> List Item </li>
<li> List Item </li>
</ul>
</div>
`#container > ul`只会选中`id`为’container’的`div`下的所有直接`ul`元素。它不会定位到如第一个`li`下的`ul`元素。
8. E + F
ul + p {
   color: red;
}
这个叫相邻选择器。它指挥选中指定元素的直接后继元素。上面那个例子就是选中了所有`ul`标签后面的第一段,并将它们的颜色都设置为红色。
9. E~F
ul ~ p {
  color: red;
}
`ul + p`选择器只会选择紧挨跟着指定元素的那些元素。而这个选择器,会选择跟在目标元素后面的所有匹配的元素。
三、关系选择器
| 序号 | 选择器 | 含义 | 
| 10. | E[att] | 匹配所有具有att属性的E元素,不考虑它的值。(注意:E在此处可以省略,比如"[cheacked]"。以下同。) | 
| 11. | E[att=val] | 匹配所有att属性等于"val"的E元素 | 
| 12. | E[att~=val] | 匹配所有att属性具有多个空格分隔的值、其中一个值等于"val"的E元素 | 
| 13. | E[att|=val] | 匹配所有att属性且属性值为以val开头并用连接符"-"分隔的字符串的E元素。 | 
| 14. | E[att^="val"] | 匹配所有att属性以"val"开头的元素 | 
| 15. | E[att$="val"] | 匹配所有att属性以"val"结尾的元素 | 
| 16. | E[att*="val"] | 匹配所有att属性包含"val"字符串的元素 | 
10. E[att]
匹配所有具有att属性的E元素,不考虑它的值。
<style>
a[class]{color:#f00;}
</style>
</head>
<body>
<ul>
<li><a href="?" class="external">外部链接</a></li>
<li><a href="?">内部链接</a></li>
<li><a href="?" class="external">外部链接</a></li>
<li><a href="?">内部链接</a></li>
</ul>
</body>
上面的这个例子中,只会选择有class属性的元素。那些没有此属性的将不会被这个代码修饰。
11. E[att=val]
匹配所有att属性等于"val"的E元素
a[class="external"]{color:#f00;}
上面这片代码将会把`class`属性值为`external`的标签设置为红色,而其他标签则不受影响。
12. E[att~=val]
匹配所有att属性具有多个空格分隔的值、其中一个值等于"val"的E元素
<style>
a[class~="external"]{color:#f00;}
</style>
</head>
<body>
<ul>
<li><a href="?" class="external txt">外部链接</a></li>
<li><a href="?" class="txt">内部链接</a></li>
<li><a href="?" class="external txt">外部链接</a></li>
<li><a href="?" class="txt">内部链接</a></li>
</ul>
</body>
这个`~`符号可以定位那些某属性值是空格分隔多值的标签(因此只有外部链接是红色字体)。
13. E[att|=val]
选择具有att属性且属性值为以val开头并用连接符"-"分隔的字符串的E元素。
<style>
li[class|="test3"]{color:#f00;}
</style>
</head>
<body>
<ul>
<li class="test1-abc">列表项目1</li>
<li class="test2-abc">列表项目2</li>
<li class="test3-abc">列表项目3</li>
<li class="test4-abc">列表项目4</li>
<li class="test5-abc">列表项目5</li>
<li class="test6-abc">列表项目6</li>
</ul>
</body>
因此只有项目3为红色。
14. E[att^="val"]
<body>
<ul>
<li class="abc">列表项目1</li>
<li class="acb">列表项目2</li>
<li class="bac">列表项目3</li>
<li class="bca">列表项目4</li>
<li class="cab">列表项目5</li>
<li class="cba">列表项目6</li>
</ul>
</body>
li[class^="a"]{color:#f00;}
选择具有class属性且属性值为以a开头的字符串的E元素(因此只有项目1、2为红色)。
15. E[att$="val"]
匹配所有att属性以"val"结尾的元素
li[class$="a"]{color:#f00;}
选择具有class属性且属性值为以a结尾的字符串的E元素(项目4、6为红色)。
16. E[att*="val"]
匹配所有att属性包含"val"字符串的元素
li[class*="a"]{color:#f00;}
因为class的属性中都含有字母a所以结果均为红色。
四、伪类选择器
| 17. | E:link | 匹配所有未被点击的链接 | 
| 18. | E:visited | 匹配所有已被点击的链接 | 
| 19. | E:hover | 匹配鼠标悬停其上的E元素 | 
| 20. | E:active | 匹配鼠标已经其上按下、还没有释放的E元素 | 
| 21. | E:first-child | 匹配父元素的第一个子元素E | 
| 22. | E:last-child | 匹配父元素的最后一个子元素E | 
| 23. | E:only-child | 匹配父元素仅有的一个子元素E | 
| 24. | E:nth-child(n) | 匹配父元素的第n个子元素E | 
| 25. | E:nth-last-child(n) | 匹配父元素的倒数第n个子元素E | 
| 26. | E:first-of-type | 匹配同类型中的第一个同级兄弟元素E | 
| 27. | E:last-of-type | 匹配同类型中的最后一个同级兄弟元素E | 
| 28. | E:only-of-type | 匹配同类型中的唯一的一个同级兄弟元素E | 
| 29. | E:nth-of-type(n) | 匹配同类型中的第n个同级兄弟元素E | 
| 30. | E:nth-last-of-type(n) | 匹配同类型中的倒数第n个同级兄弟元素E | 
17. E:link
设置超链接a在未被访问前的样式。
<ul>
<li><a href="?" class="external">外部链接</a></li>
<li><a href="?">内部链接</a></li>
<li><a href="?" class="external">外部链接</a></li>
<li><a href="?">内部链接</a></li>
</ul>
a:link{color:#03c;}
.external:link{color:#f00;}
运行结果:外部链接为红色;内部链接为蓝色
18. E:visited
设置超链接a在其链接地址已被访问过时的样式。
19. E:hover
设置元素在其鼠标悬停时的样式。
20. E:active
设置元素在被用户激活(在鼠标点击与释放之间发生的事件)时的样式。
21. E:first-child
匹配父元素的第一个子元素E。
<body>
<ul>
<li>test1</li>
<li>test2</li>
<li>test3</li>
<li>test4</li>
<li>test5</li>
</ul>
</body>
li:first-child{color:#f00;}
结果只有列表第一条信息test1为红色
22. E:last-child
匹配父元素的最后一个子元素E。
li:last-child{color:#f00;}
结果只有列表最后一条信息test5为红色
23. E:only-child
匹配父元素仅有的一个子元素E。
<ul>
<li>test1</li>
</ul>
<ul>
<li>test2</li>
<li>test3</li>
<li>test4</li>
</ul>
li:only-child{color:#f00;}
结果只有列表test1为红色
24. E:nth-child(n)
匹配父元素的第n个子元素E。
li:nth-child(3){color:#f00;}
结果只有列表test3为红色
25. E:nth-last-child(n)
匹配父元素的倒数第n个子元素E。
li:nth-last-child(3){color:#f00;}
结果只有列表test3为红色
26. E:first-of-type
匹配同类型中的第一个同级兄弟元素E。
<div class="test">
<div><b>我是一个div元素</b></div>
<p>这是段落1</p>
<p>这是段落2</p>
<p>这是段落3</p>
<p>这是段落4</p>
<p>这是段落5</p>
</div>
p:first-of-type{color:#f00;}
结果只有这是段落1为红色。
27. E:last-of-type
匹配同类型中的最后一个同级兄弟元素E。
p:last-of-type{color:#f00;}
结果只有这是段落5为红色。
28. E:only-of-type
匹配同类型中的唯一的一个同级兄弟元素E。
b:only-of-type{color:f00;}
结果只有我是一个div元素为红色。
29. E:nth-of-type(n)
匹配同类型中的第n个同级兄弟元素E,n 可以代表数字也可以代表字母。
p:nth-of-type(2){color:#f00;}
结果只有这是段落2为红色。
n为odd时表示奇数;n为even表示偶数;
p:nth-of-type(odd){color:#f00;}
结果:段落1、3、5显示为红色。
p:nth-of-type(even){color:#f00;}
结果:段落2、4显示为红色。
30. E:nth-last-of-type(n)
匹配同类型中的倒数第n个同级兄弟元素E,n 可以代表数字也可以代表字母。。
p:nth-last-of-type(2){color:#f00;}
结果:段落4显示为红色。
n为odd时表示奇数;n为even表示偶数;
p:nth-last-of-type(odd){color:#f00;}
结果:段落1、3、5显示为红色。
p:nth-last-of-type(even){color:#f00;}
结果:段落2、4显示为红色。
CSS选择器笔记的更多相关文章
- 转:CSS选择器笔记
		作者: 阮一峰 日期: 2009年3月12日 去年我学jQuery的时候,曾经做过一点选择器(selector)的笔记. 这几天拿出来看了一下,发现很多都忘记了.所以,我决定把它们贴在这里,方便以后查 ... 
- 【转】CSS选择器笔记
		作者: 阮一峰 日期: 2009年3月12日 来源:http://www.ruanyifeng.com/blog/2009/03/css_selectors.html 去年我学jQuery的时候,曾经 ... 
- CSS选择器笔记,element element和element > element 的区别
		看官方解释 element element 例子: div p 官方解释:div内部所有的p元素 就是说 只要p在div内部.如果 p在span内部,span在div内部,p也算在div内部 < ... 
- CSS 选择器及其优先级
		CSS 的选择器有很多类型,我们将常用的这些列表如下: 一.CSS 选择器的类别 1. 基本选择器 基本选择器 解释 备注 * 通用选择器,匹配所有元素 CSS2 E 元素选择器,匹配类型为 E 的所 ... 
- 【CSS选择器】理解汇总和记录
		1.选择器中符号含义汇总(这部分包含了对选择器的通用理解): 1.1.多元素组合符号:(共6个,一个是CSS3的)(适用所有元素:ID组合,类组合,属性组合,标签组合,伪类组合,以及以上所有混合组合) ... 
- CSS选择器备忘录
		CSS选择器备忘录 基本选择器 Selector Meaning Example 通用选择器 匹配任何元素 * 标签选择器 CSS1中称之为元素选择器,匹配为指定标签的所有元素 div 伪元素选择器 ... 
- CSS学习笔记(1):选择器
		一.元素选择器 HTML文档元素就是最基本的选择器 如: <!DOCTYPE html> <html lang="en"> <head> < ... 
- 笔记一:CSS选择器
		0.前言:无论学什么,前端都是绕不开的一门技术,对于不同的人需求不同,作为一个python开发者不仅需要能读懂基本的html/css以及js代码,还要会使用它的常用的标签,以及了解比较有用的标签,把逻 ... 
- CSS学习笔记之选择器
		目录 1.元素选择器 2.继承 3.选择器分组 4.声明分组 5.后代选择器 6.子元素选择器 7.相邻兄弟选择器 8.类选择器 9.ID 选择器 10.属性选择器 11.伪类 12.伪元素 1.元素 ... 
随机推荐
- myeclipse中working Sets
			最近myeclipse中的项目太多了,看起来老不爽,查找还不方便,发现这个working Sets还是挺好用的 接下来的步骤,太简单了有木有,就不写了 0.0 
- Hex-Rays decompiler type definitions and convenience macros
			/****************************************************************************************** Copyrigh ... 
- 微信公共服务平台开发(.Net 的实现)7-------发送图文消息
			之前我们讲过让微信发送给我们普通的文本信息,下面我们来看看如何发送图文信息,需要注意的是这里说的是,让微信发给我们,而不是我们拍个图片发给微信处理,我们上传图片在以后的章节介绍.下面是发送图文消息的函 ... 
- 【JavaScript】JS中没有代码块的概念
			<script> var m = "roboce"; if(m === "roboce"){ var k = "haha"; } ... 
- [AngularJS] TweenList 3D + AngularJS Animate
			AngularJS animations and TweenLite make it really easy to create cool 3d effects in your application ... 
- android 自定义ViewGroup和对view进行切图动画实现滑动菜单SlidingMenu
			示意图就不展示了,和上一节的一样,滑动菜单SlidingMenu效果如何大家都比较熟悉,在这里我简单说明一下用自定义ViewGroup来实现. 实现方法:我们自定义一个ViewGroup实现左右滑动, ... 
- iOS开发——多线程OC篇&(十)多线程NSOperation基本使用
			NSOperation基本操作 一.并发数 (1)并发数:同时执⾏行的任务数.比如,同时开3个线程执行3个任务,并发数就是3 (2)最大并发数:同一时间最多只能执行的任务的个数. (3)最⼤大并发数的 ... 
- mysql describe
			describe命令一.describe命令用于查看特定表的详细设计信息,例如为了查看guestbook表的设计信息,可用:describe guestbook describe ol_user us ... 
- 关于android在Service中弹出Dialog对话框
			在创建好AlertDialog类型对象后,要 dialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT); 同时还 ... 
- 请谨慎使用 @weakify 和 @strongify
			来源:酷酷的哀殿 链接:http://www.jianshu.com/p/d8035216b257 前言 相信大部分见过 @weakify 和 @strongify 的开发者都会喜欢上这两个宏.但是很 ... 
