CSS之派生選擇器(上下文選擇器)

2021-07-14 07:32:47 字數 1581 閱讀 3519

選擇器(selector)是css裡面非常重要地一部分知識。

根據我暫時淺薄地理解,css就是對乙份html**裡面的元素進行運用各種樣式。

所以,第一步就是要準確地定位你想要運用樣式的元素。

css裡面通過各種選擇器來定位元素。 css裡面選擇器有很多種,今天就只想說說 「派生選擇器」。

一聽「派生選擇器」這個名字,我真心做不到見名知義地感覺它是什麼選擇器。一看英文名叫「

contextual selectors」 ,如果直譯就叫「上下文選擇器」。雖然名字不文雅,但是我更偏向這個名字。

contexual selector是通過依據元素在其位置的上下文關係來定義樣式的。

上下文選擇器的情況有三種:後代選擇器,子元素選擇器,相鄰兄弟選擇器。 

後代選擇器(descendant selector)

eg:html**:

css**: 

h1 em

語法規則是 h1 和 em 之間有乙個空格。那麼這一條css**就會運用於包含在標籤內的所有元素。

關於後代選擇器,很重要的一點是第乙個引數和第二個引數之間的代數是可以無限的。

eg:html**:

this will be styled too.

css**:

ul em

以上css的樣式會運用於html**中兩處橘色的元素。

子選擇器(child selector)

子選擇器只會選擇某個元素的子元素,而不會擴大到任意的後代元素。

eg:html**:

css**:

h1 > strong

語法規則是h1和strong之間會有乙個「>」符號。而這個「>」和前面的h1或者是後面的strong之間的空格都是可有可無的。

在以上的例子中,第一行html**裡,元素是的子元素,所有h1 > strong這個選擇器會選擇到它。

第二行html**裡,不是的子元素,而是的孫子,所有h1 > strong這個選擇器不會選擇到它。

相鄰兄弟選擇器(adjacent sibling selector)

相鄰兄弟選擇器會選擇某一元素緊隨其後的元素,但是前提是他們擁有相同的父級。

eg:html**:

this is a heading

this will be styled.

this will not be styled.

css**:

h2 + strong  

語法規則是h2和strong之間有乙個「+」,「+」和前面的h1或者後面的strong之間的空格都是可有可無的。

在 以上例子中,第乙個strong緊鄰著h2並且他們擁有相同的父級(h1),所以h2 + strong會選擇到第乙個而不會選到第二個.

eg2:

html**:

list item 1

list item 2

list item 3

css**:

li + li

在以上的例子中li+li是選擇緊挨著li後面的第乙個,所以第乙個不會被選擇;而第二個是緊挨著第乙個li的,所有會被選擇;第三個是緊挨著第二個的,也會被選擇。

CSS 上下文選擇器

1 上下文選擇器 基於祖先或者同胞元素選擇乙個元素。標籤1 標籤2 其中,標籤2是我們想要選中的目標,而且只有在標籤1是其祖先元素的情況下才會被選中。上下文選擇器,嚴格來講,叫後代組合式選擇器,就是一組以空格分隔的標籤名。用於選擇作為指定祖先元素後代的標籤。只要有標籤在它的層次結構 上游 存在這麼乙...

CSS 派生選擇器

通過依據元素在其位置的上下文關係來定義樣式,你可以使標記更加簡潔。在 css1 中,通過這種方式來應用規則的選擇器被稱為上下文選擇器 contextual selectors 這是由於它們依賴於上下文關係來應用或者避免某項規則。在 css2 中,它們稱為派生選擇器,但是無論你如何稱呼它們,它們的作用...

CSS派生選擇器

通過依據元素在其位置的上下文關係來定義樣式,你可以使標記更加簡潔。在 css1 中,通過這種方式來應用規則的選擇器被稱為上下文選擇器 contextual selectors 這是由於它們依賴於上下文關係來應用或者避免某項規則。在 css2 中,它們稱為派生選擇器,但是無論你如何稱呼它們,它們的作用...