未來遊戲展6月14日登場 邀請艾比和喬爾演員主持
阿新 • • 發佈:2021-06-07
CSS 是用於網頁設計可用的最強大的工具之一。使用它我們可以在幾分鐘內改變一個網站的介面,而不用改變頁面的標籤。
好一段時間不用 CSS ,有一些基礎知識的記憶有點模糊了,今天再做一次總結記錄,方便日後回顧複習。
選擇器分類
在 CSS 中,選擇器可分為以下幾類:
- 基本選擇器(通配選擇器、元素選擇器、類選擇器、ID 選擇器、群組選擇器)
- 層次選擇器
- 屬性選擇器
- 偽類選擇器
- 偽元素
基本選擇器比較好記,這裡就不浪費篇幅,主要是記錄一下後三、幾種選擇器。
層次選擇器
選擇器 | 型別 | 功能描述 |
---|---|---|
E F | 後代選擇器(包含選擇器) | 選擇匹配的F元素,且匹配的F元素被包含在匹配的E元素內 |
E>F | 子元素選擇器 | 選擇匹配的F元素,且匹配的F元素所匹配的E元素的子元素 |
E+F | 相鄰兄弟選擇器 | 選擇匹配的F元素,且匹配的F元素緊位於匹配的E元素的後面 |
E~F | 通用選擇器 | 選擇匹配的F元素,且位於匹配的E元素後的所有匹配的F元素 |
- 在後代選擇器中,規則左邊的選擇器一端包括兩個或多個用空格分隔的選擇器。選擇器之間的空格是一種結合符(combinator)。每個空格結合符可以解釋為“... 在 ... 找到”、“... 作為 ... 的一部分”、“... 作為 ... 的後代”,但是要求必須從右向左讀選擇器。
- 如果不希望選擇任意的後代元素,而是希望縮小範圍,只選擇某個元素的直接子元素
- 如果需要選擇緊接在另一個元素後的元素,而且二者有相同的父元素,可以使用相鄰兄弟選擇器(Adjacent sibling selector)。
屬性選擇器
選擇器 | 功能描述 |
---|---|
[attribute] | 用於選取帶有指定屬性的元素。 |
[attribute=value] | 用於選取帶有指定屬性和值的元素。 |
[attribute~=value] | 用於選取屬性值中包含指定詞彙的元素。 |
[attribute|=value] | 用於選取帶有以指定值開頭的屬性值的元素,該值必須是整個單詞。 |
[attribute^=value] | 匹配屬性值以指定值開頭的每個元素。 |
[attribute$=value] | 匹配屬性值以指定值結尾的每個元素。 |
[attribute**=value*] | 匹配屬性值中包含指定值的每個元素。 |
如果希望選擇有某個屬性的元素,而不論屬性值是什麼,可以使用簡單屬性選擇器:
a[href] {}
還可以根據多個屬性進行選擇,只需將屬性選擇器連結在一起即可:
a[href][title] {}
除了選擇擁有某些屬性的元素,還可以進一步縮小選擇範圍,只選擇有特定屬性值的元素:
a[href='www.abc.com'] {}
也可以把多個屬性-值選擇器連結在一起來選擇一個文件:
a[href="www.abc.com"][title="abc"] {}
偽類選擇器
動態偽類選擇器
選擇器 | 型別 | 功能描述 |
---|---|---|
E:link | 連結偽類選擇器 | 選擇匹配的E元素,而且匹配元素被定義了超連結並未被訪問過。常用於連結錨點上 |
E:visited | 連結偽類選擇器 | 選擇匹配的E元素,而且匹配元素被定義了超連結並已被訪問過。常用於連結錨點上 |
E:active | 使用者行為選擇器 | 選擇匹配的E元素,且匹配元素被啟用。常用於連結錨點和按鈕上 |
E:hover | 使用者行為選擇器 | 選擇匹配的E元素,且使用者滑鼠停留在元素E上。 |
E:focus | 使用者行為選擇器 | 選擇匹配的E元素,而且匹配元素獲取焦點 |
目標偽類選擇器
選擇器 | 功能描述 |
---|---|
E:target | 選擇匹配E的所有元素,且匹配元素被相關URL指向 |
UI元素狀態偽類選擇器
選擇器 | 型別 | 功能描述 |
---|---|---|
E:checked | 選中狀態偽類選擇器 | 匹配選中的複選按鈕或者單選按鈕表單元素 |
E:enabled | 啟用狀態偽類選擇器 | 匹配所有啟用的表單元素 |
E:disabled | 不可用狀態偽類選擇器 | 匹配所有禁用的表單元素 |
結構偽類選擇器
選擇器 | 功能描述 |
---|---|
E:first-child | 作為父元素的第一個子元素的元素E。與E:nth-child(1)等同 |
E:last-child | 作為父元素的最後一個子元素的元素E。與E:nth-last-child(1)等同 |
E:root | 選擇匹配元素E所在文件的根元素。在HTML文件中,根元素始終是html,此時該選擇器與html型別選擇器匹配的內容相同 |
E F:nth-child(n) | 選擇父元素E的第n個子元素F。其中n可以是整數(1,2,3)、關鍵字(even,odd)、可以是公式(2n+1),而且n值起始值為1,而不是0. |
E F:nth-last-child(n) | 選擇父元素E的倒數第n個子元素F。此選擇器與E:nth-child(n)選擇器計算順序剛好相反,但使用方法都是一樣的,其中:nth-last-child(1)始終匹配最後一個元素,與last-child等同 |
E:nth-of-type(n) | 選擇父元素內具有指定型別的第n個E元素 |
E:nth-last-of-type(n) | 選擇父元素內具有指定型別的倒數第n個E元素 |
E:first-of-type | 選擇父元素內具有指定型別的第一個E元素,與E:nth-of-type(1)等同 |
E:last-of-type | 選擇父元素內具有指定型別的最後一個E元素,與E:nth-last-of-type(1)等同 |
E:only-child | 選擇父元素只包含一個子元素,且該子元素匹配E元素 |
E:only-of-type | 選擇父元素只包含一個同類型子元素,且該子元素匹配E元素 |
E:empty | 選擇沒有子元素的元素,而且該元素也不包含任何文字節點 |
否定偽類選擇器
選擇器 | 功能描述 |
---|---|
E:not(F) | 匹配所有除元素F外的E元素 |
總結
CSS 可以說是前端的基本技能,希望我們都能夠通過 CSS 為自己繪製色彩繽紛的前端生涯!
~
- ~
- 本文完
學習有趣的知識,結識有趣的朋友,塑造有趣的靈魂!
大家好!我是〖程式設計三昧〗的作者 隱逸王,我的公眾號是『程式設計三昧』,歡迎關注,希望大家多多指教!
知識與技能並重,內力和外功兼修,理論和實踐兩手都要抓、兩手都要硬!