日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當(dāng)前位置:首頁 > 科技  > 軟件

作用域 CSS 回來了,你知道嗎?

來源: 責(zé)編: 時間:2023-09-28 10:08:04 324觀看
導(dǎo)讀幾年前,消失的作用域 CSS,如今它回來了,而且比以前的版本要好得多。更好的是,W3C規(guī)范基本穩(wěn)定,現(xiàn)在Chrome中已經(jīng)有一個工作原型。我們只需要社區(qū)稍微關(guān)注一下,引誘其他瀏覽器構(gòu)建它們的實現(xiàn),并完成這項工作。這是什么思路?作

7l928資訊網(wǎng)——每日最新資訊28at.com

幾年前,消失的作用域 CSS,如今它回來了,而且比以前的版本要好得多。7l928資訊網(wǎng)——每日最新資訊28at.com

更好的是,W3C規(guī)范基本穩(wěn)定,現(xiàn)在Chrome中已經(jīng)有一個工作原型。我們只需要社區(qū)稍微關(guān)注一下,引誘其他瀏覽器構(gòu)建它們的實現(xiàn),并完成這項工作。7l928資訊網(wǎng)——每日最新資訊28at.com

這是什么思路?

作用域為CSS帶來了兩個關(guān)鍵點:7l928資訊網(wǎng)——每日最新資訊28at.com

  • 更好地控制哪些選擇器針對哪些元素(即更好地操作級聯(lián))。
  • 一組樣式可以基于DOM中的位置覆蓋另一組樣式。

局部樣式允許你在頁面上的單個組件內(nèi)包含一組樣式。你可以使用.title選擇器,它只在Card組件內(nèi)工作,并使用另一個.title選擇器,它只在 Accordion 中工作。你可以阻止一個組件的選擇器針對子組件中的元素,或者如果需要,也可以允許它們到達。7l928資訊網(wǎng)——每日最新資訊28at.com

你不再需要BEM風(fēng)格的類名。7l928資訊網(wǎng)——每日最新資訊28at.com

此外,近度在級聯(lián)中變成了一等公民。如果兩個組件針對同一個元素(具有相同的特異性),內(nèi)部組件的樣式將覆蓋外部組件的樣式。7l928資訊網(wǎng)——每日最新資訊28at.com

它是如何工作的?

一切都始于@scope規(guī)則和一個選擇器,如下:7l928資訊網(wǎng)——每日最新資訊28at.com

@scope (.card) {  /* 將以下樣式局限于`.card`內(nèi)部 */  :scope {    padding: 1rem;    background-color: white;  }  .title {    font-size: 1.2rem;    font-family: Georgia, serif;  }}

這些樣式都限制在.card元素中。:scope是一個特殊的偽類,針對.card元素本身,.title針對標(biāo)題內(nèi)部的標(biāo)題。7l928資訊網(wǎng)——每日最新資訊28at.com

@scope規(guī)則本身不增加這些選擇器的特異性,所以它們都是(0, 1, 0)。是的,特異性仍然很重要,但這是好事??。稍后再說。7l928資訊網(wǎng)——每日最新資訊28at.com

此時,你可以使用普通的后代選擇器來實現(xiàn)這一點。但當(dāng)你在范圍內(nèi)應(yīng)用內(nèi)部邊界或在頁面上重疊多個范圍時,新的、以前不可能的選項開始出現(xiàn)。讓我們看看它們是怎么做的...7l928資訊網(wǎng)——每日最新資訊28at.com

內(nèi)部范圍邊界

假設(shè)你預(yù)計將其他組件放入你的Cards中,所以你不希望.title 選擇器針對除屬于Card的那個標(biāo)題之外的任何東西。為此,你在范圍上設(shè)置了一個內(nèi)部邊界,如下:7l928資訊網(wǎng)——每日最新資訊28at.com

@scope (.card) to (.slot) {  /* 限定的樣式只在`.card`內(nèi)部,但不在`.slot`內(nèi)部 */  :scope {    padding: 1rem;    background-color: white;  }  .title {    font-size: 1.2rem;    font-family: Georgia, serif;  }}

把這里的 to 關(guān)鍵字看作 直到:這個范圍是從.card到.slot定義的?,F(xiàn)在,沒有一個局限的選擇器會針對Card的.slot元素內(nèi)部的任何東西。所以你可以這樣構(gòu)建你的卡片:7l928資訊網(wǎng)——每日最新資訊28at.com

<div class="card">  <h3 class="title">Moon lander</h3>  <div class="slot">    <!-- 局部樣式不會針對這里的任何東西! -->  </div></div>

范圍的影響受到了限制,使其不針對.slot內(nèi)的任何東西。這樣,你可以嵌套兩個范圍,每個范圍都可以使用相同的通用標(biāo)題類名,而不會發(fā)生沖突。實際上,你可能根本不再需要類名了:7l928資訊網(wǎng)——每日最新資訊28at.com

@scope (.card) to (.slot) {  h3 {    font-size: 1.2rem;    font-family: Georgia, serif;  }}@scope (.accordion) to (.slot) {  h3 {    font-family: Helvetica, sans-serif;    text-transform: uppercase;    letter-spacing: 0.01em;  }}

你可以在 Card 內(nèi)部放一個 Accordion,或者在 Accordion 內(nèi)部放一個Card,它們各自的樣式不會發(fā)生沖突。7l928資訊網(wǎng)——每日最新資訊28at.com

這被俗稱為 甜甜圈范圍,因為范圍中有一個洞。(如果內(nèi)部邊界選擇器針對多個元素,它也可以有多個洞。)7l928資訊網(wǎng)——每日最新資訊28at.com

