公交车上荫蒂添的好舒服的电影-公用玩物(np双xing总受)-公用小荡货芊芊-公与妇仑乱hd-攻把受做哭边走边肉楼梯play-古装一级淫片a免费播放口

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

將近20年,CSS終于在所有現代瀏覽器實現了原生嵌套語法!!!

freeflydom
2023年8月26日 9:20 本文熱度 1202
 

引言

將近20年,CSS終于在所有現代瀏覽器實現了原生嵌套語法,是時候淘汰less/sass等預處理器了

 

CSS原生嵌套瀏覽器兼容性查看

來自 Web 開發者的呼聲

2012年4月13日,CodePen 的聯合創始人 Chris Coyier 抱怨 CSS 的類名不支持命名空間,導致要寫好多重復的選擇器。

2016年2月2日,微軟的項目經理 Kenneth Auchenberg 說如果 CSS 支持了變量和嵌套,他將不再使用預處理器。

2016年12月8日,《CSS揭秘》的作者 Lea Verou 調研了使用 CSS 預處理器的首要原因(單選題),有 1838 個人參與了投票,最終并列第一的兩個理由是嵌套和變量。她覺得是時候該重新考慮 CSS 原生嵌套的問題了。

2017年7月13日,集設計和開發才能于一身的 UI/UX 自由工作者 Sara Soueidan 說嵌套是她最想要的 CSS 功能。

2017年8月15日,node-inspect 的作者 Jan Olaf Krems 說 cssnext 把嵌套定義成了“明天的 CSS”,但他還是想看到原生的 CSS 嵌套,畢竟 JS 的生態系統已經證明避免“每個人都使用自己的半標準語言”絕對是健康的。

2018年2月23日,Lea Verou 再次發聲,說她現在還在用 CSS 預處理器寫嵌套,一旦 CSS 支持了原生嵌套,她就果斷棄用預處理。

2018年5月25日,postcss-preset-env 的作者 Jonathan Neal 再次提議重新考慮下讓 CSS 支持原生嵌套(也就是本文章的切入點),這引來了一波熱議。

在嵌套之前,每個選擇器都需要單獨聲明,相互之間沒有聯系。這會導致重復、樣式表冗余和開發體驗分散。

示例

嵌套之前的示例:

.nesting {

  color: hotpink;

}


.nesting > .is {

  color: rebeccapurple;

}


.nesting > .is > .awesome {

  color: deeppink;

}


嵌套之后,選擇器可以繼續編寫,并且與之相關的樣式規則可以在其中進行分組。

嵌套之后的示例:

.nesting {

    color: hotpink;

    

    >.is {

        color: rebeccapurple;


        >.awesome {

            color: deeppink;

        }

    }

}


 



嵌套可以幫助開發人員減少重復選擇器的需求,同時還可以將相關元素的樣式規則放在一起,提高樣式與目標HTML匹配的能力。如果在前面的示例中刪除了.nesting組件,您可以刪除整個嵌套組,而不是在文件中搜索相關的選擇器實例。

嵌套的作用

嵌套可以幫助:

  • 組織代碼

  • 減小文件大小

  • 進行重構

嵌套從Chrome 112版本開始提供支持,并且在Safari技術預覽版162中也可以嘗試使用。

更多嵌套示例

CSS嵌套規范中包含了更多示例。如果您想通過示例了解更多關于語法的內容,該規范涵蓋了各種有效和無效的示例。

理解嵌套解析器

要在CSS嵌套中取得最好的效果,我們可以研究解析器在處理嵌套時的工作原理。了解這一點,我們可以自信地嵌套樣式,而不必經常查找規則。

首先,最簡單的方法是識別觸發解析器開始消耗嵌套樣式的符號。

& @ : . > ~ + # [ *


這些符號應該看起來很熟悉。其中一些是組合器,一些是選擇器。所以最簡單的情況是,如果解析器發現您的嵌套選擇器,并且它不以這些符號之一開頭,它將失敗,并錯誤地消耗您的樣式。

![& @ : . > ~ + # *. 嵌套選擇器以這些符號之一開頭嗎?如果是,則有效。如果不是,則無效。

功能檢測

有兩種非常好的方法來檢測CSS嵌套:使用嵌套或使用@supports檢查

使用嵌套:

html {

  .has-nesting {

    display: block;

  }


  .no-nesting {

    display: none;

  }

}


使用@supports檢查:

@supports not ((nesting: normal)) {  /* 在這里使用傳統的樣式 */}



這兩種方法都依賴于嵌套的nesting功能。在支持的瀏覽器中,第一個嵌套示例將起作用,而第二個示例將被忽略。在不支持嵌套的瀏覽器中,情況正好相反。

總結

CSS嵌套使開發者能夠以更直觀和組織良好的方式編寫樣式規則。它有助于減少代碼重復、提高可讀性,并提供更好的維護性和重構能力。

使用嵌套時,確保理解如何正確放置選擇器和使用&符號來連接或附加選擇器。此外,熟悉無效的嵌套示例,以避免錯誤。

在實際使用CSS嵌套時,請記住進行功能檢測,并考慮適當的回退或替代方案,以確保在不支持嵌套的瀏覽器中也能提供一致的體驗。

最后,請記住,嵌套應該是有意義的,并且應該提高代碼的可讀性和可維護性。避免過度使用嵌套,以免引入樣式的復雜性和性能問題。使用嵌套時,請遵循一致的命名約定和最佳實踐,以確保團隊成員可以輕松理解和維護代碼。


查看原文


該文章在 2023/8/26 9:20:42 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 国产免费午夜a无码v视频 | 99久久一区二区三区免费 | 91精品国产全国免费观看蜜桃 | 岛国毛片一级一级特 | 国产一本一道久久香蕉 | 99久re热视频这里只有精品 | 91一区二区三区 | 国产精品久在线观看观看视频 | 国产一区二区日韩欧美在线 | 国产sm女在线调教视频 | 国产精品成人网址 | 精品久久久久久婷婷 | 国产精品制服丝袜电影 | 99国产高清视频在线观看 | 国产成人av一区二区三 | 国产超碰人人做人人爱电影 | av高清免费中文字幕 | 99久久国产综合精品成人影 | 国产字幕制服中文在线 | 国产在线永久视频免费下载 | 国产成人免费视频精品 | 国产精品亚洲av色欲三区 | 国产精品欧美日韩视频一区 | 99国产精品高清一区二区二区 | 99久久久无码国产精品免费了 | 91精品亚洲欧美一区二区综合 | 国产在线精品成人一 | 91精品国产午夜福利在线观看 | 国产午夜福利电影免费在线观看 | 国产成人午夜在线观看91 | 国人国产免费av影院 | 99久久久久免费精品国产 | 2025在线观看无码 | 国产欧美久久久精品影院 | 国产精品亚洲日韩欧 | heyzo无码综合 | 国产精彩视频一区二区三区 | 国产精品免费视频无码 | av片无码一区二区不卡电影 | 国产成年无码久久久久下载 | 国产极品美女在线观看网站 |