CSS选择器的作用是找出某类元素,以便我们使用style元素或者外部样式表对这类元素设置样式。

基本选择器

选择器 含义 演示样例 描写叙述
* 选择全部元素
* {
border: thin black solid;
padding: 4px
}
选择全部元素
<元素类型> 选取一个文档中该元素的全部实例
a {
border: thin black solid;
padding: 4px
}
选择a元素
.<类名>(或 *.<类名>) 指定全局属性class为指定类的元素
.class2 {
border: thin black solid;
padding: 4px
}
选中指定class2的全部类型的元素
<元素类型>.<类名> 指定全局属性class为指定类的特定元素
span.class2 {
border: thin black solid;
padding: 4px
}
选中指定class2的span元素
<元素类型>.<类名1>.<类名2> 指定全局属性class指定了多个类的元素,即同一时候指定类名1和类名2的元素
span.class1.class2 {
border: thin black solid;
padding: 4px
}
选中同一时候指定class1和class2的sapn元素
#<id> 依据全局属性id的值选择元素
#w3canchor {
border: thin black solid;
padding: 4px
}
选中id为w3canchor的元素
<元素类型>.#<id> 依据指定元素类型的id值选择元素
span.#w3canchor {
border: thin black solid;
padding: 4px
}
选中id为w3canchor的span元素
[<条件>]或<元素类型>[<条件>] 匹配具有指定条件的属性的元素
[href] {
border: thin black solid;
padding: 4px
}
匹配全部具有href属性的元素。见“元素属性选择器的条件”

元素属性选择器的条件:
1)[attr]:选择定义attr属性的元素,忽略属性值。
2)[attr="val"]:选择定义attr属性,且属性值为val的元素;
3)[attr^="val"]:选择定义attr属性。且属性值以字符串val大头的元素;
4)[attr$="val"]:选择定义attr属性。且属性值以字符串val结尾的元素。
5)[attr*="val"]:选择定义attr属性,且属性值包括字符串val的元素;
6)[attr~="val"]:选择定义attr属性。且属性值具有多个值,当中一个为val的元素;
7)[attr|="val"]:选择定义attr属性。且属性值为连字符切割的多个值,当中第一个为字符串val的元素。

复合选择器

选择器 含义 演示样例 描写叙述
<选择器1>,<选择器2>,<选择器3> 选择器1、选择器2和选择器3匹配的全部元素的并集
a,[lang|="en"] {
border: thin black solid;
padding: 4px
}
选中a元素和具有属性lang,且属性值第一个为en的元素
<选择器1> <选择器2> 匹配选择器1的元素的后代元素中匹配选择器2的元素
p span {
border: thin black solid;
padding: 4px
}
匹配p元素的后代span元素
<选择器1> > <选择器2> 匹配选择器1的元素的直接后代元素(子元素)中匹配选择器2的元素
body > * > span, tr > th {
border: thin black solid;
padding: 4px
}
匹配body元素的随意子元素的span子元素,在匹配tr元素的th子元素
<选择器1> + <选择器2> 匹配选择器1的元素的兴许相邻的兄弟元素中匹配选择器2的元素
p + a {
border: thin black solid;
padding: 4px
}
匹配紧跟在p元素之后的a元素
<选择器1> ~ <选择器2> 匹配选择器1的元素的兴许兄弟元素中匹配选择器2的元素
p ~ a {
border: thin black solid;
padding: 4px
}
匹配p元素之后的a元素

伪元素选择器

选择器 含义 演示样例 说明
::first-line 文本内容的首行
::first-line {
border: thin black solid;
padding: 4px
}
p::first-line {
border: thin black solid;
padding: 4px
}
匹配p元素的文本的首行
::first-letter 文本内容的首字母
::first-letter {
border: thin black solid;
padding: 4px
}
匹配全部文本的首字母
:before
:after
在选中元素的内容之前插入内容
在选中元素的内容之后插入内容
a:before {
content: "Click here to "
}
a:after {
content: "!"
}
分别在a元素的之前和之后插入内容

结构性伪类选择器

选择器 含义 演示样例 说明
:root 选择文档中的根元素。总是返回html
:root {
border: thin black solid;
padding: 4px
}
 
