CSS結構偽類選擇器之否定偽類:not()

結構偽類選擇器是針對 HTML 層級結構的偽類選擇器。

常用的結構化偽類選擇器有:

:root選擇器、:not選擇器、:only-child選擇器、:first-child選擇器、:last-child選擇器、

:nth-child選擇器、:nth-child(n)選擇器、:nth-last-child(n)選擇器、:nth-of-type(n)選擇器、

:empty選擇器、:target選擇器。

這些基本上都很常用,今天著重說下:否定偽類:not()

否定偽類特別有用,在css中, :not選擇器 用于匹配非指定元素/選擇器的每個元素,語法格式:

:not(selector)

比如:假設我想選擇所有 div,除了 id 為 的那個 container。下面代碼:

div:not(#container) {color: blue;
}
否定偽類:not()的幾個特點:
  1. :not()的優先級是 0,因為它的優先級是由括號里面的參數來定的;
  2. :not()偽類可以同時判斷多個選擇器,比如input:not(:disabled):not(:read-only)
    {},表示匹配不屬于禁用狀態同時也不處于只讀狀態的 input 元素;
  3. not()支持多個表達式,比如:.cs-li:not(li, dd)
    {},還有另外一種寫法:.cs-li:not(li):not(dd) {}。但是這兩種寫法,要考慮兼容性問題;
  4. :not()也支持選擇符,比如:input:not(.a > .b) { border: red solid; };

今天遇到一個問題,想把首頁除了logo之外的其他元素變黑白,但是用否定偽類卻出現很奇怪的問題,其他有部分元素還是彩色的,代碼如下:

.home div:not(.logo){-webkit-filter: grayscale(100%); -moz-filter: grayscale(100%); -ms-filter: grayscale(100%); -o-filter: grayscale(100%); filter: grayscale(100%);filter:progid:DXImageTransform.Microsoft.BasicImage(grayscale=1);  _filter:none; filter: gray;
}

然后改為:效果一樣

.home div:not(.header > .logo){-webkit-filter: grayscale(100%); -moz-filter: grayscale(100%); -ms-filter: grayscale(100%); -o-filter: grayscale(100%); filter: grayscale(100%);filter:progid:DXImageTransform.Microsoft.BasicImage(grayscale=1);  _filter:none; filter: gray;
}

后來換成另一種寫法卻可以,代碼如下:

.home div:not(.header):not(.logo){-webkit-filter: grayscale(100%); -moz-filter: grayscale(100%); -ms-filter: grayscale(100%); -o-filter: grayscale(100%); filter: grayscale(100%);filter:progid:DXImageTransform.Microsoft.BasicImage(grayscale=1);  _filter:none; filter: gray;
}

后來試驗了一下,多少層級關系就要寫多少個:not(),例如:

<div class="header"><div class="box"><div class="logo"></div></div>
</div>

就要寫為:

.home div:not(.header):not(.box):not(.logo)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/214108.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/214108.shtml
英文地址,請注明出處:http://en.pswp.cn/news/214108.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

046:vue通過axios調用json地址數據的方法

第046個 查看專欄目錄: VUE ------ element UI 專欄目標 在vue和element UI聯合技術棧的操控下&#xff0c;本專欄提供行之有效的源代碼示例和信息點介紹&#xff0c;做到靈活運用。 &#xff08;1&#xff09;提供vue2的一些基本操作&#xff1a;安裝、引用&#xff0c;模板使…

Userwindows pc電腦生成一個電腦唯一機器碼

在Windows PC上生成一個唯一標識碼通常涉及到計算機硬件和軟件的信息。有一些常見的方式可以獲取到一個較為唯一的標識碼&#xff1a; 1. 硬件信息&#xff1a; 可以通過獲取計算機的硬件信息來生成一個唯一標識碼。這可能包括CPU序列號、硬盤序列號、網卡MAC地址等。但請注意…

ffmpeg過濾器filter理論與實戰

文章目錄 前言一、DirectShow1、簡介2、程序基本結構3、架構 二、過濾器1、視頻過濾器 -vf2、音頻過濾器 -af3、過濾器鏈&#xff08;Filterchain&#xff09;4、過濾器圖&#xff08;Filtergraph&#xff09;①、基本語法②、Filtergraph 的分類 5、結構體間的關系圖 三、過濾…

Vue項目中WebSocket封裝

