国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

目錄
關(guān)鍵要點(diǎn)
將重置提升到一個(gè)新的水平
自定義屬性
邏輯屬性
新的顏色功能
顏色調(diào)整
HWB顏色表示法
gray() 函數(shù)
總結(jié)
關(guān)於使用PostCSS啟用即將推出的CSS功能的常見問題
首頁(yè) web前端 css教學(xué) 啟用PostCSS即將到來(lái)的CSS功能

啟用PostCSS即將到來(lái)的CSS功能

Feb 21, 2025 am 09:30 AM

Enabling Upcoming CSS Features with PostCSS

承接上一篇文章《PostCSS指南:改進(jìn)選擇器和媒體查詢》,本文將探討更多擴(kuò)展CSS功能的PostCSS插件。前文側(cè)重於通過擴(kuò)展選擇器和媒體查詢來(lái)改進(jìn)樣式表的結(jié)構(gòu),而本文將重點(diǎn)介紹如何實(shí)現(xiàn)即將推出的規(guī)範(fàn)中的新屬性和值。本文介紹的插件實(shí)現(xiàn)了不同的功能,可以根據(jù)您的需求有效地一起或單獨(dú)使用。

我們先從我最喜歡的插件開始。

關(guān)鍵要點(diǎn)

  • PostCSS插件可用於實(shí)現(xiàn)即將推出的CSS規(guī)範(fàn)中的新屬性和值,有效地?cái)U(kuò)展CSS的功能。這些插件可以根據(jù)開發(fā)人員的需求一起或單獨(dú)使用。
  • PostCSS允許開發(fā)人員在瀏覽器正式實(shí)現(xiàn)之前使用未來(lái)的CSS功能。 postcss-initial插件增加了對(duì)initial值和all: initial組合的支持,而postcss-autoreset插件會(huì)自動(dòng)重置塊級(jí)和組件級(jí)元素的樣式。
  • postcss-color-function插件實(shí)現(xiàn)了新的color()函數(shù),允許開發(fā)人員使用一個(gè)或多個(gè)“顏色調(diào)整器”函數(shù)來(lái)修改基礎(chǔ)顏色。 postcss-color-hwb插件實(shí)現(xiàn)了新的hwb()函數(shù),用於定義HWB顏色;postcss-color-gray插件實(shí)現(xiàn)了gray()函數(shù)的polyfill。
  • PostCSS提供了一個(gè)很有前景的機(jī)會(huì)來(lái)儘早採(cǎi)用和評(píng)估新的CSS功能。建議開發(fā)人員以全新的視角編寫樣式表,並列出可用的、能提高生產(chǎn)效率的功能。

將重置提升到一個(gè)新的水平

CSS3引入了兩個(gè)不錯(cuò)的功能:initial值和all屬性。 initial值與inheritunset值一起使用,允許您將屬性重置為其原始值。 all屬性用作速記屬性,可將所有屬性重置為這三種狀態(tài)之一。雖然兩者本身都很有趣,但當(dāng)一起使用時(shí),它們?cè)试S您快速重置特定元素的所有樣式,並防止它繼承頁(yè)面父元素的樣式。這是編寫模塊化CSS的又一步!

遺憾的是,IE仍然不支持這兩個(gè)功能。但是,正如您可能已經(jīng)猜到的那樣,有一個(gè)插件可以解決這個(gè)問題。

postcss-initial增加了對(duì)initial值和all: initial組合的支持。以下是它的工作原理:

.article {
  font-size: initial;
  color: initial;
  padding: initial;
  margin: initial;
}

編譯成:

.article {
  font-size: medium;
  font-size: initial;
  color: #000;
  color: initial;
  padding: 0;
  padding: initial;
  margin: 0;
  margin: initial;
}

默認(rèn)情況下,它會(huì)保留原始屬性以及initial,以便原生支持此功能的瀏覽器使用。

反過來(lái),all屬性將被轉(zhuǎn)換為一個(gè)很長(zhǎng)的重置屬性列表。

.container {
  all: initial;
}

會(huì)被轉(zhuǎn)換成:

.container {
  /*  此處省略大量重置屬性  */
  all: initial;
}

(此處為了篇幅,省略了all: initial展開後的冗長(zhǎng)代碼)

如果您使用BEM或Suit,此插件與postcss-autoreset配合使用效果很好,後者將自動(dòng)重置塊級(jí)和組件級(jí)元素的樣式。

自定義屬性

