即將推出的CSS4 Level 4 Selectors(第4級選擇器)
注* CSS4草案發布了。
是時侯學習一些新的CSS,不是嗎?
我們都習慣去學一個又一個的新前端框架,但是我們常常忘記了,作為我們每天使用的網路核心語言CSS本身也在不斷地推出一些新功能。
W3C編輯草案
從1月15日的CSS Selectors Level 4 draft 草案描述了一次CSS的飛躍。
在我們開始之前,你應該知道:本文中的CSS,很多都無法在瀏覽器中工作。即使是最新的瀏覽器。這是因為,它們還是一些草案-處於起草階段。 level 4 selectors草案於2011年開始,第四版經過大量的討論而最終制定。
所以,這是什麼意思?這意味著,在不久的將來,我們可能看到大部分這些功能都將實現,很多將在Chrome和Firefox瀏覽器的開發版本中提供。
讓我們來看看有哪些新東西!
1. :not(.warning, .alert)
我們在第3級選擇器已經見過這個 :not 了。然而Level 4將允許與更復雜的引數匹配。
先前,not:只能單獨使用,不能被組合。例如,在Level 3(CSS3)中,你不能這樣做:
a:not([href*="somesite.com"]) { }
它會選擇所有地址中不包含somesite.com的連結。但是在新草案中,這樣是允許的。
下面是另外一個例子,選擇不在col樣式(Bootstrap 流式列布局樣式)下的的a連結標籤,和除去那些包含img圖片的a標籤
a:not([class|="col"]>a, :has(img)) { }
此外,這選擇器還能這樣寫,不選擇那些後面還跟著另一個DIV的DIV。(選擇同級最後一個DIV)
div:not(div+div) { }
2. :has(div, p, > a)
:has 偽元素選擇器允許您選擇帶有指定子元素的父級元素。例如,要選擇帶有影象子元素為的連結,你可以使用下面的語法:
a:has(img) { }
然而 :has 不侷限於簡單的選擇器。你可以與:not 和 :nth-* 選擇器相結合。
例如,我們的選擇有超過十行的表元素:
table:has(tr:nth-of-type(11)) { }
:has() 和 :not() 結合使用
選擇最後一個元素不是footer的body
body:not(:has(footer:last-child)) { }
3. :any-link
目前,我們可以使用:link和:visited表明連結的訪問狀態。這個更進一步,它會檢查href的是否在使用者的瀏覽歷史中存在,以確定是否一個給定的連結是否已被訪問。
:link, :visited { color: blue; }
建議用 level 4 選擇器,可以直接這樣應用,上述程式碼等價於:
:any-link { color: blue; }
4. :scoped
直到level 4選擇器,CSS被賦予一個全域性範圍。換句話說,如果你新增下面的CSS:
div { color: #444; }
所有的div將應用的 color:#444 的樣式規則(這裡假設沒有被複寫的情況下)。Level 4選擇器 允許將樣式和風格限定於一個元素標籤內:
<section> <h2>This is outside the scope.</h2> <aside> <style scoped> h2 { font-size: 2rem; } </style> <h2>This is within the scope</h2> </aside> </section>
在這個例子中,我們已將應用範圍到限定在aside元素中。在這種標記風格將只適用於父元素下的子元素。
5. :matches(selector1, selector2)
:matches 偽元素選擇器可以讓我們檢查,一個元素所有在列表中匹配的子元素。例如,如果你想針對所有article下的,段落和H2標籤和連結,你可以這樣寫:
article :matches(h2, a, p) { }
這取代了以前更加詳細的語法:
article a, article h2, article p { }
6. 延伸選擇器>>
你可能熟悉的空格字元讓我們應用到元素的後代上,比如一個div內的所有連結:
div a { }
但是到現在為止,我們還沒有看到一個明確的後代選擇符。 level 4 新增了一個 >>
但是請注意,這會導致不必要的多餘的字元,它與一個空格是等價的。
7. Table In-Column 選擇器
這是給table元素新加的一個功能,我們先來看一個基本的table表格:
<table> <colgroup> <col class="id"> <col class="personnel-info" colspan="2"> </colgroup> <tr> <th>ID</th> <th>Name</th> <th>Email</th> </tr> <tbody> <tr> <td></td> <td></td> <td></td> </tr> <tr> <td></td> <td></td> <td></td> </tr> <tr> <span class="c"><!-- etc --></span> </tr> </tbody> </table>
給水平分組元素(即:同一行中)應用樣式很簡單。但給垂直的元素是整體應用樣式有些麻煩。
你為了給 personnel-info 這一列新增樣式風格,可以使用Level 4的 || 選擇符。在||選擇符可以針對一列下的TD元素應用樣式,如:
.personnel-info || td { }
結論
Level 4封裝的選擇器功能非常強大。但是這些草稿還沒有完全定稿,還有變化的可能,當然,他們正式釋出的時侯,我們將再次介紹!
原文地址: webdesign.tutsplus.com
相關文章
- 盤點 CSS Selectors Level 4 中新增的選擇器CSS
- [譯]19個CSS level 4 選擇器CSS
- CSS-選擇器4-後代選擇器CSS
- 【CSS】【4】CSS選擇器練習CSS
- v-region 2.2.2 - 基於 Vue2 的中國行政區劃選擇器(4 級聯動城市選擇器)Vue
- 新版加強Linux檔案系統Ext4即將推出(轉)Linux
- CSS LEVEL4CSS
- 4月10日學習筆記——jQuery選擇器筆記jQuery
- CSS選擇器 4 中包括了哪些新東西?CSS
- jQuery使用總結-CorejQuerySelectors選擇器二3/4jQuery
- 10046 等待事件可設定的4個級別(level 1,4,8,12)事件
- 第17天:CSS引入、選擇器優先順序(中級)CSS
- 第 13 章 CSS 選擇器[上]CSS
- 選擇ERP系統整合器的4R原則(轉)
- CSS父級選擇器 :has()CSS
- Selenium4自動化測試6--控制元件獲取資料--下拉框級聯選擇、checkbox選擇、時間選擇器控制元件
- 第 4 章 程式計數器
- 蘋果即將推出的AirPods 3蘋果AI
- SSD4選擇題做題工具
- Python-SQLAlchemy:第4節:級聯PythonSQL
- iPhone 7或將推出三個版本:4/4.7/5.5iPhone
- 小米盒子4即將釋出:工信部配置資訊曝光
- USB 4規範標準正式釋出 基於USB 4的裝置即將上市
- 樂視手機將於4月28日釋出 同步推出全新超級電視
- oracle資料庫事務transaction隔離級別isolation level的選擇依據Oracle資料庫
- 002---選擇器(標籤選擇器、類選擇器、id選擇器、偽類選擇器、萬用字元選擇器)字元
- 索尼PS4即將停產 下月釋出兩款全新PS4
- 看看 Laravel 9 即將推出什麼Laravel
- jQuery選擇器介紹:基本選擇器、層次選擇器、過濾選擇器、表單選擇器jQuery
- 《JVM第4課》程式計數器JVM
- 10年後,《超級兄弟:劍與巫術》的開發者即將推出新作
- jQuery選擇器——基本選擇器jQuery
- 仿淘寶,京東多級地址選擇器
- 基本CSS選擇器,複合選擇器,後代選擇器CSS
- 先睹為快,即將推出的AirPods 3AI
- Linux中國即將推出積分商城!Linux
- jQuery選擇器——層次選擇器jQuery
- webpack4入門筆記——打包模式選擇Web筆記模式