閱讀目錄 介紹 CSS 的基本語法格式 介紹 基礎選擇器 介紹 組合選擇器 介紹 偽選擇器 介紹 其他 一、CSS 的基本語法格式 代碼: 運行結果為: 段落是紅色的。 註意: 上面是一個簡單的演示示例 重點看 <style> 元素 CSS 語法的一般形式是 selector{ property: ...
閱讀目錄
- 介紹 CSS 的基本語法格式
- 介紹 基礎選擇器
- 介紹 組合選擇器
- 介紹 偽選擇器
- 介紹 其他
一、CSS 的基本語法格式
代碼:
<!DOCTYPE html> <html> <head> <title>這是網頁標題</title> <style type="text/css"> /*<style> 元素裡面的是 CSS 代碼*/ p{ color: red; } </style> </head> <body> <p>段落是紅色的。</p> </body> </html>
運行結果為:
段落是紅色的。
註意:
- 上面是一個簡單的演示示例
- 重點看 <style> 元素
- CSS 語法的一般形式是 selector{ property: value };
- 這篇文章主要講解的是 selector(選擇器),下麵會為每種選擇器舉一個例子
二、基礎選擇器
基礎選擇器分為:
1、類型選擇器
代碼:
<!DOCTYPE html> <html> <head> <title>這是網頁標題</title> <style type="text/css"> /*<style> 元素裡面的是 CSS 代碼*/ p{ color: red; } </style> </head> <body> <p>這個段落是紅色的。</p> <p>這個段落也是紅色的。</p> <p>這個段落還是紅色的。</p> </body> </html>
運行結果為:
這個段落是紅色的。
這個段落也是紅色的。
這個段落還是紅色的。
註意:
- 上面的重點代碼是 p{ color: red; }
- 是 <p> 元素作為選擇器
- 效果是當指定 <p> 元素的字體顏色為紅色時,所有段落的字體都會變成紅色
- 絕大多數的元素都可以作為選擇器,例如: <h1> 、<h2> 、<a> 、<div> 等等
2、類選擇器
代碼:
<!DOCTYPE html> <html> <head> <title>這是網頁標題</title> <style type="text/css"> /*<style> 元素裡面的是 CSS 代碼*/ .example{ background-color: yellow; } </style> </head> <body> <p class="example">這個段落的背景顏色是黃色的。</p> <p>這個段落沒有設置背景顏色。</p> </body> </html>
運行結果為:
這個段落的背景顏色是黃色的。
這個段落沒有設置背景顏色。
註意:
- 上面的重點代碼是 .example{ background-color: yellow; } 和包含了 class 屬性那一行的代碼,註意這裡的 example 只是一個名稱,可以用其他詞來代替
- 設置了 class 屬性的段落,顯示的效果為背景顏色變成黃色
3、id 選擇器
代碼:
<!DOCTYPE html> <html> <head> <title>這是網頁標題</title> <style type="text/css"> /*<style> 元素裡面的是 CSS 代碼*/ #example{ font-size: 50px; } </style> </head> <body> <!--最好在同一個 HTML 文檔中所有的 id 名稱都不相同--> <p id="example">這個段落的字體變大了。</p> <p>這個段落沒有設置字體的大小。</p> </body> </html>
運行結果為:
這個段落的字體變大了。
這個段落沒有設置字體的大小。
註意:
- 上面的重點代碼是 #example{ font-size: 50px; } 和包含了 id 屬性那一行的代碼,註意這裡的 example 也只是一個名稱,可以用其他詞來代替
- 設置了 id 屬性的段落,顯示效果為字體變大了
- id 選擇器和類選擇器很相似,但是應用場景不太一樣
- id 選擇器匹配的 id 名稱最好是唯一的,即在同一個 HTML 文檔中最好每個 id 的名稱都不相同,例如上面的代碼中有一個段落的 id 名稱已經是 example 了,那麼其他段落就不要再用同一個 id 名稱來設置字體大小了
- class 名稱在同一個 HTML 文檔中可以相同,所以說通常設置段落的格式時,用類選擇器比用 id 選擇器更加合適一點
4、通用選擇器
代碼:
<!DOCTYPE html> <html> <head> <title>這是網頁標題</title> <style type="text/css"> /*<style> 元素裡面的是 CSS 代碼*/ *{ color: red; } </style> </head> <body> <h1>我是紅色的。</h1> <h3>我是紅色的。</h3> <p>我也是紅色的。</p> <a href="http://www.baidu.com">我還是紅色的</a> </body> </html>
運行結果為:
我是紅色的。
我是紅色的。
我也是紅色的。
我還是紅色的註意:
- 上面的重點代碼是 *{ color: red; }
- * 是通用選擇器,顯示的效果為所有元素的字體都變成了紅色
5、屬性選擇器
代碼1:
<!DOCTYPE html> <html> <head> <title>這是網頁標題</title> <style type="text/css"> /*<style> 元素裡面的是 CSS 代碼*/ [href]{ color: red; } </style> </head> <body> <p>匹配屬性為 href 的元素:</p> <a href="http://www.baidu.com">百度</a> </body> </html>
運行結果為:
匹配屬性為 href 的元素:
百度註意:
- 上面的重點代碼是 [href]{ color: red; } 和含有 href 屬性的那一行代碼
- <a> 元素裡面設置了 href 屬性,所以顯示的效果為紅色
代碼2:
<!DOCTYPE html> <html> <head> <title>這是網頁標題</title> <style type="text/css"> /*<style> 元素裡面的是 CSS 代碼*/ [href="#top"]{ color: red; } [href="#top1"]{ color: gray; } </style> </head> <body> <p>完全匹配,只匹配屬性和值都相同的元素:</p> <a href="#top">返回頂部</a> <br /> <a href="#top1">返回 基礎選擇器目錄</a> </body> </html>
運行結果為:
完全匹配,只匹配屬性和值都相同的元素:
返回頂部返回 基礎選擇器目錄
註意:
- 上面代碼是完全匹配的示例
- [href="#top"]{ color: red; } 匹配屬性和屬性值為 href="#top" 的 <a> 元素,顯示效果為紅色字體
- [href="#top1"]{ color: gray; } 匹配屬性和屬性值為 href="#top1" 的 <a> 元素,顯示效果為灰色字體
代碼3:
<!DOCTYPE html> <html> <head> <title>這是網頁標題</title> <style type="text/css"> /*<style> 元素裡面的是 CSS 代碼*/ [href*=baidu]{ color: orange; } </style> </head> <body> <p>通過屬性和屬性值中的字元串進行匹配:</p> <a href="http://www.baidu.com">百度</a> <br /> <a href="https://www.tieba.baidu.com/">百度貼吧</a> </body> </html>
運行結果為:
通過屬性和屬性值中的字元串進行匹配:
百度百度貼吧
註意:
- 上面的代碼通過字元串進行匹配,屬性為 href 以及屬性值中有 baidu 這個字元串的元素都能匹配上
- 上面例子中,兩個鏈接裡面都含有 baidu 這個字元串,所以顯示效果為字體是橘色的
- 當然,你將代碼改成 [href*=w]{ color: orange; } 時,它們也能匹配上,因為它們的鏈接裡面都含有 w 字元
屬性選擇器還有很多,這裡只列舉了其中的三種
其他的屬性選擇器可以參考 https://developer.mozilla.org/en-US/docs/Web/CSS/Attribute_selectors
返回 基礎選擇器目錄
返回頂部
三、組合選擇器
組合選擇器:
- A + B{ property: value; }
- A ~ B{ property: value; }
- A > B{ property: value; }
- A B{ property: value; }
1、A + B{ property: value; }
代碼:
<!DOCTYPE html> <html> <head> <title>這是網頁標題</title> <style type="text/css"> /*<style> 元素裡面的是 CSS 代碼*/ p + span{ background-color: orange; } </style> </head> <body> <p>這是一個段落。</p> <span>這是一段測試文字</span> <p>這是另外一個段落。</p> <br /> <span>這是另外一段測試文字</span> </body> </html>
運行結果為:
這是一個段落。
這是一段測試文字這是另外一個段落。
這是另外一段測試文字
註意:
- 上面最重要的代碼是 p + span{ background-color: orange; } ,表示 <p> 元素後面的 <span> 元素的背景顏色設置成橘色
- 這裡要註意一個很重要的前提條件:<span> 元素必須直接跟在 <p> 元素的後面
- 上面的例子中,我在它們兩個之間插入了一個換行元素 <br /> 之後,<p> 元素後面的 <span> 元素就不能被匹配到了
2、A ~ B{ property: value; }
代碼:
<!DOCTYPE html> <html> <head> <title>這是網頁標題</title> <style type="text/css"> /*<style> 元素裡面的是 CSS 代碼*/ p ~ span{ background-color: orange; } </style> </head> <body> <p>這是一個段落。</p> <span>這是一段測試文字</span> <p>這是另外一個段落。</p> <br /> <span>這是另外一段測試文字</span> </body> </html>
運行結果為:
這是一個段落。
這是一段測試文字這是另外一個段落。
這是另外一段測試文字
註意:
- 這個選擇器與上面的那個選擇器很相似
- 這個選擇器也是可以匹配 <p> 元素後面的 <span> 元素,只是這兩個元素之間就算插入了其他元素,它也能夠匹配
- 所以顯示的結果才會是兩段文字的背景顏色都是橘色
3、A > B{ property: value; }
代碼:
<!DOCTYPE html> <html> <head> <title>這是網頁標題</title> <style type="text/css"> /*<style> 元素裡面的是 CSS 代碼*/ div > span{ background-color: yellow; } </style> </head> <body> <div> <span>測試文字1</span> <p> <span>測試文字2</span> </p> <span>測試文字3</span> </div> </body> </html>
運行結果為:
測試文字1
測試文字2
測試文字3註意:
- 上面最重要的代碼是 div > span{ background-color: yellow; } ,表示將 <div> 元素的直接子元素 <span> 的背景顏色設置為黃色
- 要註意的一個很重要的點是:直接子元素
- 上面例子中 <span>測試文字2</span> 是 <p> 的直接子元素,不是 <div> 的直接子元素,所以它無法被匹配
4、A B{ property: value; }
代碼:
<!DOCTYPE html> <html> <head> <title>這是網頁標題</title> <style type="text/css"> /*<style> 元素裡面的是 CSS 代碼*/ div span{ background-color: yellow; } </style> </head> <body> <div> <span>測試文字1</span> <p> <span>測試文字2</span> </p> <span>測試文字3</span> </div> </body> </html>
運行結果為:
測試文字1
測試文字2
測試文字3註意:
- 這個選擇器與上一個選擇器很相似
- 這個選擇器是匹配 <div> 元素下的所有 <span> 元素
- 註意是所有,而不是子元素
返回頂部
四、偽選擇器
偽選擇器:
1、偽類選擇器
代碼1:
<!DOCTYPE html> <html> <head> <title>這是網頁標題</title> <style type="text/css"> /*<style> 元素裡面的是 CSS 代碼*/ a:hover{ color: red; } </style> </head> <body> <p>滑鼠懸浮在下麵這個鏈接上的時候,鏈接會變成紅色:</p> <a href="http://www.baidu.com">百度</a> </body> </html>
運行結果為:
滑鼠懸浮在下麵這個鏈接上的時候,鏈接會變成紅色:
百度註意:
- 上面最重要的代碼是 a:hover{ color: red; }
- 顯示的效果為:當你將滑鼠放置在上面的連接上時,鏈接變成紅色
代碼2:
<!DOCTYPE html> <html> <head> <title>這是網頁標題</title> <style type="text/css"> /*<style> 元素裡面的是 CSS 代碼*/ p:first-child{ background-color: yellow; } </style> </head> <body> <p>這是 body 的第一個子元素</p> <div id="1"> <p>這是 id="1" 的 div 的第一個子元素</p> <p>這是 id="1" 的 div 的第二個子元素</p> </div id="2"> <div> <span>這是 id="2" 的 div 的第一個子元素</span> <p>這是 id="2" 的 div 的第二個子元素</p> </div> </body> </html>
運行結果為:
這是 body 的第一個子元素
這是 id="1" 的 div 的第一個子元素
這是 id="1" 的 div 的第二個子元素
這是 id="2" 的 div 的第一個子元素這是 id="2" 的 div 的第二個子元素
註意:
- 上面最重要的代碼是 p:first-child{ background-color: yellow; }
- 表示某個父元素的第一個子元素如果是 <p> ,那麼該 <p> 元素的背景顏色將被設置為黃色
- 例如上面的例子,<body> 的第一個子元素是 <p> ,所以該 <p> 元素的背景顏色被設置為黃色
- 同樣,id="1" 的 <div> 元素的第一個子元素是 <p> ,所以該 <p> 元素的背景顏色也被設置成黃色
- 但是,id="2" 的 <div> 元素的第一個元素是 <span> ,<p> 元素是第二個子元素,所以它不能被匹配
代碼3:
<!DOCTYPE html> <html> <head> <title>這是網頁標題</title> <style type="text/css"> /*<style> 元素裡面的是 CSS 代碼*/ p:nth-child(1){ background-color: yellow; } p:nth-child(2){ background-color: gray; } </style> </head> <body> <p>這是 body 的第一個子元素</p> <div id="1"> <p>這是 id="1" 的 div 的第一個子元素</p> <p>這是 id="1" 的 div 的第二個子元素</p> </div id="2"> <div> <span>這是 id="2" 的 div 的第一個子元素</span> <p>這是 id="2" 的 div 的第二個子元素</p> </div> </body> </html>
運行結果為:
這是 body 的第一個子元素
這是 id="1" 的 div 的第一個子元素
這是 id="1" 的 div 的第二個子元素
這是 id="2" 的 div 的第一個子元素這是 id="2" 的 div 的第二個子元素
註意:
- p:nth-child(1){ background-color: yellow; } 與 p:first-child{ background-color: yellow; } 的效果一模一樣
- 上面還有一段這樣的代碼 p:nth-child(2){ background-color: gray; } ,表示如果某個父元素的第二個子元素為 <p> ,那麼將該 <p> 元素的背景設置為灰色
- 當然,該選擇器的用法不止這些,具體參考 https://developer.mozilla.org/en-US/docs/Web/CSS/:nth-child
2、偽元素選擇器
偽元素選擇器是 CSS3 中的用法
例如:/* CSS3 syntax */ ::after /* CSS2 syntax */ :after
具體用法參考 https://developer.mozilla.org/en-US/docs/Web/CSS/::after
返回 偽選擇器目錄返回頂部
五、其他
CSS 的選擇器大概可以分為三大類:基礎選擇器、組合選擇器、偽選擇器
這三大類可以單獨使用,也可以混合使用
例如:
<!DOCTYPE html> <html> <head> <title>這是網頁標題</title> <style type="text/css"> /*<style> 元素裡面的是 CSS 代碼*/ p#test{ color: red; } </style> </head> <body> <p id="test">這是一個段落。</p> <p>這也是一個段落。</p> </body> </html>
運行結果為:
這是一個段落。
這也是一個段落。
註意:
- 上面是類型選擇器和 id 選擇器的組合
- 只有當同時滿足兩種選擇器才能夠匹配
CSS 參考文檔 https://developer.mozilla.org/en-US/docs/Web/CSS/Reference
返回頂部