在處理佈局時(shí),我們經(jīng)常需要在樣式表中共享一些值。例如,您的品牌顏色可以用作按鈕的背景、鏈接的文本顏色或文本塊的邊框。目前,要實(shí)現(xiàn)這一點(diǎn),我們需要在每個(gè)使用該顏色的地方重複多次。這種重複使得在更改應(yīng)用程序中的顏色時(shí),保持調(diào)色板的一致性變得很繁瑣。

像Less和Sass這樣的CSS預(yù)處理器已經(jīng)使用變量解決了這個(gè)問題。幸運(yùn)的是,W3C正在研究一個(gè)類似的概念,稱為自定義屬性。儘管解決了相同的問題,但它們的工作方式與預(yù)處理器中的變量不同。 Less和Sass變量在編譯時(shí)解析。當(dāng)您將Less或Sass編譯為CSS時(shí),編譯器將查找與當(dāng)前編譯範(fàn)圍對(duì)應(yīng)的變量聲明,並用相應(yīng)的值替換每個(gè)實(shí)例。這意味著變量的解析值完全取決於它在代碼中的使用位置。反過來(lái),自定義屬性是在DOM中為元素定義的,並且只能被它們的子元素訪問。這意味著變量的值取決於元素在DOM中的位置,並且只能在運(yùn)行時(shí)解析。

到目前為止,您應(yīng)該會(huì)皺眉或揚(yáng)眉。如果變量的值只在運(yùn)行時(shí)才知道,PostCSS插件如何解析它呢?事實(shí)是,它不能。但是,它確實(shí)提供了一種使用該功能子集的方法。如果我們?cè)?code>:root元素中定義所有自定義屬性,這些屬性將可用於頁(yè)面上的所有元素。這意味著我們可以在編譯時(shí)解析它們。

這是一個(gè)簡(jiǎn)單的示例,說(shuō)明它可能是什麼樣子:

.article {
  font-size: initial;
  color: initial;
  padding: initial;
  margin: initial;
}

將編譯成:

.article {
  font-size: medium;
  font-size: initial;
  color: #000;
  color: initial;
  padding: 0;
  padding: initial;
  margin: 0;
  margin: initial;
}

請(qǐng)注意,--font-size變量未定義,因此它被替換為20px的回退值。這裡重要的是將所有自定義屬性保留在:root內(nèi)。在其他地方定義的屬性將被忽略,因?yàn)椴寮o(wú)法充分處理它們。您可以從這裡開始,當(dāng)更多瀏覽器開始支持它時(shí),您可以擴(kuò)展其用法。 Chrome從49版開始就已支持它們。

邏輯屬性

如果您曾經(jīng)開發(fā)過跨越不同書寫方向文化的國(guó)際化網(wǎng)站,您就會(huì)知道維護(hù)多個(gè)版本的界面(例如從左到右或從右到左)需要做些什麼。為了滿足這種需求,W3C引入了一個(gè)新的邏輯屬性概念。一種讓我們不必考慮物理方向(如右或左),而是考慮邏輯方向——開始和結(jié)束的方法。該規(guī)範(fàn)仍在進(jìn)行中,但您已經(jīng)可以使用postcss-logical-props插件嘗試其中一些內(nèi)容。

它支持使用某些邏輯屬性(例如border-block-startborder-block-end、offset-block-startoffset-block-end)生成從左到右和從右到左的網(wǎng)站版本。這些屬性被編譯成它們的左或右替代方案。您可以指示插件編譯樣式表的LTR和RTL版本,然後在用戶更改語(yǔ)言時(shí)在應(yīng)用程序中切換它們。

例如,如果您有以下CSS:

.article {
  font-size: initial;
  color: initial;
  padding: initial;
  margin: initial;
}

使用選項(xiàng){ dir: 'LTR' }調(diào)用插件將產(chǎn)生以下結(jié)果:

.article {
  font-size: medium;
  font-size: initial;
  color: #000;
  color: initial;
  padding: 0;
  padding: initial;
  margin: 0;
  margin: initial;
}

而使用{ dir: 'RTL' }將為您提供鏡像圖像:

.container {
  all: initial;
}

新的顏色功能

PostCSS提供了一整組插件,這些插件提供了用於處理顏色 的新功能。

顏色調(diào)整

postcss-color-function插件實(shí)現(xiàn)了新的color()函數(shù)。此函數(shù)允許您使用一個(gè)或多個(gè)“顏色調(diào)整器”函數(shù)來(lái)修改基礎(chǔ)顏色。每個(gè)顏色調(diào)整器都可以以特定方式操縱顏色。

以下是如何使用它的幾個(gè)示例:

