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. android launchmode singleinstance问题

    问题描述 最近测试关于launchmode的四种方式 默认模式 top singletask 都已经了解了 唯独这个instance模式 我的问题是 我们只作2个activity的假设A和B,其中A为 ...

  2. HDU 5649.DZY Loves Sorting-线段树+二分-当前第k个位置的数

    DZY Loves Sorting Time Limit: 12000/6000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Oth ...

  3. (9)oracle 表的基本查询

    转到进阶查询 查看表的结构 desc  表名; desc student; 查看整张表的数据 select * from 表名; //查整张表很耗时间 select* from student; 查看 ...

  4. (20)C#泛型

    泛型的定义:通过参数化类型来实现在同一份代码上操作多种数据类型.泛型编程时一种编程范式,它利用“参数化类型”将类型抽象化,从而实现更为灵活的复用. 优点: 1.省去了拆箱.装箱 2.提高安全性 3. ...

  5. MySql笔记之操作数据库

    看前引导 ♦MySQL默认的端口号:3306 ♦MySQL中的超级用户:root ♦SQL语句结尾必须以分号结尾 ♦语法使用介绍 花括号  必须有的部分 中括号  可选项 ,可有可无 竖线  从这个当 ...

  6. 洛谷——P2660 zzc 种田

    P2660 zzc 种田 题目背景 可能以后 zzc就去种田了. 题目描述 田地是一个巨大的矩形,然而zzc 每次只能种一个正方形,而每种一个正方形时zzc所花的体力值是正方形的周长,种过的田不可以再 ...

  7. JQuery里面的知识

    JQuery是一个javaScript库 JQuery极大的简化了javaScript编程 通过点击 "TIY" 按钮来看看它是如何运行的. 演示JQuery的hide函数,隐藏了 ...

  8. [HDU5528]Count a * b

    题目大意: 定义函数$f(m)=\displaystyle\sum_{a=0}^{m-1}\sum_{b=0}^{m-1}[m\nmid ab]$,$g(n)=\displaystyle\sum_{m ...

  9. Ubuntu 16.04安装Chrome浏览器时提示:N: 忽略‘google-chrome.list.1’(于目录‘/etc/apt/sources.list.d/’),鉴于它的文件扩展名无效

    使用终端安装谷歌浏览器时,它会自动在/etc/apt/sources.list.d/这个目录下添加google-chrome.list文件,但是如果它原来就有一个google-chrome.list的 ...

  10. python pep8编码风格学习记录(转)

    简要归纳 每个缩进层级使用4个空格. 每行最多79个字符. 顶层的函数或类的定义之间空两行. 采用ASCII或UTF-8编码文件 在文件顶端,注释和文档说明之下,每行每条import语句只导入一个模块 ...