目录
(1).E[att="val"],选择具有att属性等于的val元素E(注多个类名不起作用,例:E[class="a"] 则class:"a b"不受影响)。
(2).E[att~="val"],选择具有att属性且属性值为一(用空格分隔的字词列表中一个等于val的E元素 ,即包含只有一个值且该值等于val的情况,例:class="a val")。
(3).E[att^="val"],选择具有att属性且属性值为以val开头的字符串的E元素。
(4).E[att$="val"],选择具有att属性且属性值为以val结尾的字符串的E元素。
(5).E[att*="val"],选择具有att属性且属性值为包含val的字符串的E元素。
(6).E[att|="val"],选择具有att属性且属性值为以val开头并用连接符"-"分隔的字符串的E元素。
一,元素选择符
1. 通配选择符(权重:0000)
选定所有对象(注:会遍历并命中文档中所有的元素,出于性能考虑,需酌情使用)
写法:*{属性:值}
代码块及效果:
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="utf-8" />
<title>CSS 通配选择符(*)选择器</title>
<style>
*{color:red;}
</style>
</head>
<body>
<h1>标题</h1>
<p>正文内容</p>
</body>
</html>
2.类型选择符(权重:0001)
以文档语言对象类型作为选择符
写法:元素{属性:值}
代码块及效果:
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="utf-8" />
<title>类型选择符</title>
<style>
h1{color:red;}
p{color:aqua;}
</style>
</head>
<body>
<h1>标题</h1>
<p>正文内容</p>
</body>
</html>
3.class选择符(权重:0010)
类选择符允许以一种独立于文档元素的方式来指定样式,该选择符可以单独使用,也可以与其他元素结合使用。
写法:.类名{属性:值}
(1).基础用法:单类选择符
代码块及效果:
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="utf-8" />
<title>类型选择符</title>
<style>
.h{color:red;}
</style>
</head>
<body>
<h1 class="h">类选择器</h1>
</body>
</html>
(2).高级用法:多类选择符
注:IE6不支持多类选择符,如 .a.b{}被视为:.b{} ;
id选择符不能在同个元素定义多个,如 id="a b"(错误写法)。
代码块及效果:
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="utf-8" />
<title>类型选择符</title>
<style>
.h{color:red;}
.hs{color:aqua}
</style>
</head>
<body>
<h1 class="h hs">类选择器</h1>
</body>
</html>
(3)综合: class选择符
代码块及效果:
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="utf-8" />
<title>class选择器</title>
<style>
.title{color:red;}
.content{color:aqua;}
.note{color:pink;}
</style>
</head>
<body>
<h1 class="title">标题</h1>
<p class="content">正文内容</p>
<p class="content note">多类选择符的使用</p>
</body>
</html>
4.id选择符(权重:0100)
与类选择符相似用法,但不能在同个元素定义多个(如:id="a b"(错误写法)),
写法:#id名{属性:值}
代码块及效果:
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="utf-8" />
<title>id选择符</title>
<style>
#title{color:red;}
#content{color:aqua;}
</style>
</head>
<body>
<h1 id="title">标题</h1>
<p id="content">正文内容</p>
</body>
</html>
二,关系选择符(权重:包含选择符权重之和)
1.包含选择符(E F)
所有被E元素包含的F元素
写法:父元素E 子元素F{属性:值}
代码块及效果:
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="utf-8" />
<title>包含选择符</title>
<style>
ul li{color:red;}
</style>
</head>
<body>
<ul>
<li>列表项目</li>
<li>列表项目</li>
<li>列表项目</li>
<li>列表项目</li>
</ul>
</body>
</html>
2.子选择符(E>F)
所有E元素下的子元素F
写法:父元素E>子元素F{属性:值}
代码块及效果:
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="utf-8" />
<title>子选择符</title>
<style>
.test>li>p{color:red;}
</style>
</head>
<body>
<ul class="test">
<li>
<p>列表项目1</p>
<ul>
<li><p>项目列表1.1</p></li>
<li><p>项目列表1.2</p></li>
</ul>
</li>
<li>
<p>列表项目2</p>
<ul>
<li><p>项目列表2.1</p></li>
<li><p>项目列表2.2</p></li>
</ul>
</li>
<li><p>列表项目3</p></li>
<li><p>列表项目4</p></li>
</ul>
</body>
</html>
3.相邻选择符(E+F)
E元素与F元素平级,且F元素必须是E元素的后一个元素
写法:元素E+元素F{属性:值}
代码块及效果:
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="utf-8" />
<title>相邻选择符</title>
<style>
p+p{color:#f00;}
</style>
</head>
<body>
<div class="test">
<h3>标题</h3>
<p>文字段落</p>
<p>文字段落</p>
<h3>标题</h3>
<p>文字段落</p>
<h3>标题</h3>
<p>文字段落</p>
<p>文字段落</p>
</div>
</body>
</html>
4.兄弟选择符(E~F)
选择E元素后面的所有兄弟元素F(注: E元素与F元素不一定需要平级,也不强制是紧邻的元素)
写法:元素E~元素F{属性:值}
代码块及效果:
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="utf-8" />
<title>兄弟选择符</title>
<style>
p~p{color:red;}
</style>
</head>
<body>
<div class="test">
<h3>标题</h3>
<p>文字段落</p>
<p>文字段落</p>
<h3>标题</h3>
<p>文字段落</p>
<h3>标题</h3>
<p>文字段落</p>
<p>文字段落</p>
</div>
</body>
</html>
三,属性选择符(权重:0010)
1.基础
E[att],选择具有att属性元素E。
写法:元素E[属性att]{属性:值}
代码块及效果:
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="utf-8" />
<title>CSS 属性选择符 E[att]选择器</title>
<style>
a[class]{color:red;}
</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>
</html>
2.进阶
(1).E[att="val"],选择具有att属性等于的val元素E(注多个类名不起作用,例:E[class="a"] 则class:"a b"不受影响)。
写法:元素E[属性att="val"]{属性:值}
代码块及效果:
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="utf-8" />
<title>CSS 属性选择符 E[att="val"]选择器</title>
<style>
input[type="text"]{border:2px solid red;}
</style>
</head>
<body>
<input type="text" />
<input type="submit" />
</body>
</html>
(2).E[att~="val"],选择具有att属性且属性值为一(用空格分隔的字词列表中一个等于val的E元素 ,即包含只有一个值且该值等于val的情况,例:class="a val")。
写法:元素E[属性att~="val"]{属性:值}
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="utf-8" />
<title>CSS 属性选择符 E[att~="val"]选择器</title>
<style>
div[class~="a"]{border:2px solid red;}
</style>
</head>
<body>
<div class="a">1</div>
<div class="b">2</div>
<div class="a b">3</div>
</body>
</html>
(3).E[att^="val"],选择具有att属性且属性值为以val开头的字符串的E元素。
写法:元素E[属性att^="val"]{属性:值}
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="utf-8" />
<title>CSS 属性选择符 E[att^="val"]选择器</title>
<style>
div[class^="a"]{border:2px solid red;}
</style>
</head>
<body>
<div class="abc">1</div>
<div class="acb">2</div>
<div class="bac">3</div>
</body>
</html>
(4).E[att$="val"],选择具有att属性且属性值为以val结尾的字符串的E元素。
写法:元素E[属性att$="val"]{属性:值}
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="utf-8" />
<title>CSS 属性选择符 E[att$="val"]选择器</title>
<style>
div[class$="c"]{border:2px solid #000;}
</style>
</head>
<body>
<div class="abc">1</div>
<div class="acb">2</div>
<div class="bac">3</div>
</body>
</html>
(5).E[att*="val"],选择具有att属性且属性值为包含val的字符串的E元素。
写法:元素E[属性att*="val"]{属性:值}
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="utf-8" />
<title>CSS 属性选择符 E[att*="val"]选择器</title>
<style>
div[class*="b"]{border:2px solid #000;}
</style>
</head>
<body>
<div class="abc">1</div>
<div class="acb">2</div>
<div class="dac">3</div>
</body>
</html>
(6).E[att|="val"],选择具有att属性且属性值为以val开头并用连接符"-"分隔的字符串的E元素。
写法:元素E[属性att|="val"]{属性:值}
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="utf-8" />
<title>CSS 属性选择符 E[att|="val"]选择器</title>
<style>
div[class|="a"]{border:2px solid #000;}
</style>
</head>
<body>
<div class="a-test">1</div>
<div class="b-test">2</div>
<div class="c-test">3</div>
</body>
</html>
四,伪类选择符(权重:001)
五,伪对象选择符(权重:0001)
注:CSS3后将伪对象选择符前面的单个冒号(:)修改为双冒号(::)用以区别伪类选择符,但以前的写法仍然有效。