CSS 層疊樣式表 (Cascading Style Sheets)css可以用來為網頁創建樣式表,通過樣式表可以對網頁進行裝飾。所謂層疊,可以將整個網頁想象成是一層一層的結構,層次高的將會覆蓋層次低的。 而css就可以分別為網頁的各個層次設置樣式。 CSS的樣式表由一個一個的樣式構成,一個樣式又由 ...
CSS
層疊樣式表 (Cascading Style Sheets)css可以用來為網頁創建樣式表,通過樣式表可以對網頁進行裝飾。所謂層疊,可以將整個網頁想象成是一層一層的結構,層次高的將會覆蓋層次低的。 而css就可以分別為網頁的各個層次設置樣式。
CSS的樣式表由一個一個的樣式構成,一個樣式又由選擇器和聲明塊構成。
語法:
– 選擇器 {樣式名:樣式值;樣式名:樣式值 ; }
– p {color:red ; font-size:12px;}
方法一:
內聯樣式
1 <!doctype html> 2 <html> 3 <head> 4 <meta charset="utf-8" /> 5 <title>CSS</title> 6 </head> 7 <body> 8 <p style="color:red;font-size:40px;">鋤禾日當午,汗滴禾下土</p> 9 <p style="color:red;font-size:40px;">誰知盤中餐,粒粒皆辛苦</p> 10 </body> 11 </html>
可以將CSS樣式編寫到元素的style屬性當中將樣式直接編寫到style屬性中,這種樣式我們稱為內聯樣式。內聯樣式只對當前的元素中的內容起作用,內聯樣式不方便復用內聯樣式屬於結構與表現耦合,不方便後期的維護,不推薦使用。所以我們就有了CSS。
內部樣式
1 <!doctype html> 2 <html> 3 <head> 4 <meta charset="utf-8" / 5 <style type="text/css"> 6 p{ 7 color:red; 8 font-size:40px; 9 } 10 11 </style> 12 13 </head> 14 <body> 15 <p>誰知盤中餐,粒粒皆辛苦</p> 16 <p>誰知盤中餐,粒粒皆辛苦</p> 17 <p>誰知盤中餐,粒粒皆辛苦</p> 18 <p>誰知盤中餐,粒粒皆辛苦</p> 19 <p>誰知盤中餐,粒粒皆辛苦</p> 20 <p>誰知盤中餐,粒粒皆辛苦</p> 21 </body> 22 </html>
這樣就解決了數量很龐大的標簽項目的樣式設定。但是如果我們在其他頁面也使用內部樣式那?
外部樣式表
先將上述p標簽的樣式複製下來,然後在新建一個文本文件,將樣式拷貝進文本文件中,然後右鍵另存為sytle.css
然後我們編寫了一個外部的CSS文件,然後通過link標簽來將外部的CSS文件引入到當前頁面中,這樣外部文件中的css樣式表將會應用到當前頁面中。
1 <!doctype html> 2 <html> 3 <head> 4 <meta charset="utf-8" /> 5 <title>CSS</title> 6 <link rel="stylesheet" type="text/css" href="style.css" /> 7 8 9 </head> 10 <body 11 <p>誰知盤中餐,粒粒皆辛苦</p> 12 <p>誰知盤中餐,粒粒皆辛苦</p> 13 <p>誰知盤中餐,粒粒皆辛苦</p> 14 <p>誰知盤中餐,粒粒皆辛苦</p> 15 <p>誰知盤中餐,粒粒皆辛苦</p> 16 <p>誰知盤中餐,粒粒皆辛苦</p> 17 </body> 18 </html>
將CSS樣式統一編寫到外部的樣式表中,完全使結構和表現分離,可以是樣式表可以在不同的頁面中使用,最大限度的使樣式可以進行復用,將樣式統一寫在樣式表中,然後通過link標簽引入,可以利用瀏覽器的緩存,加快用戶訪問的速度提高了用戶體驗,所以在開發中我們最推薦使用的方式就是外部的CSS文件。href=css的路徑。
css的註釋
CSS的註釋,作用和HTML註釋類似,只不過它必須編寫在style標簽中,或者是css文件中。
1 <!doctype html> 2 <html> 3 <head> 4 <meta charset="utf-8" /> 5 <title>CSS</title> 6 <style type="text/css"> 7 8 /* 9 CSS的註釋,作用和HTML註釋類似,只不過它必須編寫在style標簽中,或者是css文件中 10 11 CSS的語法: 12 13 選擇器 聲明塊 14 15 選擇器: 16 - 通過選擇器可以選中頁面中指定的元素, 17 並且將聲明塊中的樣式應用到選擇器對應的元素上 18 19 20 聲明塊: 21 - 聲明塊緊跟在選擇器的後邊,使用一對{}括起來, 22 聲明塊中實際上就是一組一組的名值對結構, 23 這一組一組的名值對我們稱為聲明, 24 在一個聲明塊中可以寫多個聲明,多個聲明之間使用;隔開, 25 聲明的樣式名和樣式值之間使用:來連接 26 27 */ 28 29 30 p{ 31 color:red; 32 font-size:50px; 33 } 34 35 </style> 36 37 </head> 38 <body> 39 40 <p style="color:red">天天下雨,我已經半個月沒見太陽了</p> 41 42 </body> 43 </html>
塊元素和內聯元素
div就是一個塊元素,所謂的塊元素就是會獨占一行的的元素,無論他的內容有多少,他都會獨占一整行。
p h1 h2 h3 ... 都是塊元素。
div這個標簽沒有任何語義,就是一個純粹的塊元素,並且不會為它裡邊的元素設置任何的預設樣式,div元素主要用來對頁面進行佈局的。
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8"> 5 <title></title> 6 </head> 7 <body> 8 <div style="background-color:red ; width: 200px;"> 9 我是一個div 10 </div> 11 <p>我是一個p標簽</p> 12 <p>我是一個p標簽</p> 13 14 15 </body> 16 </html>
span是一個內聯元素(行內元素):所謂的行內元素,指的是只占自身大小的元素,不會占用一行
常見的內聯元素:a img iframe span
span沒有任何的語義,span標簽專門用來選中文字,
然後為文字來設置樣式
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body> <span>我是一個span</span> <span>我是一個span</span> <span>我是一段文字</span> </body> </html>
塊元素主要用來做頁面中的佈局,內聯元素主要用來選中文本設置樣式,
一般情況下只使用塊元素去包含內聯元素,而不會使用內聯元素去包含一個塊元素
a元素可以包含任意元素,除了他本身
p元素不可以包含任何塊元素
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8"> 5 <title></title> 6 </head> 7 <p><span>我是一個span</span></p> 8 9 <a href="#"></a> 10 11 12 <a href="#"> 13 <div style="background-color:red ; width: 200px;"> 14 我是一個div 15 </div> 16 </a> 17 </body> 18 </html>
在HTML5中,內聯元素和塊元素這兩個概念已經取消了。但是我們在這裡便於理解還是使用老的概念。
常用的CSS選擇器
元素選擇器
作用:通過元素選擇器可以選則頁面中的所有指定元素
語法:標簽名 {}
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8"> 5 <title>常用選擇器</title> 6 <style type="text/css"> 7 p{ 8 color: red; 9 } 10 11 12 h1{ 13 color: red; 14 } 15 </style> 16 </head> 17 <body> 18 <h1>憫農</h1> 19 <p>鋤禾日當午</p> 20 <p>鋤禾日當午</p> 21 </body> 22 </html>
這種選擇器缺點顯而易見,如果單獨想設置某一個P標簽的樣式。就會更改整體P標簽的樣式。
id選擇器
通過元素的id屬性值選中唯一的一個元素
語法:
#id屬性值 {}
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>常用選擇器</title> <style type="text/css"> #p1{ font-size: 20px; } </style> </head> <body> <h1>憫農</h1> <p>鋤禾日當午</p> <p>鋤禾日當午</p> <p id="p1">鋤禾日當午</p> </body> </html>
雖然解決了不能單獨分配樣式的問題,但是相同的帶來另外一個問題就是不能分組去分配樣式。如果想多個分配樣式必須把每一個P標簽分配一個ID。
類選擇器
通過元素的class屬性值選中一組元素
語法:
class屬性值{}
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>常用選擇器</title> <style type="text/css"> .p2{ color: red; } .hello{ font-size: 50px; } </style> </head> <body> <p class="p2 hello">鋤禾日當午</p> <p class="p2">鋤禾日當午</p> <p class="p2">鋤禾日當午</p> </body> </html>
我們可以為元素設置class屬性,
class屬性和id屬性類似,只不過class屬性可以重覆
擁有相同class屬性值的元素,我們說他們是一組元素
可以同時為一個元素設置多個class屬性值,多個值之間使用空格隔開
選擇器分組(並集選擇器)
通過選擇器分組可以同時選中多個選擇器對應的元素
語法:選擇器1,選擇器2,選擇器N{}
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>常用選擇器</title> <style type="text/css"> #p1 , .p2 , h1{ background-color: yellow; } </style> </head> <body> <h1>憫農</h1> <p id="p1">鋤禾日當午</p> <p class="p2">鋤禾日當午</p> </body> </html>
複合選擇器(交集選擇器)
可以選中同時滿足多個選擇器的元素
語法:
選擇器1選擇器2選擇器N{}
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>常用選擇器</title> <style type="text/css"> span.p3{ background-color: yellow; } </style> </head> <body> <p class="p3">鋤禾日當午</p> <span class="p3">汗滴禾下土</span> </body> </html>
對於id選擇器來說,不建議使用複合選擇器
通配選擇器
他可以用來選中頁面中的所有的元素
語法:*{}
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>常用選擇器</title> <style type="text/css"> *{ color: red; } </style> </head> <body> <h1>憫農</h1> <p id="p1">鋤禾日當午</p> <p class="p2">鋤禾日當午</p> </body> </html>
後代元素選擇器
選中指定元素的指定後代元素
語法:
祖先元素 後代元素{}
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"> div span{ color: greenyellow; } </style> </head> <body> <div> <span>我是div標簽中的span</span> <p><span>我是p標簽中的span</span></p> </div> <span>我是body中的span元素</span> </body> </html>
只要是div塊元素後代的span標簽都會應用選擇器,而不是div塊元素後代的span標簽不會應用選擇器。而且後代元素選擇器也可以交叉使用ID選擇器,class選擇器 例:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"> #d1 span{ color: greenyellow; } </style> </head> <body> <div id="d1"> <span>我是div標簽中的span</span> <p><span>我是p標簽中的span</span></p> </div> </body> </html>
也可以單獨選擇一個後代元素進行應用(第幾個後代就在後面加幾個標簽)例:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"> #d1 p span{ font-size: 50px; } </style> </head> <body> <div id="d1"> <span>我是div標簽中的span</span> <p><