CSS 知識
一酣衷、CSS概述
- CSS是Cascading Styles Sheets的縮寫,中文譯名為層疊樣式表聂受,是用于控制網(wǎng)頁樣式并允許將樣式信息與網(wǎng)頁內(nèi)容分離的一種標(biāo)記性語言。
- HTML和CSS的關(guān)系就是“內(nèi)容”和“形式”的關(guān)系,由HTML組織網(wǎng)頁的結(jié)構(gòu)和內(nèi)容枝嘶,而通過CSS來決定頁面的表現(xiàn)形式
1. CSS語法
CSS樣式表由一系列樣式規(guī)則組成,瀏覽器將這些規(guī)則應(yīng)用到相應(yīng)的元素上哑诊,下面是一條樣式規(guī)則群扶。
h1{
color: red;
font-size: 25px;
}
2. CSS樣式規(guī)則的組成-----選擇器
- 一條CSS樣式規(guī)則由選擇器(selector)和聲明(declarations)組成。
- 選擇器是為了選中網(wǎng)頁中某些元素的镀裤,選擇器可以是一個標(biāo)記名竞阐,表示將網(wǎng)頁中該標(biāo)記的所有元素都選中,也就是定義了CSS規(guī)則的作用對象暑劝。
- 選擇器也可以是一個自定義的類名骆莹,表示將自定義的一類元素全部選中,為了對這一類元素進(jìn)行標(biāo)識担猛,必須在這一類的每個元素的標(biāo)記里添加一個html屬性class="類名"幕垦;
- 選擇器還可以是一個自定義的id名丢氢,表示選中網(wǎng)頁中某一個唯一的元素,同樣先改,該元素也必須在標(biāo)記中添加一個html屬性id="id名"讓CSS來識別卖丸。
3. CSS屬性值的寫法
- 如果屬性的某個值不是一個單詞,則值要用引號引起來
p {font-family: "sans serif"}盏道;
- 如果一個屬性有多個值稍浆,則每個值之間要用空格隔開
a {margin:6px 4px 3px};
- 要為某個屬性設(shè)置多個候選值猜嘱,則每個值之間用逗號隔開
p {font-family: "Times New Roman", Times, serif}衅枫;
二、在HTML中引入CSS的方法
- 在HTML中朗伶,引入CSS的方法有行內(nèi)式弦撩、內(nèi)嵌式、導(dǎo)入式和鏈接式4種
1. 行內(nèi)式
- html標(biāo)記都有一個通用的style屬性论皆,行內(nèi)式就是在該屬性內(nèi)添加CSS屬性和值益楼,如:
<td style="color: #FF0000; text-decoration: underline" width="88%">
- 有時我們需要做測試或?qū)€別元素設(shè)置CSS屬性時,可以使用這種方式点晴,這種方式由于CSS屬性就在標(biāo)記內(nèi)感凤,其作用對象就是標(biāo)記內(nèi)的元素。所以不需要指定CSS的選擇器粒督,只需要書寫CSS屬性和值陪竿。
-
缺點
沒有體現(xiàn)出CSS統(tǒng)一設(shè)置許多元素樣式的優(yōu)勢。
2. 嵌入式
- 嵌入式將頁面中各種元素的CSS樣式設(shè)置集中寫在<style>和</style>之間屠橄,<style>標(biāo)記是專用于引入嵌入式CSS的一個html標(biāo)記族跛,它只能放置在文檔頭部,即下面這段代碼只能放置在html文檔的<head>和</head>之間锐墙。
<style>
h1{ color: red; font-size: 25px; }
</style>
- 對于單一的網(wǎng)頁礁哄,這種方式很方便。但是對于一個包含很多頁面的網(wǎng)站溪北,如果每個頁面都以嵌入式的方式設(shè)置各自的樣式桐绒,不僅麻煩,冗余代碼多刻盐,而且網(wǎng)站每個頁面的風(fēng)格不好統(tǒng)一掏膏。因此一個網(wǎng)站通常都是編寫一個獨立的CSS文件劳翰,使用以下兩種方式之一敦锌,引入到網(wǎng)站的所有html文檔中
3. 鏈接式和導(dǎo)入式
- 鏈接式和導(dǎo)入式的目的都是將一個獨立的CSS文件引入到HTML文件,我們在學(xué)習(xí)CSS或制作單個網(wǎng)頁時佳簸,為了方便可采取行內(nèi)式或嵌入式方法乙墙,但若要制作網(wǎng)站則主要應(yīng)采用鏈接式方法引入CSS颖变。
- 鏈接式和導(dǎo)入式最大的區(qū)別在于鏈接式使用HTML的標(biāo)記引入外部CSS文件,而導(dǎo)入式則是用CSS的規(guī)則引入外部CSS文件听想,因此它們的語法不同
鏈接式是在網(wǎng)頁文檔頭部通過link標(biāo)記引入外部CSS文件腥刹,格式如下:
<link href="style1.css" rel="stylesheet"/>
外部樣式表文件書寫:
只要將方式一中<STYLE>和</STYLE>之間的定義內(nèi)容保存成一個以"css"為擴(kuò)展名的文本文件即可。
- 而使用導(dǎo)入式汉买,則需要使用如下語句:
<style>
@import url("style2.css");
</style>
三衔峰、選擇器的分類
- 選擇器的分類
- 標(biāo)記選擇器
- 偽類選擇器
- 類選擇器
- id選擇器
- 關(guān)聯(lián)選擇器
- 組合選擇器
1.標(biāo)記選擇器
- CSS標(biāo)記選擇器用來聲明哪種標(biāo)記采用哪種CSS樣式,因此蛙粘,每一種html標(biāo)記的名稱都可以作為相應(yīng)的標(biāo)記選擇器的名稱垫卤。
標(biāo)記選擇器將擁有同一個標(biāo)記的所有元素全部選中。如:
<style>
p{ /* 標(biāo)記選擇器 */
color:blue;
font-size:18px;
}
</style>
2. 偽類選擇器
- 所謂偽類就是指標(biāo)記的狀態(tài)出牧。
-
網(wǎng)頁中的鏈接標(biāo)記能響應(yīng)瀏覽者的點擊穴肘。a標(biāo)記有四種狀態(tài)能描述這種響應(yīng),分別是a:link舔痕、a:visited评抚、a:hover、a:active伯复,a標(biāo)記在這幾種狀態(tài)下的樣式能夠通過偽類選擇器來分別定義慨代,偽類選擇器的標(biāo)記和偽類之間用“:”隔開。其格式為
- 在默認(rèn)的瀏覽器瀏覽方式下啸如,超鏈接為統(tǒng)一的藍(lán)色并且有下劃線鱼响,被單擊過的超鏈接則為紫色并也有下劃線。
- 動態(tài)超鏈接是通過CSS偽類選擇器實現(xiàn)的组底,因為偽類可以描述超鏈接在不同狀態(tài)下的樣式丈积,所以我們通過定義a標(biāo)記的各種偽類具有不同的屬性風(fēng)格,就能制作出千變?nèi)f化的動態(tài)超鏈接债鸡。
-
a標(biāo)記有四種偽類江滨,用來描述鏈接的4種狀態(tài)
<style>
a {font-size: 14px; text-decoration: none; }
a:link {color: #666666;}
a:visited {color: #996600; }
a:hover {color: #ECBD00; text-decoration: underline;}
a:active {color: #FF3399;}
</style>
<body>
<a href="#">普通鏈接</a><a href="#">鼠標(biāo)懸停時鏈接</a><a href="#">點擊過鏈接</a>
</body>
效果:
通過偽類選擇器做動態(tài)超鏈接
- 偽類選擇器可以看成是一種特殊的標(biāo)記選擇器,它用來選中在某種狀態(tài)下的標(biāo)記
需要注意兩點:
1.鏈接偽類選擇器的書寫應(yīng)遵循LVHA的順序厌均,即CSS代碼中四個選擇器出現(xiàn)的順序應(yīng)為a:link→ a:visited→ a:hover→ a:active唬滑,若違反這種順序鼠標(biāo)停留和激活樣式就不起作用了。
- 各種偽類選擇器將繼承a標(biāo)記選擇器定義的樣式棺弊。
a:link選擇器只能選中具有href屬性的a標(biāo)記晶密,而a選擇器能選中所有a標(biāo)記,包括用a標(biāo)記作為錨點模她。
- P:first-line 首行
- P:first-letter 首字母
3.類選擇器
- 標(biāo)記選擇器一旦聲明稻艰,那么頁面中所有該標(biāo)記的元素都會產(chǎn)生相應(yīng)的變化。
- 例如當(dāng)聲明<p>標(biāo)記為紅色時侈净,頁面中所有的<p>元素都將顯示為紅色
但是如果希望其中某一些<p>元素不是紅色尊勿,而是藍(lán)色僧凤,就需要將這些<p>元素自定義為一類,用類選擇器來選中它們元扔;或者希望不同標(biāo)記的元素應(yīng)用同一樣式躯保,也可以將這些不同標(biāo)記的元素定義為同一類。 - 類選擇器以半角“.”開頭澎语,且類名稱的第一個字母不能為數(shù)字
p.warning {color: red} <P CLASS=“warning”>
.note { font-size: small } <P CLASS=“note” >
格式
- 一個例子
<style>
.one {color: red;}
.two {font-size:20px;}
</style>
<p>選擇器之標(biāo)記選擇器1</p>
<p class="one">應(yīng)用第一種class選擇器樣式</p>
<p class="two">應(yīng)用第二種class選擇器樣式</p>
<p class="one two">同時應(yīng)兩種class選擇器樣式</p>
<h3 class="two">h3同樣適用</h3>
以上定義了類別名的元素都會應(yīng)用相應(yīng)的類選擇器的樣式途事,其中第四行通過class=“one two”將兩種樣式同時加入,得到紅色20象素的大字體擅羞。第一行的p元素因未定義類別名則不受影響
4.id選擇器
id選擇器的使用方法與class選擇器基本相同盯孙,不同之處在于一個id選擇器只能應(yīng)用于html文檔中的一個元素,因此其針對性更強(qiáng)祟滴,而class選擇器可以應(yīng)用于多個元素振惰。
id選擇器以半角“#”開頭,且id名稱的第一個字母不能為數(shù)字 垄懂。
例如 “#UserName”
-
格式
<style>
#one{
font-weight:bold; /* 粗體 */
}
#two{
font-size:30px; /* 字體大小 */
color:#009900; /* 顏色 */
}
</style>
<body>
<p id="one">ID選擇器1</p>
<p id="two">ID選擇器2</p>
<p id=“two”>ID選擇器3</p> /*不推薦 骑晶,ID應(yīng)該唯一*/
<p id=“one two”>ID選擇器3</p> /*錯誤*/
上例中,第一行應(yīng)用了#one的樣式草慧,第二行和第三行將一個id選擇器應(yīng)用到了兩個元素上桶蛔,顯然違反了一個id選擇器只能應(yīng)用在一個元素上的規(guī)定,但瀏覽器卻也顯示了CSS樣式風(fēng)格且沒有報錯漫谷。雖然如此仔雷,我們在編寫CSS代碼時,還是應(yīng)該養(yǎng)成良好的編碼習(xí)慣舔示,一個id最多只能賦予一個html元素碟婆,因為每個元素定義的id不只是CSS可以調(diào)用,JavaScript等腳本語言也可以調(diào)用惕稻,如果一個html中有兩個相同id屬性的元素竖共,那么將導(dǎo)致JavaScript在查找id時出錯,例如函數(shù)getElementById ( )俺祠。第四行在瀏覽器中沒有任何CSS樣式風(fēng)格顯示公给,這意味著ID選擇器不支持像class選擇器那樣的多風(fēng)格同時使用。因為元素和id是一一對應(yīng)的關(guān)系蜘渣,不能為一個元素指定多個id,也不能將多個元素定義為一個id腿准。類似id="one two"這樣的寫法是完全錯誤的捂龄。
- 關(guān)于類名和id名的大小寫:CSS大體上是不區(qū)分大小寫的語言释涛,但是對于標(biāo)記實體的類名和id名是否區(qū)分大小寫取決于標(biāo)記語言是否區(qū)分大小寫加叁,如果使用XHTML,那么類名和id名是區(qū)分大小寫的展融,如果是HTML窖认,則不區(qū)分大小寫 。
5.關(guān)聯(lián)選擇器
關(guān)聯(lián)選擇符只不過是一個用空格隔開的兩個或更多的單一選擇符組成的字符串告希。這些選擇符可以指定一般屬性燕偶,而且因為層疊順序的規(guī)則,它們的優(yōu)先權(quán)比單一的選擇符大指么。例如伯诬, 以下的上下文選擇符
P B { background: yellow }
是P B。這個值表示段落中的強(qiáng)調(diào)文本會是黃色背景盗似;而其它的強(qiáng)調(diào)文本則不受影響。
- 為了減少樣式表的重復(fù)聲明悍及,組合的選擇符聲明是允許的接癌。例如,文檔中所有的標(biāo)題可以通過組合給出相同的聲明:
H1, H2, H3, H4, H5, H6 {
color: red;
font-family: sans-serif
}
四园担、容器標(biāo)記 <div> 和 <span>
- div和span是不含有任何語義的標(biāo)記枯夜,用來在其中放置任何網(wǎng)頁元素湖雹,就象一個容器一樣,當(dāng)把文字放入后摔吏,文字的格式外觀都不會發(fā)生任何改變,應(yīng)用容器標(biāo)記的主要作用是通過引入CSS屬性對容器內(nèi)元素內(nèi)容的表現(xiàn)進(jìn)行設(shè)置据某。
div和span的唯一區(qū)別是div是塊級元素癣籽,span是行內(nèi)元素
<body> <div style="background-color:#3399ff">塊狀區(qū)域1</div>
<div style="background-color:#99ccff">塊狀區(qū)域2</div>
<span style="background-color:#ffccff">行間區(qū)域1</span>
<span style="background-color:#993399">行間區(qū)域2</span> </body>
結(jié)果預(yù)覽:
<div>標(biāo)記是一個塊狀的容器,其默認(rèn)的狀態(tài)就是占據(jù)整個一行筷狼。
<span>標(biāo)記是一個行內(nèi)的容器瓶籽,其默認(rèn)狀態(tài)是行內(nèi)的一部分埂材,占據(jù)行的長短由內(nèi)容的多少來決定俏险。
五、CSS的文本屬性
- CSS中控制文本樣式的屬性主要有font-屬性類和text-屬性類寡喝,再加上修改顏色的color屬性和行高line-height屬性。
- text-indent表示首行縮進(jìn)预鬓,在每段開頭空兩格通常是用text-indent: 2em;來實現(xiàn)。
- text-decoration: none;表示去掉下劃線
- line-height: 150%;表示調(diào)整為1.5 倍行間距格二。
- text-align:這個屬性用來設(shè)定文本的對齊方式顶猜。有以下值:
- left (居左,缺省值)
- right (居右)
- center (居中)
- justify (兩端對齊)
示例代碼如下:
.p2 {text-align:right}
- text-decoration, 這個屬性主要設(shè)定文本劃線的屬性滔吠。有以下值:
- none (無挠日,缺省值)
- underline (下劃線)
- overline (上劃線)
- line-through (當(dāng)中劃線)
示例代碼如下:
.p2 {text-decoration: underline overline;}
- text-indent ,這個屬性設(shè)定文本首行縮進(jìn)嚣潜。其值有以下設(shè)定方法:
- length (長度,可以用絕對單位(cm, mm, in, pt, pc)或者相對單位 (em, ex, px))
- percentage (百分比只冻,相當(dāng)于父對象寬度的百分比)
示例代碼如下:
.p1 {text-indent: 8mm}
- line-height, 這個屬性設(shè)定每行之間的距離喜德。其值有以下設(shè)定方法:
- normal (缺省值)
- length (長度,可以用絕對單位(cm, mm, in, pt,pc)或者相對單位 (em, ex, px))
- percentage (百分比驾胆,相當(dāng)于父對象高度的百分比)
示例代碼如下:
.p1 {line-height:1cm}
- 用顏色屬性(color)可以改變文本的字體顏色贱呐。
示例代碼如下:
.p1{color:gray}
-
font-style , 主要是用于指定斜體文字的字體樣式屬性奄薇。
這個屬性有三個值:
- 正常 - 正常顯示文本
- 斜體 - 以斜體字顯示的文字
- 傾斜的文字 - 文字向一邊傾斜(和斜體非常類似抗愁,但不太支持)
實例
p.normal {font-style:normal;}
p.italic {font-style:italic;}
p.oblique {font-style:oblique;}
- font-family屬性:字體系列
- font-family 屬性設(shè)置文本的字體系列蜘腌。
- font-family 屬性應(yīng)該設(shè)置幾個字體名稱作為一種"后備"機(jī)制,如果瀏覽器不支持第一種字體沮脖,他將嘗試下一種字體芯急。
注意: 如果字體系列的名稱超過一個字娶耍,它必須用引號,如Font Family:"宋體"胚膊。
多個字體系列是用一個逗號分隔指明:
實例
p{font-family:"Times New Roman", Times, serif;}
- 三段文字設(shè)置不同的字體粗細(xì):
p.normal {font-weight:normal;}
p.thick {font-weight:bold;}
p.thicker {font-weight:900;}
- letter-spacing, 這個屬性用來設(shè)定字符之間的距離想鹰。
- normal (缺省值)
- length (長度杖挣,可以用絕對單位(cm, mm, in, pt, pc)或者相對單位 (em, ex, px))
示例代碼如下:
.p1 {letter-spacing: 3mm}
六、CSS的繼承性
- CSS具有兩個特性:層疊性和繼承性株汉。
CSS的繼承性 :是指如果子元素定義的樣式?jīng)]有和父元素定義的樣式發(fā)生沖突乔妈,那么子元素將繼承父元素的樣式風(fēng)格,并可以在父元素樣式的基礎(chǔ)上再加以修改勃刨,自己定義新的樣式股淡,而子元素的樣式風(fēng)格不會影響父元素。如:
<style>
body {
text-align: center;}
p {
font-size: 24px;
text-decoration: underline;}
em {
color: #FF0000;}
.right{
text-align: right;}
</style>
<body>
<p><em>電子商務(wù)</em>教研</p>
<p class=“right"><em>電子商務(wù) </em>教研室</p>
</body>
- 注意
- 需要注意的是并不是所有的CSS屬性都具有繼承性,一般是CSS的文本屬性具有繼承性埠帕,而其他屬性(如背景屬性敛瓷、盒子屬性等)則不具有繼承性。
- 具有繼承性的屬性:color, font-類锋勺,text-indent, text-align, text-decoration, line-height, letter-spacing, border-collapse等
- 無繼承性的屬性:text-decoration:none, 所有背景屬性绝淡,所有盒子屬性,布局屬性等
七牢酵、CSS的層疊性
- CSS具有兩個特性:層疊性和繼承性。
層疊性 :是指當(dāng)有多個選擇器都作用于同一元素時布近,即多個選擇器的作用范圍發(fā)生了重疊撑瞧,CSS怎樣處理显蝌?CSS的處理原則是:
1)如果多個選擇器定義的規(guī)則不發(fā)生沖突,則元素將應(yīng)用所有選擇器定義的樣式酬诀,即效果累加瞒御。如:
<style>
p{ /* 標(biāo)記選擇器 */
color:blue;
font-size:18px;}
.special{ /* 類別選擇器 */
font-weight: bold; } /* 粗體 */
#underline{
text-decoration: underline; } /* 有下劃線 */
</style>
<p>標(biāo)記選擇器1</p><p>標(biāo)記選擇器2</p>
<p class="special">受到標(biāo)記、類兩種選擇器作用</p>
<p id="underline" class="special">受到標(biāo)記趾唱、類和id三種選擇器作用</p>
2)如果多個選擇器定義的規(guī)則發(fā)生了沖突甜癞,則CSS按選擇器的優(yōu)先級讓元素應(yīng)用優(yōu)先級高的選擇器定義的樣式阻肩。CSS規(guī)定選擇器的優(yōu)先級從高到低為:
行內(nèi)樣式 > ID樣式 > 類別樣式 > 標(biāo)記樣式烤惊∮蹼總的原則是:越特殊的樣式,優(yōu)先級越高雄右。如:
<style>
p{ /* 標(biāo)記選擇器 */
color:blue;
font-style: italic; }
.green{ /* 類選擇器 */
color:green; }
.purple{
color:purple; }
#red{ /* ID選擇器 */
color:red;}
</style>
<body>
<p>這是第1行文本</p>
<p class="green">這是第2行文本</p>
<p class="green" id="red">這是第3行文本</p>
<p id="red" style="color:orange;">這是第4行文本</p>
<p class="purple green">這是第5行文本</p>
</body>
- 可以通過!important強(qiáng)制改變選擇器的優(yōu)先級擂仍,則優(yōu)先級為!important >行內(nèi)樣式 > ID樣式 > 類別樣式 > 標(biāo)記樣式
另外逢渔,如果在同一個選擇器中定義了兩條相沖突的規(guī)則乡括,則以后一條為準(zhǔn)。如果為某一條添加了!important盲赊,那么IE6總是以后一條為準(zhǔn)哀蘑,不認(rèn)!important 。而Firefox/IE7以定義了!important的為準(zhǔn)
#box {
color:red!important; /*Firefox執(zhí)行這一條*/
color:blue; /*IE6執(zhí)行這一條*/}
八惨险、選擇器的組合
- 每個選擇器都有它的作用范圍脊髓,基本的選擇器的作用范圍都是一個單獨的集合
1.復(fù)合選擇器
復(fù)合選擇器就是兩個或多個基本選擇器将硝,通過不同方式組合而成的選擇器。主要有:
- 交集選擇器
- 并集選擇器(組合選擇器)
- 后代選擇器(關(guān)聯(lián)選擇器)
-
交集選擇器是由兩個選擇器直接連接構(gòu)成痰腮,其結(jié)果是選中兩者各自作用范圍的交集膀值。其中第一個必須是標(biāo)記選擇器误辑,第二個必須是類選擇器或id選擇器。例如:h1.class翘狱;p#intro潦匈。這兩個選擇器之間不能有空格赚导。
交集選擇器將選中同時滿足前后二者定義的元素吼旧,也就是前者定義的標(biāo)記類型,并且指定了后者的類別或id的元素寡夹。它的作用范圍如圖所示
- 舉例:
例如由于所有的表單控件都是input標(biāo)記菩掏,如果設(shè)置input標(biāo)記選擇器的樣式昵济,那么所有的表單控件都會受影響野揪,如果只希望某個表單控件(如提交按鈕)受影響斯稳,則可用交集選擇器input.red{ ……}
input.red { color: #FF0000;}
<input type="submit" name="Submit" class="red" value="提交" />
對于上例IE7迹恐、Firefox還支持屬性選擇器
可不創(chuàng)建red類殴边,直接寫
input[type=‘submit’]
-
所謂并集選擇器就是對多個選擇器進(jìn)行集體聲明,多個選擇器之間用“,”隔開竖幔。如果某些選擇器定義的樣式完全相同拳氢,或者部分相同蛋铆,這時便可以利用并集選擇器同時聲明風(fēng)格完全相同或部分相同的樣式戒职。如h2,.class{…}其選擇范圍如圖所示:
<style>
h1,h2,h3,p {
font-size: 12px;
color: purple;
}
h2.special, .special, #one {
text-decoration: underline;}
</style>
<body>
<h1>示例文字h1</h1>
<h2 class="special">示例文字h2</h2>
<h3>示例文字h3</h3>
<h4 id="one">示例文字h4</h4>
<p class="special">示例文字p1</p>
-
通配符
如果要對網(wǎng)頁中所有的元素進(jìn)行集體聲明可使用通配選擇符 *
*{ /* 全局聲明 */
color:purple; /* 文字顏色 */
font-size:15px; /* 字體大小 */
}
h2.special, .special, #one{ /* 集體聲明 */
text-decoration:underline; /* 下劃線 */}
-
在CSS選擇器中洪燥,還可以通過嵌套的方式捧韵,對特殊位置的html元素進(jìn)行控制汉操,例如當(dāng)<a>與</a>之間包含<b>……</b>元素時,就可以使用后代選擇器選中出現(xiàn)在a元素中的b元素芒篷。a為父元素针炉,b為子元素扳抽。
后代選擇器的寫法是把外層的標(biāo)記寫在前面殖侵,內(nèi)層的標(biāo)記寫在后面镰烧,之間用空格隔開。其選擇范圍如圖所示:
a b {…}
<style>
a {
font-size: 16px;
color: red;
}
a b {
color: mediumpurple;
}
</style>
<body>
<b>這是b標(biāo)記中的文字</b><br />
<a href="#">這是<b>a標(biāo)記中的b<span>標(biāo)記</span></b></a>
- <a href="#">這是<b>a標(biāo)記中的b<span>標(biāo)記</span></b></a>
和其他所有CSS選擇器一樣,后代選擇器會繼承父元素的沒有沖突的樣式赌渣。
后代選擇器定義的具有繼承性的樣式同樣也能被其子元素繼承昌犹。例如在上例中斜姥,b元素內(nèi)又包含了span元素,那么span元素也將顯示為淡紫色缚忧。這說明子元素(span)繼承了父元素(a b)的顏色樣式 - 后代選擇器的使用非常廣泛杈笔,實際上不僅標(biāo)記選擇器可以用這種方式組合蒙具,類選擇器和ID選擇器也都可以進(jìn)行嵌套,而且后代選擇器還能夠進(jìn)行多層嵌套持钉。例如:
- .special b { color : red }
- #menu li { padding : 0 6px ; }
- td.top .ban1 strong{ font-size : 16px ; }
-
#menu a:hover b
經(jīng)驗:選擇器的嵌套在CSS的編寫中可以大大減少對class或id的聲明每强。因此在構(gòu)建頁面html框架時通常只給外層標(biāo)記(父標(biāo)記)定義class或id州刽,內(nèi)層標(biāo)記(子標(biāo)記)能通過嵌套表示的則利用這種方式,而不需要再定義新的class或id辨绊。 -
CSS優(yōu)先級總圖
- 復(fù)合選擇器的優(yōu)先級比組成它的單個選擇器的優(yōu)先級都要高邢羔。我們知道基本選擇器的優(yōu)先級是“ID選擇器 > 類選擇器 > 標(biāo)記選擇器”拜鹤,所以不妨設(shè)ID選擇器的優(yōu)先級權(quán)重是100,類選擇器的優(yōu)先級權(quán)重是10明也,標(biāo)記選擇器的優(yōu)先級權(quán)重是1惯裕,那么復(fù)合選擇器的優(yōu)先級就是組成它的各個選擇器權(quán)重值的和蜻势。
h1{color:red;} /* 權(quán)重=1 */
p em{color:blue;} /* 權(quán)重=2 */
.warning{color:yellow;} /* 權(quán)重=10 */
p.note em.dark{color:gray;} /* 權(quán)重=22 */
#main{color:black;} /* 權(quán)重=100 */
當(dāng)權(quán)重值一樣時,會采用“層疊原則”够傍,一般后定義的會被應(yīng)用