元素關係選擇器
元素關係選擇器有三個:子選擇器、相鄰兄弟選擇器、通用兄弟選擇器。
比如上圖所示的例子,一看就明白了。
子選擇器用大於號》,相鄰兄弟選擇器用加號+,通用兄弟選擇器用破浪線符號~。
子選擇器
子選擇器,顧名思義,兩個標籤是父子關係。
當使用大於號》分隔兩個元素時,就表示第乙個元素是父標籤,第二個元素是子標籤。
簡單地說,子選擇器的形式就是a>b,a+b選擇的就是a後面的b。
注意:
1.子選擇器選擇的是直接的"兒子",而後代選擇器選擇的元素,可以是"兒子",也可以是"孫子"等等,只要是後代都可以。
2.子選擇器最標準的寫法,前後兩個元素和大於號都是緊鄰的,沒有空格。當然,如果你要寫空格,也不會錯,當你進行**格式化的時候,就會自動把空格去掉。
比如下面的**:
在上面的**的html結構中,類名為box的div標籤中,有兩個p元素是它的直接子元素,還有乙個div也是它的直接子元素,在這個div中,又有兩個p元素,這兩個p元素就相當於它的"孫子"。還有兩個p元素,和類名為box的div是兄弟關係。
子選擇器從ie7開始相容,相容性是很好的。基本上現在使用ie7瀏覽器的人,應該很少了。
相鄰兄弟選擇器
相鄰兄弟選擇器是兩個選擇器之間使用加號+,並且這兩個選擇器屬於同乙個父元素的子元素。
簡單的說,相鄰兄弟選擇器的形式就是a+b,a+b選擇的是a後面的b。
比如下面的**:
上面的**的html結構中,
第乙個p元素的子元素有三個,分別是乙個img元素,兩個span元素。
第二個p元素的子元素有兩個,分別是乙個img元素,乙個span元素。
最後面的兩個span元素是這兩個p元素的兄弟元素。
那麼img+span這個相鄰兄弟選擇器,選擇的就是img元素後面緊跟著的乙個span元素,其他的span元素不會被選擇。
相鄰兄弟選擇器也是從ie7開始相容。
通用兄弟選擇器
通用兄弟選擇器的形式是a~b,表示選擇a之後的所有同層級的b。
比如下面的**:
h3~span選擇的是h3標籤後面的同層級的span,注意一定得是同層級的,不是同層級的話,就不是兄弟關係了。
在上面**的html結構中,
h3前面有乙個span,就不會被選擇。
h3後面的三個span,跟這個h3是同層級,所以會被選擇。
三個span後面隔了乙個p,然後又跟了兩個span,
這兩個span跟h3也是同層級的,所以會被選擇。
最後面的div裡面的兩個span,就不會被選擇,因為跟h3不是同層級。
通用兄弟選擇器也是從ie7開始相容。
關於這三種元素關係選擇器,我就不在vscode和瀏覽器中進行演示,因為前面的知識總結和**例項,我都做了清楚的說明,就不需要再做過多的解釋。
要把知識點講的讓人看明白也不容易,再加上排版、demo演示非常耗費時間。
對於有些我覺得沒必要演示的,我就不演示了。
你可以自己寫寫**,驗證一下效果,理解會更深一些。
201809 3 元素選擇器
ccf201809的第三題 題目就不粘上來了!設計思路 首先要用乙個結構體來儲存每一行文件,有等級 標籤以及id。其次需要注意的是標籤不區分大小寫!對於選擇器,大致可以分為兩種,第一種是只有單個的標籤或者id,這種直接遍歷文件即可 也就是我們處理過後的結點陣列 第二種是分層的,這種我們需要從選擇器的...
201809 3 元素選擇器
模擬題,細心細心再細心,整個結構是乙個樹型的結構。include include include include include includeusing namespace std typedef long long ll const int inf 0x3f3f3f3f const double...
201809 3 元素選擇器
試題編號 201809 3 試題名稱 元素選擇器 時間限制 1.0s 記憶體限制 256.0mb 問題描述 注意 1 乙個元素的祖先是緊接著其上的縮排小於等於其縮排的那些元素 連續的區域 中的縮排小於其縮排的元素 沒有等於的元素,等於的元素只是起一種連線作用 2 後代選擇器只能是多個id或者是多個l...