亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

針對父/祖先元素的css否定偽類:no()

針對父/祖先元素的css否定偽類:no()

慕哥6287543 2019-06-24 13:22:17
針對父/祖先元素的css否定偽類:no()這簡直把我逼瘋了:HTML:<div><h1>Hello World!</h1></div>CSS:*:not(div) h1 { color: #900; }這上面寫著,“選擇所有h1元素的祖先不是div元素.?因此,“HelloWorld!”不應該被染成紅色,但它仍然是紅色的。對于上面的標記,添加子組合器可以工作:*:not(div) > h1 { color: #900; }但不影響h1如果它不是div元素。例如:<div><article><h1>Hello World!</h1></article></div>所以我想指出h1元素的后代,而不是子元素。div元素。有人嗎?
查看完整描述

2 回答

?
繁星點點滴滴

TA貢獻1803條經驗 獲得超3個贊

這上面寫著,“選擇所有h1元素的祖先不是div元素.“

的確如此。但在典型的HTML文檔中,每一,每個 h1至少有兩個祖先div元素-這些祖先不是別人bodyhtml.

這是嘗試使用:not()它只是不能可靠地工作,特別是當:not()不受其他選擇器(例如類型選擇器或類選擇器)的限制。.foo:not(div)..簡單地將樣式應用于所有h1元素,并使用div h1.

在……里面選擇器4:not()已被增強以接受包含組合子(包括后代組合子)的完整復選擇器。這是否將在快速配置文件(因此css)中實現,仍有待測試和確認,但一旦實現,則將要能夠使用它排除某些祖先的元素。由于選擇器的工作方式,為了可靠地工作,必須對元素本身而不是祖先進行否定,因此語法看起來有點不同:

h1:not(div h1) { color: #900; }

任何熟悉jQuery的人都會很快指出這個選擇器現在jQuery中工作。..這是第三選區之間的一些差距:not()和jQuery的:not(),選擇器4試圖糾正。


查看完整回答
反對 回復 2019-06-24
?
SMILET

TA貢獻1796條經驗 獲得超4個贊

這個<html>元素不是<div>..這個<body>元素不是<div>.

所以條件“有一個祖先不是<div>“對所有元素都是正確的。

除非您可以使用>(孩子)選擇者,我不認為你能做你想做的事-這是沒有道理的。在第二個例子中,<article>不是div,所以匹配*:not(div)我也是。


查看完整回答
反對 回復 2019-06-24
  • 2 回答
  • 0 關注
  • 662 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號