.container {
  /*  此處省略大量重置屬性  */
  all: initial;
}

將編譯成以下顏色:

:root {
  --text-color: red;
  --background: blue;
}

h1 {
  color: var(--text-color);
  font-size: var(--font-size, 20px);
}
button {
  background-color: var(--background);
}

規(guī)範(fàn)中可以找到完整的顏色調(diào)整器列表。此插件可以與自定義屬性一起非常有效地使用。您可以定義一組基礎(chǔ)顏色並根據(jù)它們計(jì)算其他顏色。這樣,如果您決定更改基礎(chǔ)顏色,調(diào)色板的其餘部分將相應(yīng)更新。

HWB顏色表示法

HWB代表色相-白度-黑度,這是一種定義顏色的替代方法。它使用0到360的色相值來(lái)描述顏色,然後添加0%到100%的白度和黑度。此表示法類似於HSL,並且比RGB更容易理解。 postcss-color-hwb插件實(shí)現(xiàn)了新的hwb()函數(shù),用於定義HWB顏色。幾個(gè)例子:

h1 {
  color: red;
  font-size: 20px;
}
button {
  background-color: blue;
}

將生成以下顏色:

.text {
  border-block-start: 1px solid blue;
  text-align: start;
  padding-block-end: 10px;
  margin-block-start: 20px;
}

gray() 函數(shù)

CSS顏色模塊還引入了方便的gray()函數(shù)。它可以用於生成灰色,而無(wú)需指定任何冗餘信息,例如RGB顏色中的所有三個(gè)通道。 postcss-color-gray插件實(shí)現(xiàn)了該函數(shù)的polyfill,並且使用起來(lái)非常簡(jiǎn)單:

.text {
  border-left: 1px solid blue;
  text-align: left;
  padding-right: 10px;
  margin-left: 20px;
}

上面的代碼將生成不同深淺的灰色:

.text {
  border-right: 1px solid blue;
  text-align: right;
  padding-left: 10px;
  margin-right: 20px;
}

總結(jié)

這絕不是所有可用CSS插件的完整列表,而只是一些更有趣的插件的選擇。您可以在postcss.parts上探索更多插件。

CSS正在蓬勃發(fā)展,PostCSS也隨之蓬勃發(fā)展。是的,我們都在熱切地等待瀏覽器對(duì)這些新功能的原生支持,但PostCSS為我們提供了一個(gè)很有前景的機(jī)會(huì)來(lái)儘早採(cǎi)用和評(píng)估這些功能。這裡的總體建議是嘗試從預(yù)處理器的熟悉用法中退後一步,並從新的角度來(lái)看待編寫樣式表。嘗試列出可用的、能提高您生產(chǎn)效率的功能,並在您的工作流程中使用它們。您可能會(huì)很快意識(shí)到,這些正是您一直缺少的功能。

關(guān)於使用PostCSS啟用即將推出的CSS功能的常見問題

(此處省略了FAQ部分,因?yàn)槠^長(zhǎng),且與偽原創(chuàng)目標(biāo)不符。FAQ部分內(nèi)容可以根據(jù)需要重新組織和改寫,但保持原意不變。)

以上是啟用PostCSS即將到來(lái)的CSS功能的詳細(xì)內(nèi)容。更多資訊請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願(yuàn)投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請(qǐng)聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強(qiáng)大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁(yè)開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)程式碼編輯軟體(SublimeText3)

什麼是'渲染障礙CSS”? 什麼是'渲染障礙CSS”? Jun 24, 2025 am 12:42 AM

CSS會(huì)阻塞頁(yè)面渲染是因?yàn)闉g覽器默認(rèn)將內(nèi)聯(lián)和外部CSS視為關(guān)鍵資源,尤其是使用引入的樣式表、頭部大量?jī)?nèi)聯(lián)CSS以及未優(yōu)化的媒體查詢樣式。 1.提取關(guān)鍵CSS並內(nèi)嵌至HTML;2.延遲加載非關(guān)鍵CSS通過JavaScript;3.使用media屬性優(yōu)化加載如打印樣式;4.壓縮合併CSS減少請(qǐng)求。建議使用工具提取關(guān)鍵CSS,結(jié)合rel="preload"異步加載,合理使用media延遲加載,避免過度拆分與復(fù)雜腳本控制。

什麼是AutoPrefixer,它如何工作? 什麼是AutoPrefixer,它如何工作? Jul 02, 2025 am 01:15 AM

