CSS 宣告
介紹CSS宣告方式:群組式宣告、、組合式宣告、層疊式宣告
沒有說以哪種方式最合適,無論何種宣告方式,視專案開發而定
群組式宣告
如css 兩種以上class視覺設定相同,可以藉由半形”,”隔開class name,使兩者(或以上)共用同樣的視覺設定,以下藉由原始碼示範:
假如原本設定如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| <style>
.news-list{ border: 1px solid #ccc; padding: 20px; }
.news-list-item{ color: #666; text-decoration: none; display: list-item; }
.event-list{ border:1px solid #ccc; padding: 20px; }
.event-list-item{ color: #666; text-decoration: none; display: list-item; } </style>
<div class="news-list"> <a href="#" class="news-list-item">...略</a> <a href="#" class="news-list-item">...略</a> <a href="#" class="news-list-item">...略</a> </div>
<div class="event-list"> <a href="#" class="event-list-item">...略</a> <a href="#" class="event-list-item">...略</a> <a href="#" class="event-list-item">...略</a> </div>
|
我們利用群組式宣告簡化,避免程式原始碼肥大不易解讀:
1 2 3 4 5 6 7 8 9 10 11 12 13
| .news-list, .event-list{ border:1px solid #ccc; padding: 20px; }
.news-list-item, .event-list-item{ color: #666; text-decoration: none; display: list-item; }
|
群組式宣告須注意
- 最後一個選取器的右側不可出現逗號,會導致該串選取器全部失效
- 當大量使用逗號區隔眾多選取器時,該考慮另外建立新的共用選取器,而不是濫用逗號做 CSS 群組式宣告
- 每個逗號右側建議添加一個空格以利閱讀
- 逗號前後的空間不影響選取器的選取作用
除了使用群組化宣告,我們也可以就相同視覺外觀的項目,將它共用的地方抽出來獨立用一個 class 來設定,至於差異化的部分則用另外一個單獨專有的 class 名稱來設定。
組合式宣告
可用於想進一步選取單獨按鈕、圖片或選單時,此處我們直接以程式碼來呈現:
1
| <p class="A" id="B">...內文略</p>
|
CSS 選取器是寫 p 或者是 .A 又或者是 #B 選到的都是同一個目標對象,因此我們可將它串接起來,如下:
1 2 3
| p.A#B{ ...略 } <!-- 或 --> p#B.A{ ...略 }
|
每個選取器之間是沒有空格的!同一個目標對象
具備多個選取器時不該有空格。
層疊式宣告
此宣告用法為「選取器A 選取器B」,需要注意的是,兩個選取器之間至少具備一個或多個空格,意思是選取到左方選取器A內的選取對象B,以程式碼示範為:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| <style>
h1{ font-size: 36px; }
.news h1{ color: red; }
.hot h1{ color: pink; } </style>
<div class="news"> <h1>A</h1> </div>
<div class="hot"> <h1>B</h1> </div>
|
又或者更簡潔可以如此使用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
|
<style> .section{ 共用設定...略 } .section .section-title{ 共用設定...略 } .section .list{ 共用設定...略 } .section .list-item{ 共用設定...略 } .section .list-item-link{ 共用設定...略 }
.news .list-item-link{ 差異設定...略 } .events .list-item-link{ 差異設定...略 } </style>
<body> <section class="section news"> <h2 class="section-title">最新消息</h2> <ul class="list"> <li class="list-item"> <a href="#" class="list-item-link">...略</a> </li> ...略 </ul> </section>
<section class="section events"> <h2 class="section-title">近期活動</h2> <ul class="list"> <li class="list-item"> <a href="#" class="list-item-link">...略</a> </li> ...略 </ul> </section> </body>
|
但須注意,撰寫的層級越多,CSS 效能就越差,要視情況去做調整。
參考資料:
CSS 群組式宣告 - 每個開發者都該學會的選取方式
CSS 組合式宣告 - 新手開發從這裡開始進步
CSS 層疊式宣告 - 讓你快速選到特定元素內的物件的選取器