CSS選擇器

CSS選擇器,主要是用來確定html的樹形結構中的DOM元素節點。主要分爲三部分:

一、基本選擇器

選擇器 類型 功能描述
* 通配選擇器 選擇文檔中所有的html元素
E 元素選擇器 選擇指定的類型的html元素
#id ID選擇器 選擇指定ID屬性值爲“id”的任意類型的元素
.class 類選擇器 選擇指定的class屬性值爲“class”的任意類型的任意多個元素
selector1,selector2 羣組選擇器 將每一個選擇器匹配的元素集合並
1.通配選擇器的運用:它是用來選擇文檔中所有的元素或選擇某個元素下的所有元素

  • *{marigin:0;padding:0;}/*指的是文檔中所有的元素的margin值和padding值爲0*/
  • ul *{background:blue;}/*指的是ul元素裏的所有標籤的背景顏色爲藍色,這裏選擇的對象是ul的所有子代元素;書寫時ul與*號之間有個空格*/

2.元素選擇器的運用:這是最常見的選擇器了,選擇的是文檔的元素

  • p{color:red;}/*指的是文檔中所有p標籤的內容顏色爲紅色*/

3.ID選擇器的運用:選擇ID名爲“id”的任意元素

  • #box{background:yellow;}/*選擇ID名爲box的元素,讓它的背景爲黃色*/

4.類選擇器的運用:選擇class名爲“class”的任意元素(可多個元素)

  • .box{background:yellow;}/*選擇class名爲box的一個或多個元素,讓它的背景爲黃色*/

5、並列選擇器(羣組選擇器)

  • p,ul,div{margin:0;padding:0;}/*選擇文檔中所有的p元素、ul元素、div元素的外邊距和內邊距都爲0*/

二、層次選擇器

選擇器 類型 功能描述
E    F 後代選擇器 選擇匹配的F元素,且F元素被包含在匹配的E元素內
E > F 子選擇器 選擇匹配的F元素,且F元素是E元素的子元素
E + F 相鄰兄弟選擇器 選擇匹配的F元素,且F元素是E元素後面緊鄰的兄弟元素
E ~ F 通用選擇器 選擇匹配的F元素,且F元素是E元素後面的所有兄弟元素

三、屬性選擇器

選擇器 功能描述
E[attr] 選中具有attr屬性的E元素
E[attr=val] 選中具有attr屬性,並且屬性值爲val的E元素
E[attr|=val] 選中具有attr屬性,並且屬性值爲val或以val-開頭
E[attr~=val] 選中具有attr屬性,並且屬性值包含val的E元素,該屬性值必須以空格隔開
E[attr*=val]通配符 選中具有attr屬性,並且屬性值包含val的E元素
E[attr^=val]起始符 選中具有attr屬性,並且屬性值以val開始的E元素
E[attr$=val]結束符 選中具有attr屬性,並且屬性值以val結束的E元素
1、E[attr]

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>無標題文檔</title>
<style>
p{height:30px;border:1px solid #000;}
p[cat]{background:red;}/*選擇屬性名爲cat的元素*/
</style>
</head>
<body>
<p
 cat="leo">leo</p>
<p cat="dp">杜鵬</p>
<p cat="zM">子鼠</p>
<p cat="xm">小美</p>
</body>
</html>

2、E[attr=val]

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>無標題文檔</title>
<style>
p{height:30px;border:1px solid #000;}
p[cat=leo]{background:red;}
</style>
</head>
<body>
<p cat="leo">leo</p>
<p cat="dp">杜鵬</p>
<p cat="zM">子鼠</p>
<p cat="xm">小美</p>
</body>
</html>
3、E[attr|=val]

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>無標題文檔</title>
<style>
p{height:30px;border:1px solid #000;}
p[cat|=b]{background:#C3C;}
</style>
</head>
<body>
<p cat="b-leo">leo</p>
<p cat="bleo">杜鵬</p>
<p cat="b-leo">子鼠</p>
<p cat="g-xm">小美</p>
<p cat="b">無名氏</p>
</body>
</html>

4、E[attr~=val]

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>無標題文檔</title>
<style>
p{height:30px;border:1px solid #000;}
p[cat~=old]{background:red;}
</style>
</head>
<body>
<p cat="leo old">leo</p>
<p cat="dp">杜鵬</p>
<p cat="zM">子鼠</p>
<p cat="xm">小美</p>
</body>
</html>

5、E[attr*=val]通配符

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>無標題文檔</title>
<style>
p{height:30px;border:1px solid #000;}
p[cat*=d]{background:#C3C;}
</style>
</head>
<body>
<p cat="bleo old">leo</p>
<p cat="bdp">杜鵬</p>
<p cat="bzM">子鼠</p>
<p cat="gxm">小美</p>
</body>
</html>

6、E[attr^=val]起始符

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>無標題文檔</title>
<style>
p{height:30px;border:1px solid #000;}
p[cat^=g]{background:pink;}
</style>
</head>
<body>
<p cat="bleo old">leo</p>
<p cat="bdp">杜鵬</p>
<p cat="bzM">子鼠</p>
<p cat="gxm">小美</p>
</body>
</html>

7、E[attr$=val]結束符

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>無標題文檔</title>
<style>
p{height:30px;border:1px solid #000;}
p[cat$=M]{background:#CC0;}
</style>
</head>
<body>
<p cat="bleo old">leo</p>
<p cat="bdp">杜鵬</p>
<p cat="bzM">子鼠</p>
<p cat="gXM">小美</p>
</body>
</html>

四、僞類選擇器

選擇器 功能描述
E : first-child 作爲父元素的第一個子元素的E元素
E : last-child 作爲父元素的最後一個子元素的E元素
E : root
E  F:nth-child(n) 選中的F元素是E元素的第n個子元素
E  F: nth-last-child(n) 選中的F元素是E元素的倒數第n個子元素
E : nth-of-type(n) 選擇父元素內具有指定類型的第n個E元素
E : nth-last-of--type(n) 選擇父元素內具有指定類型的倒數第n個E元素
E : first-of-type 選擇父元素內具有指定類型的第1個E元素
E : last-of-type 選擇父元素內具有指定類型的倒數第1個E元素
E : only-child 選擇父元素內只包含一個子元素,且該元素是E元素
E : only-of-type 選擇父元素內只包含一個類型的子元素,且該元素是E元素
E : empty 選擇沒有子元素的元素
1、E : first-child

2、E : last-child

<!DOCTYPE HTML>
<html>
 
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>無標題文檔</title>
<style>
{
height: 30px;
border: 1px solid #000;
}
p:first-child {
background: red;
}
/*
p:nth-child(2) 找p標籤父級下的第二個子元素,並且這個元素還的是p標籤
 
p:nth-of-type(2) 找p標籤父級下的第二個p元素
 
:first-child==:nth-child(1)
:last-child==:nth-last-child(1)
:first-of-type==nth-of-type(1)
:last-of-type==nth-last-of-type(1)
*/
</style>
</head>
 
<body>
<p>p1</p>
<h1>h1</h1>
<p>p2</p>
<h1>h2</h1>
<p>p3</p>
<h1>h3</h1>
<p>p4</p>
<p>p5</p>
</body>
 
</html>

3、E : root

[html] view plain copy
 print?
  1. DOCTYPE html>  
  2. <html>  
  3.     <head>  
  4.         <meta charset="utf-8">  
  5.         <title>菜鳥教程(runoob.com)</title>  
  6.         <style>  
  7.             :root {  
  8.                 background: #ff0000;  
  9.             }  
  10.         </style>  
  11.     </head>  
  12.     <body>  
  13.         <h1>This is a heading</h1>  
  14.     </body>  
  15. </html>    

4、E  F:nth-child(n)

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>無標題文檔</title>
<style>
{height: 30px;border: 1px solid #000;}
h2:nth-child(1) {/*查找p標籤的父元素的第一個孩子,並且該標籤剛好是p標記.*/ 
background
: red;}
</style>
</head>
<body>
<h2>h2</h2>
<p>p1</p>
<p>p2</p>
<p>p3</p>
<p>p4</p>
<p>p5</p>
</body> 
</html>

5、E  F: nth-last-child(n)

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>無標題文檔</title>
<style>
{height: 30px;border: 1px solid #000;}
body *:nth-last-child(2n) {background: red;}
/*p:nth-child(2) 找p標籤父級下的第二個子元素,並且這個元素還的是p標籤*/
</style>
</head>
<body>
<p>p1</p>
<h1>h1</h1>
<p>p2</p>
<h1>h2</h1>
<p>p3</p>
<h1>h3</h1>
<p>p4</p>
<p>p5</p>
</body>
</html>

6、E : nth-of-type(n)

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>無標題文檔</title>
<style>
{height: 30px;border: 1px solid #000;}
p:nth-of-type(4) {background: red;}
/*p:nth-child(2) 找p標籤父級下的第二個子元素,並且這個元素還的是p標籤
 p:nth-of-type(2) 找p標籤父級下的第二個p元素*/
</style>
</head> 
<body>
<p>p1</p>
<h1>h1</h1>
<p>p2</p>
<h1>h2</h1>
<p>p3</p>
<h1>h3</h1>
<p>p4</p>
<p>p5</p>
</body> 
</html>

7、E : nth-last-of--type(n)

<!DOCTYPE HTML>
<html> 
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>無標題文檔</title>
<style>
{height: 30px;border: 1px solid #000;}
p:nth-last-of-type(2) {background: red;}
</style>
</head>
<body>
<p>p1</p>
<h1>h1</h1>
<p>p2</p>
<h1>
h2</h1>
<p>p3</p>
<h1>h3</h1>
<p>p4</p>
<p>p5</p>
</body>
 
</html>

8、E : first-of-type

:first-of-type==nth-of-type(1)

9、E : last-of-type

:last-of-type==nth-last-of-type(1)

10、E : only-child

11、E : only-of-type

12、E : empty

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>無標題文檔</title>
<style>
{height: 30px;border: 1px solid #000;}
p:empty {background: red;}
span {display: block;height: 20px;}
*:only-of-type {background: yellow;}
*:only-child {background: blue;}
/*p:nth-child(2) 找p標籤父級下的第二個子元素,並且這個元素還的是p標籤
p:nth-of-type(2) 找p標籤父級下的第二個p元素
:first-child==:nth-child(1)
:last-child==:nth-last-child(1)
:first-of-type==nth-of-type(1)
:last-of-type==nth-last-of-type(1)
*/
</style>
</head>
<body>
<p></p>
<h1>h1</h1>
<p>p2</p>
<h1>h2</h1>
<p><span></span></p>
<h1>h3</h1>
<p>
<span></span>
<span></span>
<a href="#">鏈接</a>
</p>
<p>p5</p>
</body> 
</html>


五、文本新增僞類

選擇器 功能描述
E :: first-letter 選擇文本塊的第一個字母
E :: first-line 選擇文本快的第一行
E :: before    和E :: after 主要用於清除浮動
E :: selection 選中的E元素

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>無標題文檔</title>
<style>
p{width:300px;border:1px solid #000;font:12px/30px "宋體";padding:10px;}
p:first-line{ background:red;}
p:first-letter{ font-size:30px;}
p::selection{background:#F60;color:#690;}
p:before{ content:"cat"; display:block; border:1px solid #000;}
p:after{ content:"cat"; display:block; border:1px solid #000;}
</style>
</head>
<body>
<p>前端開發的世界從未有過無聲的寂靜,精彩紛呈的互聯網也不曾出現片刻安寧,
在 HTML5&CSS3 被炒至沸沸揚揚的今天,全面系統的掌握此項技能,是加重技術含金量的重要砝碼!
</p>
</body>
</html>

發佈了30 篇原創文章 · 獲贊 31 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章