一、理论:
1.结构伪类选择器:
a.E:first-child:选择第一个子元素
b.E:last-child:选择最后一个子元素
c.E:root:选择匹配元素E所在文档的根元素
d.E F:nth-child(n):选择E的第n个子元素
e.E F:nth-last-child(n):选择元素E的倒数第n个子元素
f.E:nth-of-type(n):选择父元素内具有指定类型的第n个E元素
g.E F:nth-last-child(n):选择第N个E元素
h.E:nth-last-of-type(n):选择父元素内的倒数第N个E元素
i.E:first-of-type:选择指定类型的第一个E元素
j.E:last-of-type:选择指定类型的最后一个E元素
i.E:only-child:选择父元素只包含一个子元素,且该子元素匹配E元素
j.E:only-of-type:告诉父元素只包含同类型的子元素,且该子元素匹配E元素
i.E:empty:选择没有子元素的元素,且该元素不包含任何文本节点
2.结构选择器中的n:
a.参数n为具体的数值
b.参数n为表达式"n*length","n+length","-n+length","n*length+b"
c.参数n为"odd"(奇数元素),"even"(偶数元素)
2.伪元素:
a.ie6-8仅支持单冒号表示法
b.::first-letter 选择文本块第一个字母
c.::first-line 选择元素的第一行文本
d.::before/::after 可以插入额外内容的位置
e.::selection 用来匹配突出显示的文本
3.属性选择器:
a.E[attr]:选择任意类型的元素
b.E[attr=val]:以属性值为val选择元素
c.E[attr|=val]:常用于lang属性
d.E[attr-=val]:选择了包括属性及值的元素
e.E[attr*=val]:选择任意位置包含val的元素
f.E[attr^=val]:选择匹配元素以attr开头的任何字串
g.E[attr$=val]:选择以attr结尾的字串
4.CSS中常见的统配符:
a.^ 匹配起始符
b.$ 匹配终止符
c.* 匹配任意字符
二、实践:
1.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style type="text/css">
*{
margin:0;
padsding: 0;
}
ul{
margin:50px auto;
width:400px;
list-style: none outside none;
}
li{
display: inline-block;
margin: 5px;
padding: 5px;
width: 50px;
height: 50px;
font:bold 30px/50px arial;
background: #000;
color:#fff;
border-radius: 50px;
text-align: center;
}
ul>li:first-child{
background-color: green;;
}
ul>li:last-child{
background-color: blue;
}
ul>li:nth-child(3){
background-color: yellow;
}
ul>li:nth-child(2n){
background-color: aquamarine;
}
ul>li:nth-child(2n+1){
background-color: blanchedalmond;
}
ul>li:nth-child(n+5){
background-color: lightblue;
}
ul>li:nth-child(-n+5){
background-color: slategrey;
}
ul>li:nth-child(4n+1){
background-color: tan;
}
ul>li:nth-child(5){
background-color: darkmagenta;
}
.post>p:nth-child(2){
color:blanchedalmond;
}
.post>p:nth-of-type(2){
color:tan;
}
</style>
</head>
<body>
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
<li>6</li>
<li>7</li>
<li>8</li>
<li>9</li>
<li>10</li>
<li>11</li>
<li>12</li>
<li>13</li>
<li>14</li>
<li>15</li>
<li>16</li>
<li>17</li>
<li>18</li>
<li>19</li>
<li>20</li>
</ul>
<div class="post">
<h1>i'm h1</h1>
<p>这是我的段落1</p>
<p>这是我的段落2</p>
</div>
</body>
</html>
2.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style type="text/css">
.post{
width:300px;
margin:20px auto;
padding:5px;
border:1px solid #ccc;
}
p{
background: greenyellow;
color:#aeaeae;
border:1px solid cornsilk;
}
.post>p:only-child{
border-width: 2px;
background-color: #8f8f8f;
}
.post>p:only-of-type{
background-color: slategrey;
}
.testEmpty:empty{
height: 20px;
width: 20px;
display: block;
background-color: palegoldenrod;
}
</style>
</head>
<body>
<div class ="post">
<p>
i'm param 1
</p>
<p>
i'm param2
</p>
</div>
<div class="post">
<p>
i'm test~
</p>
</div>
<div class="testEmpty">
</div>
</body>
</html>
3.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style type="text/css">
*{
margin:0;
padding: 0;
}
body{
padding: 40px 100px;
}
.demo{
width: 600px;
margin: 40px auto;
font-family: 'trebuche MS','Lucida sans',Arial;
font-size: 14px;
color:#6bb2ff;
}
table{
*border-collapse:collapse;
border-spacing: 0;
width:100%;
}
.bordered{
border: solid #ccc 1px;
border-radius: 6px;
box-shadow: 0 1px 1px #ccc;
}
.bordered tr{
-o-transition: all 0.1s ease-in-out;
-webkit-transform: all 0.1s ease-in-out;
-moz-transition: all 0.1s ease-in-out;
-ms-transform: all 0.1s ease-in-out;
transition: all 0.1s ease-in-out;
}
.bordered .highlight,
.bordered tr:hover{
background: #6bb2ff;
}
.bordered td,
.bordered th{
border-left: 1px solid #ccc;
border-top:1px solid #0055cc;
padding: 10px;
text-align: left;
}
.bordered th{
background-color: #6bb2ff;
background-image: -webkit-gradient(linear,left top,left bottom,from(#ebf3fc),to(#dce9f9));
background-image: -webkit-linear-gradient(top,#ebf3fc,#dce9f9);
background-image: -moz-linear-gradient(top,green,#239285);
background-image: -ms-linear-gradient(top,#ebf3f3,#dec9f9);
background-image:-o-linear-gradient(top,#ebf3fc,#dec9f9);
filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr=#ebf3fc,endColorstr=#dce9f9);
-ms-filter: "progid:DXImageTransform.Microsoft.gradient (GradientType=0,startColorstr=#ebf3fc,endColorStr=#dce9f9)";
box-shadow: 0 1px 0 rgba(255,255,255,.8);
border-top:none;
text-shadow: 0 1px 0 rgba(255,255,255,.5);
.bordered td:first-child,
.bordered th:first-child{
border-left: none;
}
.bordered th:first-child{
border-radius: 6px 0 0 0 ;
}
.bordered th:last-child{
border-radius:0 6px 0 0 ;
}
.bordered tr:last-child td:first-child{
border-radius: 0 0 0 6px;
}
.bordered tr:last-child td:last-child{
border-radius: 0 0 6px 0;
}
}
.zebra td,
.zebra th{
padding: 10px;
border-bottom: 1px solid #f2f2f2;
}
.zebra .alternate,
.zebra tbody tr:nth-child(even){
background: #f5f5f5;
box-shadow: 0 1px 0 rgba(255,255,255,.0) inset;
}
.zebra th{border-left: 1px solid #ccc;
border-top:1px solid #0055cc;
padding: 10px;
text-align: left;
}
.zebra th{
background-color: #6bb2ff;
background-image: -webkit-gradient(linear,left top,left bottom,from(#ebf3fc),to(#dce9f9));
background-image: -webkit-linear-gradient(top,#ebf3fc,#dce9f9);
background-image: -moz-linear-gradient(top,green,#239285);
background-image: -ms-linear-gradient(top,#ebf3f3,#dec9f9);
background-image:-o-linear-gradient(top,#ebf3fc,#dec9f9);
filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr=#ebf3fc,endColorstr=#dce9f9);
-ms-filter: "progid:DXImageTransform.Microsoft.gradient (GradientType=0,startColorstr=#ebf3fc,endColorStr=#dce9f9)";
box-shadow: 0 1px 0 rgba(255,255,255,.8);
border-top:none;
text-shadow: 0 1px 0 rgba(255,255,255,.5);
.zebra td:first-child,
.zebra th:first-child{
border-left: none;
}
.zebra th:first-child{
border-radius: 6px 0 0 0 ;
}
.zebra th:last-child{
border-radius:0 6px 0 0 ;
}
.zebra tr:last-child td:first-child{
border-radius: 0 0 0 6px;
}
.zebra tr:last-child td:last-child{
border-radius: 0 0 6px 0;
}
</style>
</head>
<body>
<table class = "bordered">
<tr>
<th>#</th>
<th>Top 10</th>
<th>Year</th>
</tr>
<tr>
<td>1</td>
<td>The Stand 1</td>
<td>1901</td>
</tr>
<tr>
<td>2</td>
<td>The Stand 2</td>
<td>1902</td>
</tr>
</table>
<table class = "zebra">
<tr>
<th>#</th>
<th>Top 10</th>
<th>Year</th>
</tr>
<tr>
<td>1</td>
<td>The Stand 1</td>
<td>1901</td>
</tr>
<tr>
<td>2</td>
<td>The Stand 2</td>
<td>1902</td>
</tr>
<tr>
<td>3</td>
<td>The Stand 3</td>
<td>1903</td>
</tr>
<tr>
<td>4</td>
<td>The Stand 4</td>
<td>1904</td>
</tr>
<tr>
<td>5</td>
<td>The Stand 5</td>
<td>1905</td>
</tr>
<tr>
<td>6</td>
<td>The Stand 6</td>
<td>1906</td>
</tr>
</table>
</body>
</html>
4.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style type="text/css">
*{
margin:0;
padding: 0;
}
ul{
width: 690px;
margin: 20px auto;
letter-spacing: -4px;
word-spacing: -4px;
font-size: 0;
}
li{
font-size: 16px;
letter-spacing: normal;
word-spacing: normal;
display: inline-block;
*display:inline;
room:1;
list-style: none outside none;
margin: 5px;
}
img {
width:128px;
height: 128px;
}
.gallery li:nth-child(2){
-webkit-filter:grayscale(1);
}
.gallery li:nth-child(3){
-webkit-filter:sepia(1);
}
.gallery li:nth-child(4){
-webkit-filter:saturate(0.5);
}
.gallery li:nth-child(5){
-webkit-filter:hue-rotate(90deg);
}
.gallery li:nth-child(6){
-webkit-filter:invert(1);
}
.gallery li:nth-child(7){
-webkit-filter:opacity(0.2);
}
.gallery li:nth-child(8){
-webkit-filter:blur(3px);
}
.gallery li:nth-child(9){
-webkit-filter:drop-shadow(5px 5px 5px #ccc);
}
.gallery li:nth-child(10){
-webkit-filter:saturate(6) hue-rotate(361deg) brightness(0.09);
}
.gallery:hover li:not(:hover){
-webkit-filter:blur(2px) grayscale(1);
opacity: .7;
}
</style>
</head>
<body>
<ul class = "gallery">
<li>
<img alt="" src="../images/2-11-test.jpg" />
</li>
<li>
<img alt="" src="../images/2-11-test.jpg" />
</li>
<li>
<img alt="" src="images/2-11-test.jpg" />
</li>
<li>
<img alt="" src="images/2-11-test.jpg" />
</li>
<li>
<img alt="" src="images/2-11-test.jpg" />
</li>
<li>
<img alt="" src="images/2-11-test.jpg" />
</li>
<li>
<img alt="" src="images/2-11-test.jpg" />
</li>
<li>
<img alt="" src="images/2-11-test.jpg" />
</li>
<li>
<img alt="" src="images/2-11-test.jpg" />
</li>
<li>
<img alt="" src="images/2-11-test.jpg" />
</li>
</ul>
</body>
</html>
5.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style type="text/css">
.demo{
width:300px;
border:1px solid #ccc;
padding: 10px;
overflow: hidden;
margin: 20px auto;
}
.demo a{
float:left;
display: block;
width: 50px;
height: 50px;
border-radius: 10px;
text-align: center;
background: #004ab3;
color:blue;
font: hold 20px/50px Arial;
margin-right: 5px;
text-decoration: none;
margin: 5px;
}
a[id]{
background-color: #236859;
}
a[id][title]{
background-color: slategrey;
}
a[id=last]{
background-color:#ebf3f3;
}
a[lang|=zh]{
background-color: aqua;
}
a[title~=website]{
background-color:yellowgreen;
}
a[class*=links]{
background-color: cornsilk;
}
a[href^=http]{
background-color: cyan;
}
a[href$=jpg]{
background-color: #6bb2ff;
}
</style>
</head>
<body>
<div class = "demo">
<a href = "http://www.test1.com" target="_blank" class = "links item first" id = "first" title="test1">1</a>
<a href = "http://www.test1.com" target="_blank" class = "links active item" title="test1">2</a>
<a href = "http://www.test1.com/test.jpg" target="_blank" class = "links item"title="test1">3</a>
<a href = "http://www.test1.com" target="_blank" class = "links item" title="test1">4</a>
<a href = "http://www.test1.com" target="_blank" class = "links item" title="test1">5</a>
<a href = "http://www.test1.com" target="_blank" class = "links item" title="test1" lang="zh">6</a>
<a href = "http://www.test1.com" target="_blank" class = "links item first" title="website" lang="cn">7</a>
<a href = "http://www.test1.com" target="_blank" class = "links item first" title="test1" lang="en-ch">8</a>
<a href = "http://www.test1.com" target="_blank" class = "links item" title="test1" id ="testDom">9</a>
<a href="http://www.test1.com" class="linksitem last" id ="last">10</a>
</div>
</body>
</html>