CSS

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;
}
css語法

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)


    a標(biāo)記的4種偽類
<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)停留和激活樣式就不起作用了。
  1. 各種偽類選擇器將繼承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”

  • 格式


    id選擇器格式
<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ù)覽:

image.png

<div>標(biāo)記是一個塊狀的容器,其默認(rèn)的狀態(tài)就是占據(jù)整個一行筷狼。
<span>標(biāo)記是一個行內(nèi)的容器瓶籽,其默認(rèn)狀態(tài)是行內(nèi)的一部分埂材,占據(jù)行的長短由內(nèi)容的多少來決定俏险。

五、CSS的文本屬性

  1. 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 倍行間距格二。
  1. text-align:這個屬性用來設(shè)定文本的對齊方式顶猜。有以下值:
  • left (居左,缺省值)
  • right (居右)
  • center (居中)
  • justify (兩端對齊)
    示例代碼如下:
.p2 {text-align:right}
  1. text-decoration, 這個屬性主要設(shè)定文本劃線的屬性滔吠。有以下值:
  • none (無挠日,缺省值)
  • underline (下劃線)
  • overline (上劃線)
  • line-through (當(dāng)中劃線)
    示例代碼如下:
.p2 {text-decoration: underline overline;}
  1. text-indent ,這個屬性設(shè)定文本首行縮進(jìn)嚣潜。其值有以下設(shè)定方法:
  • length (長度,可以用絕對單位(cm, mm, in, pt, pc)或者相對單位 (em, ex, px))
  • percentage (百分比只冻,相當(dāng)于父對象寬度的百分比)
    示例代碼如下:
.p1 {text-indent: 8mm}
  1. line-height, 這個屬性設(shè)定每行之間的距離喜德。其值有以下設(shè)定方法:
  • normal (缺省值)
  • length (長度,可以用絕對單位(cm, mm, in, pt,pc)或者相對單位 (em, ex, px))
  • percentage (百分比驾胆,相當(dāng)于父對象高度的百分比)
    示例代碼如下:
.p1 {line-height:1cm}
  1. 用顏色屬性(color)可以改變文本的字體顏色贱呐。
    示例代碼如下:
.p1{color:gray}
  1. font-style , 主要是用于指定斜體文字的字體樣式屬性奄薇。
    這個屬性有三個值:
  • 正常 - 正常顯示文本
  • 斜體 - 以斜體字顯示的文字
  • 傾斜的文字 - 文字向一邊傾斜(和斜體非常類似抗愁,但不太支持)
    實例
p.normal {font-style:normal;}
p.italic {font-style:italic;}
p.oblique {font-style:oblique;}
  1. font-family屬性:字體系列
  • font-family 屬性設(shè)置文本的字體系列蜘腌。
  • font-family 屬性應(yīng)該設(shè)置幾個字體名稱作為一種"后備"機(jī)制,如果瀏覽器不支持第一種字體沮脖,他將嘗試下一種字體芯急。
    注意: 如果字體系列的名稱超過一個字娶耍,它必須用引號,如Font Family:"宋體"胚膊。
    多個字體系列是用一個逗號分隔指明:
    實例
p{font-family:"Times New Roman", Times, serif;}
  1. 三段文字設(shè)置不同的字體粗細(xì):
p.normal {font-weight:normal;}
p.thick {font-weight:bold;}
p.thicker {font-weight:900;}
  1. 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>

繼承性
  • 注意
  1. 需要注意的是并不是所有的CSS屬性都具有繼承性,一般是CSS的文本屬性具有繼承性埠帕,而其他屬性(如背景屬性敛瓷、盒子屬性等)則不具有繼承性。
  2. 具有繼承性的屬性:color, font-類锋勺,text-indent, text-align, text-decoration, line-height, letter-spacing, border-collapse等
  3. 無繼承性的屬性: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>
選擇器的優(yōu)先級
  • 可以通過!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)選擇器)
  1. 交集選擇器是由兩個選擇器直接連接構(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’]

  1. 所謂并集選擇器就是對多個選擇器進(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>
image.png
  • 通配符
    如果要對網(wǎng)頁中所有的元素進(jìn)行集體聲明可使用通配選擇符 *
*{          /* 全局聲明 */
    color:purple;   /* 文字顏色 */
    font-size:15px; /* 字體大小 */
}
h2.special, .special, #one{     /* 集體聲明 */
    text-decoration:underline;  /* 下劃線 */}
  1. 在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>
