基本的选择符包括通用选择符、类型选择符、属性选择符、ID选择符和伪类选择符等
(1)类型选择符
类型就是指HTML语言定义的各个元素,每一种元素名就是一个类型选择符名,通过为每一种元素名定义样式,HTML文档中的该元素都会应用该样式。
如 p {color: #FF0000;}
(2)通用选择符
通用选择符是用型号(*)来表示
(3) 派生选择符
由两个或者多个类型选择符组成,并以空白相分隔,例如派生选择符的形式如下:
A B
div p *[href]:在这个选择符中,通用选择符结合了派生选择符和属性选择符,它匹配任何元素,该元素必须设置href属性,且包含在一个p元素内,而p
元素又包含在一个div元素内
(4)子选择符
由两个或者多个选择符构成,并以大于号(>)分割,大于号两端空白可以被省略。
如 body > em {}:如果em元素直接位于body元素下,那么该规则就作用于该em元素;
(5)相邻同级选择符
E1 + E2
如果E1和E2在文档树中的父元素相同,且E1紧接在E2之前,则选择符匹配的元素是E2
如:h1 + p {} :当一个p元素紧跟在一个h1元素之后时,该规则应用与p元素
(6)相邻同级连续选择符
E~F
表示匹配E之后的F元素,直到出现另一个E元素。
(7)属性选择符
属性选择符
语法格式 |
功能描述 |
E[att] |
匹配任何的元素E,该元素必须有一个名为att的属性,而不论属性值是什么 |
E[att=”val”] |
匹配任何的元素E,该元素必须有一个名为att的属性,并且该属性的值恰等于val |
E[att~=”val”] |
匹配任何的元素E,该元素必须有一个名为att的属性,该属性的值可以包含空白的字符串,单字符串中两个空白之间必须有一个值是恰好等于val. |
E[att|=”en”] |
匹配任何的元素E,该元素必须有一个名为att的属性,该属性的值可以是包含连字符的字符串,但左边开始的字符串必须是en。 |
E[att^=”val”] |
匹配具有att属性且值以字符串val开头的E元素 |
E[att$=”val”] |
匹配具有att属性且值以字符串val结尾的E元素 |
E[att*=”val”] |
匹配具有att属性且值中含有字符串val的E元素 |
h1[title] {} h1[class="example"] {} span[title="note"][lang="zh-CN"] a[rel~="copyright"]
*[lang="fr"] {}
(8)类选择符
.myclass {}
(9)ID选择符
h1#chapter1 { text-aligh:center}
(10)伪元素和伪类
在CSS中,样式和元素的匹配关系一般是基于元素在文档树中的位置,这一简化的模型对于大部分情况是足够的, 但是,由于文档
树结构的限制,一些常用的印刷效果可能无法达到,例如,在HTML中,没有元素可以来引用一个段落的第一行,因此也没有一个简单的CSS选择符
可以引用它.
CSS引入了伪元素和伪类的概念,允许对文档树之外的信息进行格式化。
(11)使用CSS命名空间
@namespace book "http://book.zhang-yafei.com";
@namespace note "http://note.zhang-yafei.com";
p {backgournd-color: red:}
book | p {background-color: blue;}
note | p {background-color: green;}