(2)css的復合選擇器與特性


css的復合選擇器與特性

在本篇學習資料中,將深入了解css的相關概念,上一篇介紹的3種基本選擇器的基礎上,學習3種由基本選擇器復合構成的選擇器,然后再介紹css的兩個重要的特性。

1、復合選擇器

復合選擇器就是兩個或多個基本選擇器,通過不同的方式連接成的選擇器。

復合選擇器的三種類型:交集選擇器並集選擇器后代選擇器

(1)交集選擇器

“交集”復合選擇器由兩個選擇器直接連接構成;其中第一個必須是標記選擇器,第二個必須是類別選擇器或者ID選擇器;這兩個選擇器之間不能有空格。

例如:下圖聲明了 p.specialp.special這三種選擇器:

案列代碼:

<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="Generator" content="EditPlus®">
<meta name="Author" content="">
<meta name="Keywords" content="">
<meta name="Description" content="">
<title>交集復合選擇器</title>
<style type="text/css">
p{
color:blue;
}
p.special
{
color:red;
}
.special:
{
color:green;
}
</style>
</head>
<body>
<p>普通段落文本(藍色)</p>
<h3> 普通標題文本(黑色)</h3>
<p class="special">指定了.special類別的段落文本(紅色)</p>
<h3 class="special">指定了.special類別的段落文本(綠色)</h3>
</body>
</html>

案例代碼中定義了p 標記的樣式,也定義“.special”類別的樣式,此外還單獨定義了p.special用於特殊的控制,而在這個p.special中定義的風格樣式僅僅適合用於<p class="special">,而不會影響使用.special的其他標記。

 


(2)並集選擇器

並集選擇器簡稱“集體聲明”;並集選擇器是多個選擇器通過逗號連接而成的。

案列演示

<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="Generator" content="EditPlus®">
<meta name="Author" content="">
<meta name="Keywords" content="">
<meta name="Description" content="">
<title>並集選擇器</title>
<style type="text/css">

h1,h2,h3,h4,h5,p{
color:green;
font-size:1px;
}

h2.special,.special,#one{
text-decoration:underline;
}

</style>
</head>
<body>
<h1>案例文字1</h1>
<h2 class="special">案例文字2</h2>
<h3>案例文字3</h3>
<h4>案例文字4</h4>
<h5>案例文字5</h5>
<p>案例文字p1</p>
<p class="special">案例文字p2</p>
<p id="one">案例文字p3</p>
</body>
</html>

案列中可以看到所有行的顏色都是綠色,而且字體大小均為15px。這種集體聲明的效果與單獨聲明的效果完整相同 h2.special 、.special 和#one的聲明並不會影響前一個的集體聲明,第二行和最后兩行在綠色和大小為15px的前提下使用了下划線進行突出。


(3)后代選擇器

 css選擇器中,還可以通過嵌套的方式對特殊位置的html 標記進行聲明,例如當<p>與</p>之間包含<span></span>標記時,就可以使用后代選擇器進行相應的控制。后代選擇器的寫法就是把外層的標記寫在前面,內層的標記寫在后面,之間用空格分隔。當標記發生嵌套時,內層的標記就成為外層標記的后代。

例如,假設有下面的代碼:

<p>外層的文字,<span>中間的文字<b>內層的文字</b></span></p>

外層是<p>標記,里面嵌套了<span>標記,<span>標記中又嵌套了<b>標記,則稱<span>是<p>的子元素,<b>是<span> 的子元素。

<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="Generator" content="EditPlus®">
<meta name="Author" content="">
<meta name="Keywords" content="">
<meta name="Description" content="">
<title>后代選擇器</title>
<style type="text/css">
p span{
color:blue;
}
span{
color:yellow;
}
</style>
</head>
<body>
<p>嵌套使<span>用css(藍色)</span>標記的方法</p>
嵌套之外的<span>標記(黃色)</span>不生效
</body>
</html>

 

通過將span選擇器嵌套在p選擇器中進行聲明,顯示效果只適合用於<p>和</p>之間的<span>標記,而其外的<span>標記並不產生任何效果;只有第一行中<span>和</span>之間的文字變成了藍色,而第二行文中 <span>和</span>之間的文字則是按照第二條css樣式規則設置的,即為黃色。

**選擇器的嵌套在css編寫中可以大大減少對class和ID的的生聲明。

在css2中還規定了一種符合選擇器,稱為“子選擇器”,也就是只對直接后代有影響的選擇器,而對子孫以及多層的后代不會產生作用。

**子選擇器和后代選擇器的語法區別在於使用大於號連接:

<p>外層的內容,<span>中間的內容b>內層的內容</b></span></p> 

假設上面的內容css設置為:                                                                 

                                                              p>span{

                                                                      color:yellow;

                                                                         }

效果是僅有“中間的內容”這幾個字變為黃色,因為span是p的直接后代,b是p的“孫子”不在選中范圍內。

 


 

2、CSS的繼承特性

     css的繼承指的是子標記可以會繼承父標記的所有的樣式風格,並可以在父標記樣式風格的基礎上再加上修改,產生新的樣式,且子標記的樣式風格完全不會影響父標記。

   子標記會繼承父標記中的樣式:

                                                 <p>老羅是<b>NB</b>類型的人</p>  

   假設上面的內容css設置為:    

                                       p{

                                         color:green;

                                        text-decoration:underline;

                                         }

                                       b{

                                        color:red;

                                          }

    

     案列效果為:

     上圖可以看到b繼承了下划線樣式,還改變了顏色 。而且子標記的樣式風格完全不會影響父標記,這樣就可以實現CSS樣式的共用。


 

  3、CSS的層疊特性

    層疊特性可概括為各樣式間的優先級順序,當產生沖突時以優先級高的為准。

     各個樣式優先級排行:

     行內樣式>ID樣式>class樣式>標記樣式

     當兩個類別樣式優先級相同時,此時以寫在前者為准(寫在前面>寫在后面)。如:<p class="p1 p2">此時p1樣式優先</p>

以上內容部分出自www.ptpress.com.cn


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM