CSS基础知识解析
一、基礎(chǔ)知識
1.1 CSS組成
css 樣式由選擇符和聲明組成,而聲明又由屬性和值組成,如下圖所示:
選擇符:又稱選擇器,指明網(wǎng)頁中要應(yīng)用樣式規(guī)則的元素,如本例中是網(wǎng)頁中所有的段(p)的文字將變成藍(lán)色,而其他的元素(如ol)不會受到影響。
聲明:在英文大括號“{}”中的的就是聲明,屬性和值之間用英文冒號“:”分隔。當(dāng)有多條聲明時,中間可以英文分號“;”分隔,如下所示
p{font-size:12px;color:red;}注意:1、最后一條聲明可以沒有分號,但是為了以后修改方便,一般也加上分號。
2、為了使用樣式更加容易閱讀,可以將每條代碼寫在一個新行內(nèi),如下所示:
p{font-size:12px;color:red; }1.2 CSS內(nèi)聯(lián)
CSS樣式可以寫在哪些地方呢?從CSS 樣式代碼插入的形式來看基本可以分為以下3種:內(nèi)聯(lián)式、嵌入式和外部式三種。這一小節(jié)先來講解內(nèi)聯(lián)式。
內(nèi)聯(lián)式css樣式表就是把css代碼直接寫在現(xiàn)有的HTML標(biāo)簽中,如下面代碼:
<p style="color:red">這里文字是紅色。</p>注意要寫在元素的開始標(biāo)簽里,下面這種寫法是錯誤的:
<p>這里文字是紅色。</p style="color:red">并且css樣式代碼要寫在style=""雙引號中,如果有多條css樣式代碼設(shè)置可以寫在一起,中間用分號隔開。如下代碼: <p style="color:red;font-size:12px">這里文字是紅色。</p>
1.3 嵌入式
在右邊代碼編輯器中的段落中,有三個<span>標(biāo)簽,請把這三個<span>標(biāo)簽中的文字顏色都設(shè)置為藍(lán)色 1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 5 <title>嵌入式css樣式</title> 6 <style type="text/css"> 7 span{ 8 color:blue; 9 } 10 </style> 11 </head> 12 <body> 13 <p>慕課網(wǎng),<span>超酷的互聯(lián)網(wǎng)</span>、IT技術(shù)免費(fèi)學(xué)習(xí)平臺,創(chuàng)新的網(wǎng)絡(luò)一站式學(xué)習(xí)、實(shí)踐體驗(yàn);<span>服務(wù)及時貼心</span>,內(nèi)容專業(yè)、<span>有趣易學(xué)</span>。專注服務(wù)互聯(lián)網(wǎng)工程師快速成為技術(shù)高手!</p> 14 </body> 15 </html>1.4 外部CSS
外部式css樣式(也可稱為外聯(lián)式)就是把css代碼寫一個單獨(dú)的外部文件中,這個css樣式文件以“.css”為擴(kuò)展名,在<head>內(nèi)(不是在<style>標(biāo)簽內(nèi))使用<link>標(biāo)簽將css樣式文件鏈接到HTML文件內(nèi),如下面代碼:
<link href="base.css" rel="stylesheet" type="text/css" />
注意:
1、css樣式文件名稱以有意義的英文字母命名,如 main.css。
2、rel="stylesheet" type="text/css" 是固定寫法不可修改。
3、<link>標(biāo)簽位置一般寫在<head>標(biāo)簽之內(nèi)。
1.5 三種方法優(yōu)先級
有的小伙伴問了,如果有一種情況:對于同一個元素我們同時用了三種方法設(shè)置css樣式,那么哪種方法真正有效呢?在右邊編輯器就出現(xiàn)了這種情況
1、使用內(nèi)聯(lián)式CSS設(shè)置“超酷的互聯(lián)網(wǎng)”文字為粉色。
2、然后使用嵌入式CSS來設(shè)置文字為紅色。
3、最后又使用外部式設(shè)置文字為藍(lán)色(style.css文件中設(shè)置)。
但最終你可以觀察到“超酷的互聯(lián)網(wǎng)”這個短詞的文本被設(shè)置為了粉色。因?yàn)檫@三種樣式是有優(yōu)先級的,記住他們的優(yōu)先級:內(nèi)聯(lián)式?>?嵌入式 > 外部式
但是嵌入式>外部式有一個前提:嵌入式css樣式的位置一定在外部式的后面。如右代碼編輯器就是這樣,<link href="style.css" ...>代碼在<style type="text/css">...</style>代碼的前面(實(shí)際開發(fā)中也是這么寫的)。感興趣的小伙伴可以試一下,把它們調(diào)換順序,再看他們的優(yōu)先級是否變化。
其實(shí)總結(jié)來說,就是--就近原則(離被設(shè)置元素越近優(yōu)先級別越高)。
但注意上面所總結(jié)的優(yōu)先級是有一個前提:內(nèi)聯(lián)式、嵌入式、外部式樣式表中css樣式是在的相同權(quán)值的情況下。
注意:不論是內(nèi)聯(lián)還是其他,多個屬性之間是分號不是逗號,另外多種類型的話 比如說同樣是span,內(nèi)斂的有color,嵌入有color和font-size,內(nèi)聯(lián)優(yōu)先,而且此時嵌入的font-size不起作用。
二、案例分析
2.1 結(jié)合span凸出
為什么使用css樣式來設(shè)置網(wǎng)頁的外觀樣式呢?右邊編輯器是一段文字,我們想把“超酷的互聯(lián)網(wǎng)”、“服務(wù)及時貼心”、“有趣易學(xué)”這三個短語的文本顏色設(shè)置為紅色,這時就 可以通過設(shè)置樣式來設(shè)置,而且只需要編寫一條css樣式語句。
第一步:把這三個短語用<span></span>括起來。(見右邊代碼編輯器13行)
第二步:寫入下列代碼:(見右邊代碼編輯器7-8行)
span{color:red; }觀察結(jié)果窗口文字的顏色是否變?yōu)榧t色了。
1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 5 <title>CSS樣式的優(yōu)勢</title> 6 <style type="text/css"> 7 span{ 8 color:blue; 9 } 10 </style> 11 </head> 12 <body> 13 <p>慕課網(wǎng),<span>超酷的互聯(lián)網(wǎng)</span>、IT技術(shù)免費(fèi)學(xué)習(xí)平臺,創(chuàng)新的網(wǎng)絡(luò)一站式學(xué)習(xí)、實(shí)踐體驗(yàn);<span>服務(wù)及時貼心</span>,內(nèi)容專業(yè)、<span>有趣易學(xué)</span>。專注服務(wù)互聯(lián)網(wǎng)工程師快速成為技術(shù)高手!</p> 14 </body> 15 </html>2.2 類選擇器
類選擇器在css樣式編碼中是最常用到的,如右側(cè)代碼編輯器中的代碼:可以實(shí)現(xiàn)為“膽小如鼠”、“勇氣”字體設(shè)置為紅色。
語法:
.類選器名稱{css樣式代碼;}注意:
1、英文圓點(diǎn)開頭
2、其中類選器名稱可以任意起名(但不要起中文噢)
使用方法:
第一步:使用合適的標(biāo)簽把要修飾的內(nèi)容標(biāo)記起來,如下:
<span>膽小如鼠</span>第二步:使用class="類選擇器名稱"為標(biāo)簽設(shè)置一個類,如下:
<span class="stress">膽小如鼠</span>第三步:設(shè)置類選器css樣式,如下:
.stress{color:red;}/*類前面要加入一個英文圓點(diǎn)*/
2.3 ID選擇器
在很多方面,ID選擇器都類似于類選擇符,但也有一些重要的區(qū)別:
1、為標(biāo)簽設(shè)置id="ID名稱",而不是class="類名稱"。
2、ID選擇符的前面是井號(#)號,而不是英文圓點(diǎn)(.)。
2.4 ID選擇器和類選擇器的區(qū)別
學(xué)習(xí)了類選擇器和ID選擇器,我們會發(fā)現(xiàn)他們之間有很多的相似處,是不是兩者可以通用呢?我們不要著急先來總結(jié)一下他們的相同點(diǎn)和不同點(diǎn):
  相同點(diǎn):可以應(yīng)用于任何元素
  不同點(diǎn):
1、ID選擇器只能在文檔中使用一次。與類選擇器不同,在一個HTML文檔中,ID選擇器只能使用一次,而且僅一次。而類選擇器可以使用多次。
下面代碼是正確的:
<p>三年級時,我還是一個<span class="stress">膽小如鼠</span>的小女孩,上課從來不敢回答老師提出的問題,生怕回答錯了老師會批評我。就一直沒有這個<span class="stress">勇氣</span>來回答老師提出的問題。</p>而下面代碼是錯誤的:
<p>三年級時,我還是一個<span id="stress">膽小如鼠</span>的小女孩,上課從來不敢回答老師提出的問題,生怕回答錯了老師會批評我。就一直沒有這個<span id="stress">勇氣</span>來回答老師提出的問題。</p>2、可以使用類選擇器詞列表方法為一個元素同時設(shè)置多個樣式。我們可以為一個元素同時設(shè)多個樣式,但只可以用類選擇器的方法實(shí)現(xiàn),ID選擇器是不可以的(不能使用 ID 詞列表)。
下面的代碼是正確的(完整代碼見右側(cè)代碼編輯器)
.stress{color:red; } .bigsize{font-size:25px; } <p>到了<span class="stress bigsize">三年級</span>下學(xué)期時,我們班上了一節(jié)公開課...</p>上面代碼的作用是為“三年級”三個文字設(shè)置文本顏色為紅色并且字號為25px。
下面的代碼是不正確的(完整代碼見右側(cè)代碼編輯器)
#stressid{color:red; } #bigsizeid{font-size:25px; } <p>到了<span id="stressid bigsizeid">三年級</span>下學(xué)期時,我們班上了一節(jié)公開課...</p>上面代碼不可以實(shí)現(xiàn)為“三年級”三個文字設(shè)置文本顏色為紅色并且字號為25px的作用。
2.5 ?包含選擇器
包含選擇器,即加入空格,用于選擇指定標(biāo)簽元素下的后輩元素。如右側(cè)代碼編輯器中的代碼:
.first span{color:red;}這行代碼會使第一段文字內(nèi)容中的“膽小如鼠”字體顏色變?yōu)榧t色。
請注意這個選擇器與子選擇器的區(qū)別,子選擇器(child selector)僅是指它的直接后代,或者你可以理解為作用于子元素的第一代后代。而后代選擇器是作用于所有子后代元素。后代選擇器通過空格來進(jìn)行選擇,而子選擇器是通過“>”進(jìn)行選擇。
總結(jié):>作用于元素的第一代后代,空格作用于元素的所有后代。
2.6 通用選擇器
通用選擇器是功能最強(qiáng)大的選擇器,它使用一個(*)號指定,它的作用是匹配html中所有標(biāo)簽元素,如下使用下面代碼使用html中任意標(biāo)簽元素字體顏色全部設(shè)置為紅色。
* {color:red;}2.7 偽類選擇器
更有趣的是偽類選擇符,為什么叫做偽類選擇符,它允許給html不存在的標(biāo)簽(標(biāo)簽的某種狀態(tài))設(shè)置樣式,比如說我們給html中一個標(biāo)簽元素的鼠標(biāo)滑過的狀態(tài)來設(shè)置字體顏色:
a:hover{color:red;}上面一行代碼就是為 a 標(biāo)簽鼠標(biāo)滑過的狀態(tài)設(shè)置字體顏色變紅。這樣就會使第一段文字內(nèi)容中的“膽小如鼠”文字加入鼠標(biāo)滑過字體顏色變?yōu)榧t色特效。
關(guān)于偽選擇符:
??? 關(guān)于偽類選擇符,到目前為止,可以兼容所有瀏鑒器的“偽類選擇符”就是 a 標(biāo)簽上使用 :hover 了(其實(shí)偽類選擇符還有很多,尤其是 css3 中,但是因?yàn)椴荒芗嫒菟袨g覽器,本教程只是講了這一種最常用的)。其實(shí) :hover 可以放在任意的標(biāo)簽上,比如說 p:hover,但是它們的兼容性也是很不好的,所以現(xiàn)在比較常用的還是 a:hover 的組合。
2.8分組選擇符
當(dāng)你想為html中多個標(biāo)簽元素設(shè)置同一個樣式時,可以使用分組選擇符(,),如下代碼為右側(cè)代碼編輯器中的h1、span標(biāo)簽同時設(shè)置字體顏色為紅色:
h1,span{color:red;}它相當(dāng)于下面兩行代碼:
h1{color:red;} span{color:red;}三、繼續(xù)案例分析
3.1 類選擇器
為第二段文字中的“公開課”三個文字設(shè)置為綠色
1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 5 <title>認(rèn)識html標(biāo)簽</title> 6 <style type="text/css"> 7 .stress{ 8 color:red; 9 } 10 .setGreen { 11 color:green; 12 } 13 </style> 14 </head> 15 <body> 16 <h1>勇氣</h1> 17 <p>三年級時,我還是一個<span class="stress">膽小如鼠</span>的小女孩,上課從來不敢回答老師提出的問題,生怕回答錯了老師會批評我。就一直沒有這個<span class="stress">勇氣</span>來回答老師提出的問題。學(xué)校舉辦的活動我也沒勇氣參加。</p> 18 <p>到了三年級下學(xué)期時,我們班上了一節(jié)<span class="setGreen">公開課</span>,老師提出了一個很簡單的問題,班里很多同學(xué)都舉手了,甚至成績比我差很多的,也舉手了,還說著:"我來,我來。"我環(huán)顧了四周,就我沒有舉手。</p> 19 <img src="http://img.mukewang.com/52b4113500018cf102000200.jpg" > 20 </body> 21 </html>3.2 子選擇器
還有一個比較有用的選擇器子選擇器,即大于符號(>),用于選擇指定標(biāo)簽元素的第一代子元素。如右側(cè)代碼編輯器中的代碼:
.food>li{border:1px solid red;}這行代碼會使class名為food下的子元素li(水果、蔬菜)加入紅色實(shí)線邊框。
我也來試試,把文字內(nèi)容的“我還是一個膽小如鼠的小女孩”這一句話加入紅色邊框。效果圖如下:
1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 5 <title>子選擇符</title> 6 <style type="text/css"> 7 .food>li{border:1px solid red;}/*添加邊框樣式(粗細(xì)為1px, 顏色為紅色的實(shí)線)*/ 8 .first>span { 9 border:1px solid red; 10 } 11 </style> 12 </head> 13 <body> 14 <p class="first">三年級時,<span>我還是一個<span>膽小如鼠</span>的小女孩</span>,上課從來不敢回答老師提出的問題,生怕回答錯了老師會批評我。就一直沒有這個勇氣來回答老師提出的問題。學(xué)校舉辦的活動我也沒勇氣參加。</p> 15 <h1>食物</h1> 16 <ul class="food"> 17 <li>水果 18 <ul> 19 <li>香蕉</li> 20 <li>蘋果</li> 21 <li>梨</li> 22 </ul> 23 </li> 24 <li>蔬菜 25 <ul> 26 <li>白菜</li> 27 <li>油菜</li> 28 <li>卷心菜</li> 29 </ul> 30 </li> 31 </ul> 32 </body> 33 </html>3.3 分組選擇器
1、把右邊代碼編輯器中的第一段全部文字顏色設(shè)置為綠色同時把第二段文字中的“簡單”文字顏色設(shè)置為綠色
1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 5 <title>分組選擇符</title> 6 <style type="text/css"> 7 8 .first,#second span{ 9 color:green; 10 } 11 </style> 12 </head> 13 <body> 14 <h1>勇氣</h1> 15 <p class="first">三年級時,我還是一個<span>膽小如鼠</span>的小女孩,上課從來不敢回答老師提出的問題,生怕回答錯了老師會批評我。就一直沒有這個勇氣來回答老師提出的問題。學(xué)校舉辦的活動我也沒勇氣參加。</p> 16 <p id="second">到了三年級下學(xué)期時,我們班上了一節(jié)公開課,老師提出了一個很<span>簡單</span>的問題,班里很多同學(xué)都舉手了,甚至成績比我差很多的,也舉手了,還說著:"我來,我來。"我環(huán)顧了四周,就我沒有舉手。</p> 17 <img src="http://img.mukewang.com/52b4113500018cf102000200.jpg" > 18 </body> 19 </html>注意:做的時候有個疑問就是 第二段中所有的“簡單”設(shè)置為某色,單恰好這個簡單在span標(biāo)簽內(nèi),且只有一個,如果多個簡單怎么辦。
四、其他
line-height:1.6em 行間距font-weight normal bold bolder 定義字體粗細(xì)
轉(zhuǎn)載于:https://www.cnblogs.com/hxsyl/p/5546712.html
總結(jié)
                            
                        - 上一篇: 感悟软件工程
 - 下一篇: 标准C程序设计七---66