CSS3 層次選擇器

後代選擇器(E F)

後代選擇器也被稱做包含選擇器,所起做用就是能夠選擇某元素的後代元素,好比說:E F,前面E爲祖先元素,F爲後代元素,所表達的意思就是選擇了E元素的全部後代F元素,請注意他們之間須要一個空格隔開。這裏F無論是E元素的子元素或者是孫元素或者是更深層次的關係,都將被選中,換句話說,不論F在E中有多少層關係,都將被選中:瀏覽器

.demo li {color: blue;}

上面表示的是,選中div.demo中全部的li元素spa

全部瀏覽器都支的後代選擇器。3d

子元素選擇器(E>F)

子元素選擇器只能選擇某元素的子元素,其中E爲父元素,而F爲子元素,其中E>F所表示的是選擇了E元素下的全部子元素F。這和後代選擇器(E F)不同,在後代選擇器中F是E的後代元素,而子元素選擇器E > F,其中F僅僅是E的子元素而以。blog

ul > li {background: green;color: yellow;}

上在代碼表示選擇ul下的全部子元素li。如:bfc

IE6不支持子元素選擇器。im

相鄰兄弟元素選擇器(E + F)

相鄰兄弟選擇器能夠選擇緊接在另外一元素後的元素,並且他們具備一個相同的父元素,換句話說,EF兩元素具備一個相同的父元素,並且F元素在E元素後面,並且相鄰,這樣咱們就可使用相鄰兄弟元素選擇器來選擇F元素。demo

li + li {background: green;color: yellow; border: 1px solid #ccc;}

上面代碼表示選擇li的相鄰元素li,咱們這裏一共有十個li,那麼上面的代碼選擇了從第2個li到 10 個li,一共九個,請看效果:db

由於上面的li+li其中第二li是第一li的相鄰元素,第三個又是第二個相鄰元素,所以第三個也被選擇,依此類推,因此後面九個li都被選中了,若是咱們換過一種方式來看,可能會更好的理解一點:img

.active + li {background: green;color: yellow; border: 1px solid #ccc;}

按照前面所講的知識,這句代碼很明顯選擇了li.active後面相鄰的li元素,注意了和li.active後面相鄰的元素僅只有一個的。如圖:di

IE6不支持這個選擇器

通用兄弟選擇器(E 〜 F)

通用兄弟元素選擇器是CSS3新增長一種選擇器,這種選擇器將選擇某元素後面的全部兄弟元素,他們也和相鄰兄弟元素相似,須要在同一個父元素之中,換句話說,E和F元素是屬於同一父元素以內,而且F元素在E元素以後,那麼E ~ F 選擇器將選擇中全部E元素後面的F元素。好比下面的代碼:

.active ~ li {background: green;color: yellow; border: 1px solid #ccc;}

上面的代碼所表示的是,選擇中了li.active 元素後面的全部兄弟元素li,如圖所示:

通用兄弟選擇器和相鄰兄弟選擇器極其類似,只不過,相鄰兄弟選擇器僅選擇是元素的僅與其相鄰的後面元素(選中的僅一個元素);而通用兄弟元素選擇器,選中的是元素相鄰的後面兄弟元素,這樣提及來可能會有迷糊,你們能夠仔細看看其相鄰兄弟的效果圖。

IE6不支持這種選擇器的用法。

相關文章
相關標籤/搜索