我很難弄清楚為什么以下代碼在Safari中顯示為藍色,而在Chrome和Firefox中顯示為紅色。em:not(div) { color: red}em:not(p div) { color: blue}<p> <em>FOO</em></p> 運行代碼段https://jsfiddle.net/hzcLpf9L/顯然,Chrome和Firefox不支持:not()其中具有多個級別的CSS選擇器。(可能的錯誤?)我非常喜歡:not()選擇器,并且使用Safari開發,因此當我在Chrome上找到我的網站時,我幾乎心臟病發作了。對于為什么會發生這種奇怪行為的任何解釋將不勝感激。
3 回答

隔江千里
TA貢獻1906條經驗 獲得超10個贊
Safari最近發布了的4級版本:not(),該版本允許使用復雜的參數選擇器,使其與jQuery迄今為止的非標準實現相當。請參閱發行說明。在目前的化身:not()只允許一個參數一個簡單的選擇,這樣一個復雜的選擇一樣p div不會在今天的瀏覽器的設計工作。
復雜選擇器是由一個或多個復合選擇器組成的表達式,這些選擇器由諸如后代>,~和的組合符分隔+。復合選擇器是一個或多個簡單選擇器的序列。div是一個由一個簡單選擇p div器組成的復合選擇器,并且是一個由兩個復合選擇器組成的復雜選擇器(每個復合選擇器由一個簡單選擇器組成),由后代組合器分隔。
目前尚不知道何時將其引入其他瀏覽器,盡管目前尚不太可能:not()更改的新規范-當前的4級定義不費吹灰之力,并且如果原始WebKit菌株足夠大膽地實現它,那么進入其他菌株(包括Blink)實際上只是時間問題。
自FPWD進行了將近5年的苦苦等待之后,我們實際上可能很快就會真正看到選擇器4的CR??紤]我抽。

搖曳的薔薇
TA貢獻1793條經驗 獲得超6個贊
因此,從最新的Boostrap滑過的以下表達式已損壞:.btn-group > .btn:not(:last-child):not(.dropdown-toggle), .btn-group > .btn-group:not(:last-child) > .btn { ...styles here... }
- 3 回答
- 0 關注
- 495 瀏覽
相關問題推薦
添加回答
舉報
0/150
提交
取消