:first-child 父元素的第一个子元素
p > span:first-child {
border: thin black solid;
padding: 4px
}
匹配p元素的第一个span子元素
:last-child 父元素的最后一个子元素
:last-child {
border: thin black solid;
padding: 4px
}
匹配全部最后的子元素
:only-child 匹配父元素包括的唯一子元素
:only-child {
border: thin black solid;
padding: 4px
}
匹配仅有一个子元素的元素
:only-of-type 匹配父元素仅有一种类型子元素的全部子元素
:only-of-type {
border: thin black solid;
padding: 4px
}
 

使用nth-child选择器

:nth-child(n):选择父元素的第n个子元素
:nth-last-child(n):选择父元素的倒数第n个子元素
:nth-of-type(n):选择父元素定义类型的第n个子元素
:nth-last-of-type(n):选择父元素定义类型的倒数第n个子元素

UI伪类选择器

选择器 含义 演示样例 说明
:enabled和:disabled 选择启用或禁用的元素,该选择器不会匹配没有禁用状态的元素
:enabled {
border: thin black solid;
padding: 4px
}
匹配启用的全部元素
:checked 选择由checked属性或用户勾选的单选button或者复选框
:checked + span {
background-color: red;
color: white;
padding: 5px;
border: medium black solid;
}
匹配勾选的元素后直接相邻的span元素
:default 选择一组相似元素中的默认元素。比如:提交button总是表单的默认button
:default {
outline: medium solid red;
}
 
:value和:invalid 分别匹配符合和不符合它们的输入验证要求的input元素
:invalid {
outline: medium solid red;
}
:valid {
outline: medium solid green;
}
 
:in-range
:out-of-range
匹配位于指定范围内的input元素
匹配位于指定范围之外的input元素
:in-range {
outline: medium solid green;
}
:out-of-range {
outline: medium solid red;
}
注意:仅部分浏览器支持
:required
:optional
匹配具有required属性的input元素
匹配没有required属性的input元素
:required {
outline: medium solid red;
}
:optional {
outline: medium solid green;
}
 

动态伪类选择器

选择器 含义 演示样例 说明
:link
:visited
择链接元素
选择用户已訪问的链接元素
:link {
border: thin black solid;
background-color: lightgrey;
padding: 4px;
color: red;
}
:visited {
background-color: grey;
color: white;
}
 
:hover 鼠标悬停在其上的元素
button:hover {
border: thin black solid;
padding: 4px
}
匹配鼠标悬停在其上的button元素
:active 当前被用户激活的元素,通常意味着用户即将点击该元素
:active {
border: thin black solid;
padding: 4px
}
 
:focus 当前获得焦点的元素
input:focus {
border: thin black solid;
padding: 4px
}
选择获取焦点的input元素

其他伪类选择器

选择器 含义 演示样例 说明
:not(<选择器>) 对括号内选择器的选择取反
a:not([href*="apress"]) {
border: thin black solid;
padding: 4px
}
匹配href属性没有包括字符串apress的a元素
:empty 没有子元素的元素    
:lang(<目标语言>) 选择基于lang全局属性值的元素
:lang(en) {
border: thin black solid;
padding: 4px
}
匹配具有lang属性,且内容採用英文表达的元素
:target URL片段标识符指向的元素
:target {
border: thin black solid;
padding: 4px;
color: red;
}
 