WEBSOCKET 封裝引入初始化使用 封裝 utils下建立WebSocketManager.js class WebSocketManager {constructor() {this.url null;this.websocket null;this.isConnected false;this.listeners {onopen: [],onmessage: [],onclose: [],onerror: [],};this.reconnectionOptio…

QML如何與C++層進行信號槽通訊

//QML端為槽函數 //其中serial為C類的對象 //CSerial serial(暫且可以這么理解) QML&#xff1a; Connections{ target: serial onStringReceived:{ console.log("receive:"receiveString) } } //C端為信號 //C //C類…

kafka 常用命令【學習筆記】

Kafka 環境變量配置 export KAFKA_HOME/opt/cloudera/parcels/CDH-6.3.2-1.cdh6.3.2.p0.1605554/lib/kafka export PATH P A T H : PATH: PATH:KAFKA_HOME/bin 查看主題 ./kafka-topics.sh --list --zookeeper localhost:2181 創建主題 ./kafka-topics.sh --create --zook…

保研畢業論文查重率多少通過【保姆教程】

大家好&#xff0c;今天來聊聊保研畢業論文查重率多少通過&#xff0c;希望能給大家提供一點參考。 以下是針對論文重復率高的情況&#xff0c;提供一些修改建議和技巧&#xff1a; 保研畢業論文查重率多少通過 在保研過程中&#xff0c;畢業論文的查重率是衡量學術誠信和論文…

JAVA8新特性之函數式編程詳解

JAVA8新特性之函數式編程詳解 前言一、初步了解函數式接口二、 Lambda表達式2.1 概述2.2 lambda省略規則2.3 lambda省略常見實例2.4 lambda表達式與函數式接口 三、 Stream流3.1 stream流的定義3.2 Stream流的特點3.3 Stream流的三個步驟3.4 Stream 和 Collection 集合的區別&a…

【HarmonyOS開發】拖拽動畫的實現

動畫的原理是在一個時間段內&#xff0c;多次改變UI外觀&#xff0c;由于人眼會產生視覺暫留&#xff0c;所以最終看到的就是一個“連續”的動畫。UI的一次改變稱為一個動畫幀&#xff0c;對應一次屏幕刷新&#xff0c;而決定動畫流暢度的一個重要指標就是幀率FPS&#xff08;F…

【帶頭學C++】----- 九、類和對象 ---- 9.12 C++之友元函數(9.12.1---12.4)

??????????????????????創做不易&#xff0c;麻煩點個關注???????????????????????? ??????????????????文末有驚喜&#xff01;獻舞一支&#xff01;???????????????????? 目錄 9.12…

TypeError: Cannot set properties of undefined (setting ‘xx‘)

在寫代碼中經常會遇到TypeError: Cannot set properties of undefined (setting ‘xx‘)&#xff0c;這個問題。 一般出現的場景&#xff1a;在調用接口訪問后端數據時&#xff0c;前端渲染顯示空白&#xff0c;并報此錯。例如&#xff0c;我在調用高德地圖&#xff0c;輸入經…

五:爬蟲-數據解析之xpath解析

三&#xff1a;數據解析之xpath解析 1.xpath介紹&#xff1a; ? xpath是XML路徑語言&#xff0c;它可以用來確定xml文檔中的元素位置&#xff0c;通過元素路徑來完成對元素的查找&#xff0c;HTML就是XML的一種實現方式&#xff0c;所以xpath是一種非常強大的定位方式? XPa…

vue2 element-ui select下拉框 選擇傳遞多個參數

<el-select v-model"select" slot"prepend" placeholder"請選擇" change"searchPostFn($event,123)"> <el-option :label"item.ziDianShuJu" :value"{value:item.id, label:item.ziDianShuJu}" v-for&qu…

Ubuntu系統使用快速入門實踐(七)——軟件安裝與使用(5)

Ubuntu系統使用快速入門實踐系列文章 下面是Ubuntu系統使用系列文章的總鏈接&#xff0c;本人發表這個系列的文章鏈接均收錄于此 Ubuntu系統使用快速入門實踐系列文章總鏈接 下面是專欄地址&#xff1a; Ubuntu系統使用快速入門實踐系列文章專欄 文章目錄 Ubuntu系統使用快速…

crypto-js加密、解密與node Crypto加解密模塊的應用

前端用crypto-js實現加解密&#xff0c;node端用Crypto模塊&#xff0c;兩者想要相同結果的話&#xff0c;就要保持加密密鑰和加密算法一致。 crypto-js加密、解密 參考&#xff1a; 『crypto-js 加密和解密』 前端使用CryptoJS加密解密 // DES算法 import CryptoJS from cryp…

【unity】【WebRTC】從0開始創建一個Unity遠程媒體流app-構建可同步場景

【背景】 最近在研究遠程畫面&#xff0c;所以就實踐了一下。技術采用我認為比較合適的WebRTC。 這篇文章的基礎是我的另一篇博文&#xff0c;如果希望順利完成本篇操作&#xff0c;請先關注我后查詢我的如下博文&#xff1a; 【WebRTC】【Unity】Unity Web RTC1-Unity中簡單實…

Docker架構及常用的命令

一、初識Docker 1、 docker是一個快速交付應用、運行應用的技術&#xff0c;具備下列優勢&#xff1a; 可以將程序及其依賴、運行環境一起打包為一個鏡像&#xff0c;可以遷移到任意Linux操作系統運行時利用沙箱機制形成隔離容器&#xff0c;各個應用互不干擾啟動、移除都可以…

邊緣智能網關如何應對環境污染難題

隨著我國工業化、城鎮化的深入推進&#xff0c;包括大氣污染在內的環境污染防治壓力繼續加大。為應對環境污染防治難題&#xff0c;佰馬綜合邊緣計算、物聯網、智能感知等技術&#xff0c;基于邊緣智能網關打造環境污染實時監測、預警及智能干預方案&#xff0c;可應用于大氣保…

銀行數據分析入門篇:信用卡全生命周期分析,到底應該怎么做?

最近有朋友向我咨詢銀行信貸業務的數據分析&#xff0c;就看了很多案例&#xff0c;剛好看到一個信用卡全生命周期分析的案例&#xff0c;做得很詳細又通俗易懂&#xff0c;基本上可以直接復制套用&#xff0c;所以特地分享給大家。 本文主要分享作者整個分析作品的思路&#x…

Unity對象池

標題&#xff1a;Unity對象池技術詳解 一、引言 在Unity游戲開發中&#xff0c;我們經常需要創建大量的游戲對象&#xff0c;如子彈、敵人和道具等。然而&#xff0c;頻繁地創建和銷毀這些對象會消耗大量的系統資源&#xff0c;影響游戲的性能。為了解決這個問題&#xff0c;…