天天看點

html選擇器 父元素,CSS子元素選擇父元素

CSS子元素選擇父元素

釋出時間:2018-10-09 23:21,

浏覽次數:6139

, 标簽:

CSS

通常一個CSS選擇器都是從上往下選擇的,通過父元素選擇子元素,那麼能不能通過子元素選擇父元素呢?

  • 1
  • 2

如果我想選擇包含 a.active 的 li 該怎麼實作呢? 目前我們學到的CSS好像是沒有辦法的,不過今天要将的一個CSS僞類 :has()

就有這個功能,雖然還處于草案階段,但是還是可以提前了解一下。

li:has(> a.active){ color:red; }

除了表示包含,:has 還可以表示兄弟跟随關系

div:has(+ p){ color:red; }

表示選擇

标簽,前提是這個div标簽必須是被一個

緊跟着的。此外還可以與:not 一起使用

article:not(:has(a)){ color:red; }

表示不包含 的 标簽。注意這裡 :not 和 :has 的先後順序,不同順序代表不同的意思

article:has(:not(a)){ color:red; }

表示包含非 的 标簽

其實我們前面講過的 :focus-within 也是一個通過子元素選擇父元素的僞類,隻不過條件隻能是子元素是否擷取焦點, 而 :has 則更靈活和強大。

form:focus-within{ background-color:black; }

如果通過 :has 實作的話, 可以這樣寫

form:has(:focus){ background-color:black; }