CSS3:选择器的更多相关文章

  1. 总结30个CSS3选择器

    或许大家平时总是在用的选择器都是:#id  .class  以及标签选择器.可是这些还远远不够,为了在开发中更加得心应手,本文总结了30个CSS3选择器,希望对大家有所帮助. 1 *:通用选择器 ;; ...

  2. 总结30个CSS3选择器(转载)

    或许大家平时总是在用的选择器都是:#id  .class  以及标签选择器.可是这些还远远不够,为了在开发中更加得心应手,本文总结了30个CSS3选择器,希望对大家有所帮助. 1 *:通用选择器 * ...

  3. CSS3 选择器——属性选择器

    上一节在<CSS3选择器——基本选择器>中主要介绍了CSS3选择器的第一部分,这节主要和大家一起来学习CSS3选择器的第二部分——属性选择器.属性选择器早在CSS2中就被引入了,其主要作用 ...

  4. css3 选择器(三)

    接css3选择器(一) 接css3 选择器(二) 这篇和前两篇内容相关性不大,主要是涉及到一些css3的状态选择器,所以标题从一开始. 一.[:enabled]选择器 一看这个属性就知道是专为表单元素 ...

  5. CSS3选择器介绍

    1.css3属性选择器 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&qu ...

  6. CSS3 选择器——基本选择器

    CSS的选择器,我想大家并不会陌生吧,因为天天在使用,但对于CSS3的选择器,要运用的灵活到位,我想对很多朋友还是一定的难度,特别是CSS3中的:nth选择器.那么从现在开始我们先丢开他们版本的区别, ...

  7. CSS3选择器的研究,案例

    在上一篇CSS3选择器的研究中列出了几乎所有的CSS3选择器,和伪类选择器,当是并没有做案例的研究,本想在那篇文章里面写,但想想如果把案例都写在那篇文章里面,对于查找来说就不是很方便,所有另开一篇来讲 ...

  8. css3选择器(一)

    直接开始正文. 一.css3同级元素通用选择器[update20161228] 选择器:E~F 匹配任何在E元素之后的同级F元素 Note:E~F选择器选中的是E元素后面同级元素中的全部F元素. 例: ...

  9. css3 选择器(二)

    接css3选择器(一) 八.结构性伪类选择器[:nth-child(n)] :nth-child(n)选择器用来匹配某个父元素的一个或多个特定的子元素,和jquery中一样. 其中"n&qu ...

  10. [css3]CSS3选择器:nth-child和:nth-of-type之间的差异

    by zhangxinxu from http://www.zhangxinxu.com本文地址:http://www.zhangxinxu.com/wordpress/?p=1709 一.深呼吸,直 ...

随机推荐

  1. 使用iSCSI Target创建集中式安全存储(一)

    iSCSI 是一种块级别的协议,用于通过TCP/IP网络共享原始存储设备,可以用已经存在的IP和以太网如网卡.交换机.路由器等通过iSCSI协议共享和访问存储.iSCSI target是一种由远程iS ...

  2. HashSet底层存储元素的源码分析

    此类实现 Set 接口,由哈希表(实际上是一个 HashMap 实例)支持.它不保证 set 的迭代顺序:特别是它不保证该顺序恒久不变.此类允许使用 null 元素. HashSet<Strin ...

  3. Java里如何判断一个String是空字符串或空格组成的字符串

      要判读String是否为空字符串,比较简单,只要判断该String的length是否为0就可以,或者直接用方法isEmpty()来判断. 但很多时候我们也会把由一些不可见的字符组成的String也 ...

  4. po_文件格式[转]

    原文: http://cpp.ezbty.org/content/science_doc/po_%E6%96%87%E4%BB%B6%E6%A0%BC%E5%BC%8F 摘要:PO 是一种 GNU 定 ...

  5. Tomcat服务器多域名配置(转载)

    Tomcat服务器多域名配置 我们来讲解下如何在Tomcat服务器上进行多域名配置: 也就是一个Tomcat跑多网站,这里用真实案例举例,比如我这个云主机需要运行两个网站: pan.java1234. ...

  6. 【XStream】xml和java实体的相互转化

    1.pom.xml <!-- xstream xml和Java对象转化 --> <dependency> <groupId>xstream</groupId& ...

  7. IOS设置UIView的边框为圆角

    iOS 系统自带的 View 组件都是正方形的,看起来都太生硬,有时候我需要变成圆角形式,如下图:    具体的实现是使用QuartzCore库,下面我具体的描述一下实现过程:    •    首先 ...

  8. 理解 VMWare的3种网络模型 z

    在说到VMware的网络模型之前,先说一下VMware的几个虚拟设备: ■ VMnet0:这是VMware用于虚拟桥接网络下的虚拟交换机: ■ VMnet1:这是VMware用于虚拟Host-Only ...

  9. python学习心得(三)

    一,面向对象编程 1,类和实例, class Student(object):#括号里面的是继承的类 def __init__(self, name, score):初始化对象时,参数个数 self. ...

  10. 利用excel去除txt文本中重复项

    2017-04-10 1.要去重的文件,点击右键,选择程序. 2.选择excel表格或者wps表格. 3.excel表格去重:选中单元格——数据——筛选——高级筛选——选择不重复记录——确定 wps表 ...