1、通配符选择器(*):通配符选择器是用来选择所有元素,也可以选择某个元素下的所有元素。所有浏览器都支持通配符选择器。

*{margin:; padding:;}
.dome *{padding: 2px;}

2、元素选择器(Ele):元素选择器是css选择器中最常见而且最基本的选择器,元素选择器其实就是文档的元素,如html、body、div等。所有浏览器都支持元素选择器。

li{color:#ddd;}

3、类选择器(.className):类选择器是以一独立于文档元素的方式来指定样式,使用类选择器之前需要保证在html标记中存在。所有浏览器都支持类选择器,但多类选择器不被IE6所支持。

/*类选择器*/
.className{margin:10px;} /*多类选择器,下面这个样式只有在.one和.two同在一个html元素时才有用*/
.one.two{margin:10px;}

4、ID选择器(#idName):在使用ID选择器在之前需要先在html文档中加注ID名称。所有浏览器都支持ID选择器。

/*ID选择器*/
#IDname{margin:10px;}

5、后代选择器:后代选择器所起作用的是可以选择某元素的后代元素。所有浏览器都支持后代选择器。

/*后代选择器 ID为one的元素的所有后代span元素中才有效)*/
(#one span{margin:10px}

6、子元素选择器:子元素选择器用于选择某个元素的子元素。IE6不支持子元素选择器。

/*子元素选择器(ID为one的元素的子元素的类为two的元素中才有效)*/
#one > .two{margin:10px;}

7、相邻兄弟元素选择器:相邻兄弟选择器可以选择紧接在另一元素后的元素,而且他们具有一个相同的父元素。IE6不支持这个选择器。

/*相邻兄弟元素选择器(.two后面相邻的span元素才有效,注意.two和span使兄弟关系)*/
.two+span{margin:10px;}

8、通用兄弟选择器:这是CSS3新增的一种选择器,这种选择器将选择某元素后面的所有兄弟元素。IE6不支持这个选择器。

/*通用兄弟选择器(.two后面的所有span元素,注意.two和span使兄弟关系)*/
.two~span{margin:10px;}

9、群组选择器:群组选择器是将具有相同样式的元素分组在一起,每个选择器之间使用逗号隔开。所有浏览器都支持群组选择器。

/*群组选择器,ID为one和two的元素才有效*/
#one, #two{margin:10px;}

10、属性选择器:属性选择器的主要作用就是对带有指定属性的HTML元素设置样式。而且属性选择器有多种用法:

①Ele[attr]:只使用属性名,但没有确定任何属性值。IE6不支持这种选择器。

/*所有带有id属性的a标签都有效。*/
a[id]{margin:10px;} /*所有带有id属性和title属性的a标签都有效。*/
div[id][title]{margin:10px;}

②Ele[attr="value"]:指定属性名,并指定了该属性的属性值。IE6浏览器不支持这种选择器。

/*ID名为one的div元素有效*/
div[id=’one’]{margin:10px;}

③Ele[attr~="value"]:这种属性选择器的属性值是一个活多个词列表,如果是列表时,那么他们需要用空格隔开,只要属性值中有一个value相匹配就可以选中该元素。IE6浏览器不支持这种选择器。

/*<div title=”my name is csh”></div>能作用于前面的div元素*/
div[title~=”csh”]{margin:10px;}

④Ele[attr^="value"]:指定了属性名,并且有属性值,属性值是以value开头的。IE6浏览器不支持这种选择器。

/*<a href=”http://baidu.com”></a>能作用于前面的a元素*/
a[href^=”http://”]{margin:10px;}

⑤Ele[attr$="value"]:指定了属性名,并且有属性值,而且属性值是以value结束的。IE6不支持这种选择器。

/*<a href=”http://baidu.com/my.jpg”></a>能作用于前面的a元素*/
a[href$=”jpg”]{margin:10px;}

⑥Ele[attr*="value"]:指定了属性名,并且有属性值,而且属值中包含了value。IE6不支持这种选择器。

/*<div title=”mynamecsh”></div>能作用于前面的div元素*/
div[title=”name”]{margin:10px;}

11、伪类选择器:CSS的伪类语法和别的语法有点不一样:E:pseudo-class{property:value}这里的E可以是html标签、标签的ID名和class,pseudo-class是伪类的名称,property是CSS的属性,value是CSS的属性值。

a:link{margin: 10px;}

①动态伪类:这些伪类只有当用户和网站互交的时候才能体现出来。这些伪类有::link(链接没有被访问过的样式)、:visited(链接被访问过之后的样式)、:hover(鼠标移动到链接上的样式)、:active(鼠标点中激活链接那一下产生的样式)和:focus(元素得到焦点是产生的样式)。对于前四个锚点伪类的设置,有一点需要特别注意,那就是他们的先后顺序,也就是link-visited-hover-active。如果把顺序搞错了会给你带来意想不到的错误。对于:hover在IE6下只有a元素支持,:active只有IE7-6不支持,:focus在IE6-7下不被支持。

②:first-child,这个选择器是用来选择某个元素集中的第一个元素。IE6不支持这个选择器。

/*这个样式作用于第一个li元素*/
li:first-child{margin:10px;}

③:last-child,这个选择器是用来选择某个元素集中的最后一个元素。IE6不支持这个选择器。

/*这个样式作用于最后一个li元素*/
li:last-child{margin:10px;}

12、CSS选择器的优化:首先我们需要清楚,浏览器是如何读取选择器,以识别样式,并将相应的样式附于对应的HTML元素上(浏览器读取你的选择器,遵循的原则是从选择器的右边到左边读取,也就是说浏览器读取选择器的顺序是由右到左进行。

/*,浏览器首先会尝试在你的HTML元素中寻找所有a[title]元素,接着在匹配.nav和div。*/
div .nav a[title]{margin:10px;}

13、选择器有一个固有的效率:①id选择器(#id)。②类选择器(.nav)。③标签选择器(div,span)。④相邻选择器(h1+p)。⑤子选择器(ul > li)。⑥后代选择器(li a)。⑦通配符选择器(*)。⑧属性选择器(a[title=’my’])。⑨伪类选择器(a:hover)。这九种选择器的效率从①-⑨,其中ID选择器的效率是最高的,伪类选择器的效率则是最低的。

14、选择器的优先级:选择器的优先级分为3个等级a=100、b=10、c=1。一个ID选择器(#one)就等于一个a=100,一个类(class)或伪类(a:link)或属性选择器(div[title])就等于一个b=10,一个元素选择器(div、p)或伪元素选择器(a)等于一个c=1。在选择器中等级的和越高,那么这个选择器的优先级就越高。

案例:选择器的级别数越大,选择器的优先级就越高

<div id="one">

  <div class="two">

      <p>谁的等级会最高?</p>

  </div>

</div>

#one{...} /*选择器的级别是100*/

#one .two{...}/*选择器的级别是110*/

#one .two p{...}/*选择器的级别是111*/

CSS中的选择器(笔记)的更多相关文章

  1. CSS中的选择器之类选择器和id选择器

    1.css中的选择器: 1.类选择器,又叫class选择器 2.id选择器 3.html元素选择器(又叫标签选择器) 4.通配符选择器 5.伪类选择器 6.组合选择器(多元素选择器,子元素选择器,后代 ...

  2. css中:not()选择器和jQuery中.not()方法

    因为老是将这两个的not方法弄混,所以写一下备忘. css中:not()选择器用法 :not 伪类选择器可以筛选不符合表达式的元素,:not(selector) 其中的selector为css选择器 ...

  3. css中的选择器

    选择器            说明    *                通用元素选择器,匹配任何元素    E                标签选择器,匹配所有使用E标签(所有HTML元素)的元 ...

  4. CSS中的选择器(一)

    API文档:http://css.cuishifeng.cn/all.html 1. 通配选择符(*) 语法: * { sRules } 说明: 通常不建议使用通配选择符,因为它会遍历并命中文档中所有 ...

  5. css3笔记系列-3.css中的各种选择器详解,不看后悔系列

    点击上方蓝色字体,关注我 最详细的css3选择器解析 ​ 选择器是什么? 比较官方的解释:在 CSS 中,选择器是一种模式,用于选择需要添加样式的元素. 最常见的 CSS 选择器是元素选择器.换句话说 ...

  6. CSS中选择器优先级与!important权重使用

    CSS中的选择器优先级与!important权重使用 .class选择器要高于标签选择器. #id选择器要高于.class选择器. 标签选择器是优先级最低的选择器. !important的属性它的权重 ...

  7. css中的继承、层叠、样式优先级机制

    一.继承与层叠:

  8. HTML5中class选择器属性的解释

    设置有class属性值的元素,可以被css中的选择器调用,也可以在javascript中以getElementsByClassName()方法调用. 可以给各个元素添加class而且名称可以相同与id ...

  9. 纯html+css中实现静态选座位效果技巧(input+label使用小技巧)

    很多时候,我们想通过html+css的方式实现排列在后方的代码在选中状态下,能控制排列在前的代码的样式.那么要怎么实现呢?在这里我就要用1个小技巧来完成. 众所周知的,我们css中的选择器通常只能向下 ...

随机推荐

  1. KEIL C51程序中如何嵌入汇编

    模块内接口:使用如下标志符:#pragma asm汇编语句#pragma endasm注意:如果在c51程序中使用了汇编语言,注意在Keil编译器中需要激活Properties中的“Generate ...

  2. Sprint 3.0

    3.0----------------------------------------------------- SCRUM 流程的步骤2: Spring 计划 1. 确保product backlo ...

  3. PAT 1074 宇宙无敌加法器

    https://pintia.cn/problem-sets/994805260223102976/problems/994805263297527808 地球人习惯使用十进制数,并且默认一个数字的每 ...

  4. php框架的制作原理

    php框架的制作原理 (2012-08-16 14:25:55) 转载▼ 标签: php框架制作 杂谈 分类: php index.php 主入口文件 <?php  define('ISEXIS ...

  5. mysql中字符串类型char(n)和varchar(n)的区别

    n的含义 根据网络上找到的结果(不能保证准确),在5.0.3以后版本中,n均代表字符数,而不是字节数:我用来测试的版本是5.7.20,该版本中,n表示字符数. 验证过程如下 建表 CREATE TAB ...

  6. BZOJ2806_Cheat

    Ctsc2012的题目.做完感觉自己瞬间变高富帅了. 不过回想其实也觉得不难,想到用单调队列就很简单了,还有二分= =.呵 对于给出的一篇文章,如果你们将它分成若干段,并在所有长度不小于L的片段在字典 ...

  7. Crowd Control(输出不在最大值最小化的最短路上的边)

    题意: 就是求完最大值最小化  然后输出在这条最大值最小化的最短路上的点的不在最短路上的边,emm.... 解析: 很明显,先套spfa最大值最小化模板,emm... 在更新d的时候 用一个pre去记 ...

  8. 浅谈kmp

    简介: 一种由Knuth(D.E.Knuth).Morris(J.H.Morris)和Pratt(V.R.Pratt)三人设计的线性时间字符串匹配算法.这个算法不用计算变迁函数δ,匹配时间为Θ(n), ...

  9. Linux进程间通信(消息队列/信号量+共享内存)

    写在前面 不得不说,Deadline果真是第一生产力.不过做出来的东西真的是不堪入目,于是又花了一早上重写代码. 实验内容 进程通信的邮箱方式由操作系统提供形如 send()和 receive()的系 ...

  10. 洛谷 P4244 [SHOI2008]仙人掌图 II 解题报告

    P4244 [SHOI2008]仙人掌图 II 题目背景 题目这个II是和SHOI2006的仙人掌图区分的,bzoj没有. 但是实际上还是和bzoj1023是一个题目的. 题目描述 如果某个无向连通图 ...