Johnson Mao

Day.5 「我的樣式失靈啦!你有頭緒嗎?」 —— CSS 選擇器 與 權重

2021年9月14日

「我的樣式失靈啦!你有頭緒嗎?」 —— CSS 選擇器 與 權重

了解盒模型後,就要為標籤套上各種花樣了,上一篇介紹了簡單的套用方法,但這個套用方法其實不太好用!

使用標籤元素套用就像是畫草圖上底色,雖然有色彩但不細緻,這時為了能夠更精雕細琢我們的網頁,於是我們要更加精準的設定樣式,但有的選擇器必須謹慎使用,不然後面要修改就麻煩了。

#CSS 的使用方式

#這三個有什麼差異與影響?

link CSS

#CSS 選擇器

這裡要先補充,選擇器鎖定的元素不一定只有一個,可以藉由組合,來選擇其後代的所有元素。 但會建議選擇器階層別超過三層,因為瀏覽器會一層一層比對,當超過三層瀏覽器的渲染效率會下降許多。 把握簡單原則,當要超過三層時,就可以考慮再新增一個選擇器

CSS effective 如圖如果都是要指定 menu 下的 <a>標籤,下面這樣指定也能達到同樣效果

#element 元素選擇器

首先先介紹我們最基礎最簡單直白的元素選擇器,階級分數為 1 分, 用來畫草圖的選擇器。

elements select 如圖利用<header>&<main>,來區分兩個區域的<h2>,另外<body>也是標籤可以設定

#class 類別選擇器

最受歡迎的 class 選擇器, 比起有限的標籤選擇器,能夠自由命名的 class 選擇器更方便,階級分數為 10 分, 可以用來構圖,也能細琢的,屬於最好用方便的選擇器。

class select 如圖利用 class 命名成顏色直接套用

需在標籤屬性添加 class="red" 屬性,透過使用 .red{ 樣式 } 來套用樣式

#id 選擇器

id 這個屬性有個特性,就是一個 HTML 檔案中,每個 id 都要獨一無二的。 所以相較受歡迎的 class 選擇器,id 選擇器也就比較難被使用。階級分數為 100 分。 因為它的獨特性,且階級分數高,所以在使用上綁手綁腳的,比較不推薦在 CSS 中使用 id 選擇器。

id select 如圖顯示 id 選擇器階級分數高,蓋過 class 選擇器樣式

如果要使用,標籤屬性要添加 id="red" 屬性,透過使用 #red{ 樣式 } 來套用樣式

#運算符號選擇器

有時候會希望選擇器能更靈活的使用,像上一篇的box-sizing: border-box;,如果要一個一個標籤都要使用,還不累死,這時就可以使用運算符號選擇器,運算符號選擇器有個特點,就是本身沒有權重。

#CSS 權重

上面已經稍微認識權重了,權重大的會蓋過權重小的。 注意 雖然用分數來比擬權重,但其實就算使用 11 個 class 選擇器,也蓋不過 1 個 id 選擇器。

#!important

沒錯~!important,就是多麼無敵的存在,連 inline style 都無法保住自己絕對的地位。 所以在使用 !important 時,務必想清楚,最好是別隨便的亂使用

!important 透過使用 !important 強制蓋過樣式。

使用方法為,在你需要把權重調最高的樣式後添加 !important;

#總結

這邊了解如何使用選擇器,與權重的概念了,也了解到 HTML 中 idclassstyle 這三個屬性,還有幾個很重要的觀念沒說,像是命名的藝術、命名的邏輯、樣式的複用性也都是很重要的,礙於篇幅有限,未來有機會再提起,還有一些 CSS 的樣式這系列應該不會說那麼細,推薦可以去看 CSScoke 金魚系列的文章,下一篇我們將介紹 CSS 的 display 屬性。

回首頁