image.png
  • <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)先級總圖
    image.png
  1. 復(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)用

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末冕屯,一起剝皮案震驚了整個濱河市拂苹,隨后出現(xiàn)的幾起案子瓢棒,更是在濱河造成了極大的恐慌,老刑警劉巖囱桨,帶你破解...
    沈念sama閱讀 206,968評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異搀继,居然都是意外死亡叽躯,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評論 2 382
  • 文/潘曉璐 我一進(jìn)店門谍夭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來憨募,“玉大人菜谣,你說我怎么就攤上這事∠蔽#” “怎么了冈敛?”我有些...
    開封第一講書人閱讀 153,220評論 0 344
  • 文/不壞的土叔 我叫張陵抓谴,是天一觀的道長。 經(jīng)常有香客問我椎侠,道長我纪,這世上最難降的妖魔是什么丐吓? 我笑而不...
    開封第一講書人閱讀 55,416評論 1 279
  • 正文 為了忘掉前任券犁,我火速辦了婚禮,結(jié)果婚禮上荞估,老公的妹妹穿的比我還像新娘勘伺。我一直安慰自己褂删,他們只是感情好屯阀,可當(dāng)我...
    茶點故事閱讀 64,425評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著钦无,像睡著了一般铃诬。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上兵志,一...
    開封第一講書人閱讀 49,144評論 1 285
  • 那天想罕,我揣著相機(jī)與錄音霉涨,去河邊找鬼笙瑟。 笑死,一個胖子當(dāng)著我的面吹牛框产,可吹牛的內(nèi)容都是我干的秉宿。 我是一名探鬼主播屯碴,決...
    沈念sama閱讀 38,432評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼导而,長吁一口氣:“原來是場噩夢啊……” “哼今艺!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,088評論 0 261
  • 序言:老撾萬榮一對情侶失蹤遥巴,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后拾弃,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體摆霉,經(jīng)...
    沈念sama閱讀 43,586評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡携栋,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,028評論 2 325
  • 正文 我和宋清朗相戀三年婉支,在試婚紗的時候發(fā)現(xiàn)自己被綠了向挖。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,137評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡跟畅,死狀恐怖溶推,靈堂內(nèi)的尸體忽然破棺而出徊件,到底是詐尸還是另有隱情,我是刑警寧澤悼潭,帶...
    沈念sama閱讀 33,783評論 4 324
  • 正文 年R本政府宣布庇忌,位于F島的核電站,受9級特大地震影響舰褪,放射性物質(zhì)發(fā)生泄漏皆疹。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,343評論 3 307
  • 文/蒙蒙 一占拍、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧晃酒,春花似錦表牢、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春敲茄,著一層夾襖步出監(jiān)牢的瞬間位谋,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評論 1 262
  • 我被黑心中介騙來泰國打工堰燎, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留掏父,地道東北人。 一個月前我還...
    沈念sama閱讀 45,595評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親蜒蕾。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,901評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案陶缺? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 13,728評論 1 92
  • CSS 指層疊樣式表(Cascading Style Sheets),是一種用來為結(jié)構(gòu)化文檔(如 HTML 文檔或...
    神齊閱讀 2,081評論 0 14
  • 1.CSS 元素選擇器 最常見的 CSS 選擇器是元素選擇器何什。換句話說组哩,文檔的元素就是最基本的選擇器。如果設(shè)置 H...
    饑人谷_小侯閱讀 852評論 0 1
  • 本文主要是起筆記的作用处渣,內(nèi)容來自慕課網(wǎng). 認(rèn)識CSS樣式 CSS全稱為“層疊樣式表 (Cascading Styl...
    0o凍僵的企鵝o0閱讀 2,623評論 0 30
  • CSS基礎(chǔ) 本文包括CSS基礎(chǔ)知識選擇器(重要A娣 !9拚弧)繼承黍衙、特殊性、層疊荠诬、重要性CSS格式化排版單位和值盒模型浮動...
    廖少少閱讀 3,061評論 0 40