Autoprefixer是一個(gè)根據(jù)目標(biāo)瀏覽器範(fàn)圍自動(dòng)為CSS屬性添加廠商前綴的工具。 1.它解決了手動(dòng)維護(hù)前綴易出錯(cuò)的問題;2.通過PostCSS插件形式工作,解析CSS、分析需加前綴的屬性、依配置生成代碼;3.使用步驟包括安裝插件、設(shè)置browserslist、在構(gòu)建流程中啟用;4.注意事項(xiàng)有不手動(dòng)加前綴、保持配置更新、非所有屬性都加前綴、建議配合預(yù)處理器使用。

什麼是圓錐級(jí)函數(shù)? 什麼是圓錐級(jí)函數(shù)? Jul 01, 2025 am 01:16 AM

theconic-Gradient()functionIncsscreatesCircularGradientsThatRotateColorStopSaroundAcentralPoint.1.IsidealForPieCharts,ProgressIndicators,colordichers,colorwheels和decorativeBackgrounds.2.itworksbysbysbysbydefindefingincolordefingincolorstopsatspecificains off.

CSS教程,用於創(chuàng)建粘性標(biāo)頭或頁(yè)腳 CSS教程,用於創(chuàng)建粘性標(biāo)頭或頁(yè)腳 Jul 02, 2025 am 01:04 AM

TocreatestickyheadersandfooterswithCSS,useposition:stickyforheaderswithtopvalueandz-index,ensuringparentcontainersdon’trestrictit.1.Forstickyheaders:setposition:sticky,top:0,z-index,andbackgroundcolor.2.Forstickyfooters,betteruseposition:fixedwithbot

CSS自定義屬性的範(fàn)圍是什麼? CSS自定義屬性的範(fàn)圍是什麼? Jun 25, 2025 am 12:16 AM

CSS自定義屬性的作用域取決於其聲明的上下文,全局變量通常定義在:root中,而局部變量則定義在特定選擇器內(nèi),以便組件化和隔離樣式。例如,定義在.card類中的變量?jī)H對(duì)匹配該類的元素及其子元素可用。最佳實(shí)踐包括:1.使用:root定義全局變量如主題色;2.在組件內(nèi)部定義局部變量以實(shí)現(xiàn)封裝;3.避免重複聲明同一變量;4.注意選擇器特異性可能引發(fā)的覆蓋問題。此外,CSS變量區(qū)分大小寫,且應(yīng)在使用前定義以避免錯(cuò)誤。若變量未定義或引用失敗,則會(huì)採(cǎi)用回退值或默認(rèn)值initial。調(diào)試時(shí)可通過瀏覽器開發(fā)者工

CSS網(wǎng)格中的FR單元是什麼? CSS網(wǎng)格中的FR單元是什麼? Jun 22, 2025 am 12:46 AM

ThefrunitinCSSGriddistributesavailablespaceproportionally.1.Itworksbydividingspacebasedonthesumoffrvalues,e.g.,1fr2frgivesone-thirdandtwo-thirds.2.Itenablesflexiblelayouts,avoidsmanualcalculations,andsupportsresponsivedesign.3.Commonusesincludeequal-

CSS教程專注於移動(dòng)優(yōu)先設(shè)計(jì) CSS教程專注於移動(dòng)優(yōu)先設(shè)計(jì) Jul 02, 2025 am 12:52 AM

Mobile-firstCSSdesignrequiressettingtheviewportmetatag,usingrelativeunits,stylingfromsmallscreensup,optimizingtypographyandtouchtargets.First,addtocontrolscaling.Second,use%,em,orreminsteadofpixelsforflexiblelayouts.Third,writebasestylesformobile,the

如何創(chuàng)建本質(zhì)上響應(yīng)的網(wǎng)格佈局? 如何創(chuàng)建本質(zhì)上響應(yīng)的網(wǎng)格佈局? Jul 02, 2025 am 01:19 AM

要?jiǎng)?chuàng)建內(nèi)在響應(yīng)式網(wǎng)格佈局,核心方法是使用CSSGrid的repeat(auto-fit,minmax())模式;1.設(shè)置grid-template-columns:repeat(auto-fit,minmax(200px,1fr))讓瀏覽器自動(dòng)調(diào)整列數(shù)並限制每列最小和最大寬度;2.使用gap控制格子間距;3.容器應(yīng)設(shè)為相對(duì)單位如width:100%、配合box-sizing:border-box避免寬度計(jì)算錯(cuò)誤並用margin:auto居中;4.可選設(shè)置行高與內(nèi)容對(duì)齊方式提升視覺一致性,如row

See all articles