Miriam Suzanne 建議使用這種方式是持續(xù)使用data-*屬性和屬性選擇器作為你的范圍:7l928資訊網(wǎng)——每日最新資訊28at.com

@scope ([data-scope='media']) to (:scope [data-scope]) {  /* 限定的樣式在這里 */}

近度優(yōu)先 Proximity precedence

另一個方面是近度的概念:來自內(nèi)部范圍的樣式將覆蓋來自外部范圍的樣式。想象你有這樣兩個范圍:7l928資訊網(wǎng)——每日最新資訊28at.com

@scope (.green) {  p {    color: green;  }}@scope (.blue) {  p {    color: blue;  }}

將以下內(nèi)容應(yīng)用于HTML。這里沒有內(nèi)部范圍約束,所以兩個p選擇器都針對這里的內(nèi)部段落。在這種情況下,內(nèi)部范圍總是優(yōu)先:7l928資訊網(wǎng)——每日最新資訊28at.com

<div class="green">  <p>我是綠色的</p>  <div class="blue">    <p>我是藍色的</p>  </div></div><div class="blue">  <p>我是藍色的</p>  <div class="green">    <p>但我是綠色的</p>  </div></div>

注意這目前只在Chrome中有效,需要在chrome://flags中啟用實驗性Web平臺功能標(biāo)志。7l928資訊網(wǎng)——每日最新資訊28at.com

你可以在DevTools中檢查,看到每個范圍是如何根據(jù)其最近的接近性來覆蓋另一個的:7l928資訊網(wǎng)——每日最新資訊28at.com

7l928資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-11849-0.html作用域 CSS 回來了,你知道嗎?

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 圖文并茂解釋 Java JVM、JRE 和 JDK

下一篇: Go 1.21.0 新增標(biāo)準(zhǔn)庫 Slices 和 Mps 詳解

標(biāo)簽:
  • 熱門焦點
  • vivo TWS Air開箱體驗:真輕 臻好聽

    在vivo S15系列新機的發(fā)布會上,vivo的最新款真無線藍牙耳機vivo TWS Air也一同發(fā)布,本次就這款耳機新品給大家?guī)硪粋€簡單的分享。外包裝盒上,vivo TWS Air保持了vivo自家產(chǎn)
  • K6:面向開發(fā)人員的現(xiàn)代負載測試工具

    K6 是一個開源負載測試工具,可以輕松編寫、運行和分析性能測試。它建立在 Go 和 JavaScript 之上,它被設(shè)計為功能強大、可擴展且易于使用。k6 可用于測試各種應(yīng)用程序,包括 Web
  • 三言兩語說透設(shè)計模式的藝術(shù)-單例模式

    寫在前面單例模式是一種常用的軟件設(shè)計模式,它所創(chuàng)建的對象只有一個實例,且該實例易于被外界訪問。單例對象由于只有一個實例,所以它可以方便地被系統(tǒng)中的其他對象共享,從而減少
  • .NET 程序的 GDI 句柄泄露的再反思

    一、背景1. 講故事上個月我寫過一篇 如何洞察 C# 程序的 GDI 句柄泄露 文章,當(dāng)時用的是 GDIView + WinDbg 把問題搞定,前者用來定位泄露資源,后者用來定位泄露代碼,后面有朋友反
  • 微軟邀請 Microsoft 365 商業(yè)用戶,測試視頻編輯器 Clipchamp

    8 月 1 日消息,微軟近日宣布即將面向 Microsoft 365 商業(yè)用戶,開放 Clipchamp 應(yīng)用,邀請用戶通過該應(yīng)用來編輯視頻。微軟于 2021 年收購 Clipchamp,隨后開始逐步整合到 Microsof
  • JVM優(yōu)化:實戰(zhàn)OutOfMemoryError異常

    一、Java堆溢出堆內(nèi)存中主要存放對象、數(shù)組等,只要不斷地創(chuàng)建這些對象,并且保證 GC Roots 到對象之間有可達路徑來避免垃 圾收集回收機制清除這些對象,當(dāng)這些對象所占空間超過
  • 使用AIGC工具提升安全工作效率

    在日常工作中,安全人員可能會涉及各種各樣的安全任務(wù),包括但不限于:開發(fā)某些安全工具的插件,滿足自己特定的安全需求;自定義github搜索工具,快速查找所需的安全資料、漏洞poc、exp
  • 7月4日見!iQOO 11S官宣:“雞血版”驍龍8 Gen2+200W快充加持

    上半年已接近尾聲,截至目前各大品牌旗下的頂級旗艦都已悉數(shù)亮相,而下半年即將推出的頂級旗艦已經(jīng)成為了數(shù)碼圈爆料的主流,其中就包括全新的iQOO 11S系
  • Windows 11發(fā)布,微軟一改往常對老機型開放的態(tài)度

    距離 Windows 11 發(fā)布已經(jīng)過去一周,在過去一周里,很多數(shù)碼愛好者圍繞其對 Android 應(yīng)用的支持、對老機型的升級問題展開了激烈討論。與以往不同的是,在這次大
Top 主站蜘蛛池模板: 永宁县| 景泰县| 长治市| 安国市| 长宁县| 镇平县| 荥经县| 苏尼特左旗| 建始县| 贞丰县| 裕民县| 通渭县| 汕尾市| 新绛县| 满城县| 德昌县| 河源市| 双桥区| 东宁县| 江北区| 尚义县| 新沂市| 石泉县| 历史| 海安县| 新泰市| 宁安市| 汝城县| 美姑县| 阿勒泰市| 宁波市| 安康市| 乡城县| 江山市| 清河县| 肇源县| 遵化市| 永仁县| 南昌县| 兰西县| 曲松县|