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

目錄
遇到的錯(cuò)誤
解決方法
為什么?
首頁(yè) web前端 css教程 當(dāng)Sass和New CSS功能相撞時(shí)

當(dāng)Sass和New CSS功能相撞時(shí)

Apr 04, 2025 am 10:21 AM

When Sass and New CSS Features Collide

CSS近期新增了許多酷炫特性,例如自定義屬性和新函數(shù)。這些特性雖然能簡(jiǎn)化我們的工作,但也可能與Sass等預(yù)處理器產(chǎn)生有趣的交互問(wèn)題。

本文將探討我遇到的問(wèn)題、解決方法,以及我為何至今仍認(rèn)為Sass必不可少。

遇到的錯(cuò)誤

如果您使用過(guò)新的min()max()函數(shù),在處理不同單位時(shí)可能會(huì)遇到類似這樣的錯(cuò)誤消息:“不兼容的單位:vh和em”。

這是因?yàn)?strong>Sass擁有自己的min()函數(shù),并忽略CSS的min()函數(shù)。此外,Sass無(wú)法使用兩個(gè)單位之間沒(méi)有固定關(guān)系的值進(jìn)行任何計(jì)算。

例如,cm和in單位之間存在固定關(guān)系,因此Sass可以計(jì)算出min(20in, 50cm)的結(jié)果,并且在代碼中使用時(shí)不會(huì)報(bào)錯(cuò)。

其他單位也是如此。例如,角度單位之間都存在固定關(guān)系:1turn、1rad或1grad始終計(jì)算為相同的deg值。同樣,1s始終為1000ms,1kHz始終為1000Hz,1dppx始終為96dpi,1in始終為96px。這就是為什么Sass可以在它們之間進(jìn)行轉(zhuǎn)換,并將它們混合在計(jì)算和函數(shù)(例如它自己的min()函數(shù))中。

但是,當(dāng)這些單位之間沒(méi)有固定關(guān)系時(shí)(例如前面em和vh單位的例子),就會(huì)出現(xiàn)問(wèn)題。

這不僅僅是不同的單位。嘗試在min()內(nèi)部使用calc()也會(huì)導(dǎo)致錯(cuò)誤。如果我嘗試類似calc(20em 7px)這樣的代碼,則會(huì)收到“calc(20em 7px)對(duì)于min不是一個(gè)數(shù)字”的錯(cuò)誤。

當(dāng)我們想要在CSS過(guò)濾器(例如invert())中使用CSS變量或數(shù)學(xué)CSS函數(shù)(例如calc()、min()max())的結(jié)果時(shí),還會(huì)出現(xiàn)另一個(gè)問(wèn)題。

在這種情況下,我們會(huì)收到“`$color: 'var(--p, 0.85)' 不是invert的有效顏色”的提示。

grayscale()也會(huì)出現(xiàn)同樣的問(wèn)題:“$color: 'calc(.2 var(--d, .3))' 不是grayscale的有效顏色”。

opacity()也會(huì)導(dǎo)致同樣的問(wèn)題:“$color: 'var(--p, 0.8)' 不是opacity的有效顏色”。

然而,其他過(guò)濾器函數(shù)——包括sepia()、blur()drop-shadow()、brightness()、contrast()hue-rotate()——都可以與CSS變量正常工作!

事實(shí)證明,發(fā)生的情況與min()max()問(wèn)題類似。Sass沒(méi)有內(nèi)置的sepia()blur()、drop-shadow()brightness()、contrast()hue-rotate()函數(shù),但它確實(shí)有自己的grayscale()、invert()opacity()函數(shù),并且它們的第一個(gè)參數(shù)是$color值。由于它找不到該參數(shù),因此會(huì)拋出錯(cuò)誤。

出于同樣的原因,當(dāng)我們嘗試使用列出至少兩個(gè)hsl()hsla()值的CSS變量時(shí),也會(huì)遇到麻煩。

另一方面,color: hsl(9, var(--sl, 95%, 65%))是完全有效的CSS,并且在沒(méi)有Sass的情況下也能正常工作。

rgb()rgba()函數(shù)也會(huì)發(fā)生完全相同的情況。

此外,如果我們導(dǎo)入Compass并嘗試在linear-gradient()radial-gradient()內(nèi)部使用CSS變量,即使在conic-gradient()內(nèi)部使用變量也能正常工作(如果瀏覽器支持的話),我們也會(huì)收到另一個(gè)錯(cuò)誤。

這是因?yàn)镃ompass帶有linear-gradient()radial-gradient()函數(shù),但從未添加過(guò)conic-gradient()函數(shù)。

所有這些情況下的問(wèn)題都源于Sass或Compass具有同名函數(shù),并假設(shè)這些是我們打算在代碼中使用的函數(shù)。

糟糕!

解決方法

這里的訣竅是記住Sass區(qū)分大小寫(xiě),但CSS不區(qū)分大小寫(xiě)。

這意味著我們可以編寫(xiě)Min(20em, 50vh),Sass不會(huì)將其識(shí)別為它自己的min()函數(shù)。不會(huì)拋出錯(cuò)誤,它仍然是有效的CSS,并且按預(yù)期工作。類似地,編寫(xiě)HSL()/HSLA()/RGB()/RGBA()Invert()可以避免我們前面遇到的問(wèn)題。

至于漸變,我通常更喜歡linear-Gradient()radial-Gradient(),因?yàn)樗咏黃VG版本,但在其中使用至少一個(gè)大寫(xiě)字母也能正常工作。

為什么?

幾乎每次我發(fā)布任何與Sass相關(guān)的推文時(shí),都會(huì)有人告誡我,現(xiàn)在有了CSS變量,就不應(yīng)該再使用Sass了。我想解決這個(gè)問(wèn)題,并解釋我為什么不同意。

首先,雖然我發(fā)現(xiàn)CSS變量非常有用,并且在過(guò)去三年中幾乎將它們用于所有方面,但需要注意的是,它們會(huì)帶來(lái)性能成本,并且使用當(dāng)前的DevTools追蹤在calc()計(jì)算迷宮中出現(xiàn)錯(cuò)誤的地方可能會(huì)很痛苦。我盡量避免過(guò)度使用它們,以免陷入使用它們的缺點(diǎn)超過(guò)好處的境地。

一般來(lái)說(shuō),如果它像一個(gè)常量一樣工作,不會(huì)逐元素或逐狀態(tài)變化(在這種情況下,自定義屬性絕對(duì)是最佳選擇),或者減少編譯后的CSS數(shù)量(解決由前綴創(chuàng)建的重復(fù)問(wèn)題),那么我將使用Sass變量。

其次,變量一直是我使用Sass的原因中很小的一部分。當(dāng)我在2012年末開(kāi)始使用Sass時(shí),它主要用于循環(huán),這是我們目前在CSS中仍然沒(méi)有的功能。雖然我已經(jīng)將部分循環(huán)轉(zhuǎn)移到HTML預(yù)處理器(因?yàn)樗鼫p少了生成的代碼,并且避免了以后必須同時(shí)修改HTML和CSS),但我仍然在很多情況下使用Sass循環(huán),例如生成值列表、漸變函數(shù)內(nèi)的停止列表、多邊形函數(shù)內(nèi)的點(diǎn)列表、變換列表等等。

(以下內(nèi)容與原文一致,略去重復(fù)部分,避免冗余)

以上是當(dāng)Sass和New CSS功能相撞時(shí)的詳細(xì)內(nèi)容。更多信息請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本站聲明
本文內(nèi)容由網(wǎng)友自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請(qǐng)聯(lián)系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脫衣機(jī)

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集成開(kāi)發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

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

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)代碼編輯軟件(SublimeText3)

熱門(mén)話題

如何僅在某些頁(yè)面上包括CSS? 如何僅在某些頁(yè)面上包括CSS? Jun 11, 2025 am 12:01 AM

選擇性包含CSS在特定頁(yè)面上的方法有三種:1.內(nèi)聯(lián)CSS,適用于不常訪問(wèn)或需要獨(dú)特樣式的頁(yè)面;2.使用JavaScript條件加載外部CSS文件,適合需要靈活性的情況;3.服務(wù)器端包含,適用于使用服務(wù)器端語(yǔ)言的場(chǎng)景。這種方法可以優(yōu)化網(wǎng)站性能和可維護(hù)性,但需平衡模塊化與性能。

Flexbox與網(wǎng)格:了解CSS布局的關(guān)鍵差異 Flexbox與網(wǎng)格:了解CSS布局的關(guān)鍵差異 Jun 10, 2025 am 12:03 AM

flexboxisidealforone-dimensionAllayouts,while gridsuitStwo,complex layouts.useflexboxforaligningItemsinasingLeaxisAndGridForRidForPreciseconcontroloverroverroverroverroverroverroverrowsandsininintricatientricatedesigns。

使用HTML彈出案創(chuàng)建自動(dòng)關(guān)閉通知 使用HTML彈出案創(chuàng)建自動(dòng)關(guān)閉通知 Jun 10, 2025 am 09:45 AM

HTML彈出屬性將元素轉(zhuǎn)換為頂層元素,可以使用按鈕或JavaScript打開(kāi)和關(guān)閉??梢詫棾霭格g回多種方式,但是沒(méi)有選擇自動(dòng)關(guān)閉它們。 preethi有一種技術(shù),你可以

什么是'渲染障礙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通過(guò)JavaScript;3.使用media屬性優(yōu)化加載如打印樣式;4.壓縮合并CSS減少請(qǐng)求。建議使用工具提取關(guān)鍵CSS,結(jié)合rel="preload"異步加載,合理使用media延遲加載,避免過(guò)度拆分與復(fù)雜腳本控制。

如何在無(wú)花果中使用Lotties 如何在無(wú)花果中使用Lotties Jun 14, 2025 am 10:17 AM

在接下來(lái)的教程中,我將向您展示如何在無(wú)花果中創(chuàng)建Lottie動(dòng)畫(huà)。我們將使用兩種彩色設(shè)計(jì)來(lái)超越如何在無(wú)花果上進(jìn)行動(dòng)畫(huà),然后向您展示如何從Figma到Lottie動(dòng)畫(huà)。您只需要免費(fèi)無(wú)花果

打破邊界:用(s)CSS構(gòu)建湯姆拼圖 打破邊界:用(s)CSS構(gòu)建湯姆拼圖 Jun 13, 2025 am 11:33 AM

我們對(duì)其進(jìn)行了測(cè)試,事實(shí)證明,至少在低級(jí)邏輯和拼圖行為時(shí),Sass可以替換JavaScript。除了地圖,混音,功能和大量數(shù)學(xué)外,我們都設(shè)法使我們的Tangram難題栩栩如生,沒(méi)有J

外部與內(nèi)部CSS:最好的方法是什么? 外部與內(nèi)部CSS:最好的方法是什么? Jun 20, 2025 am 12:45 AM

thebestapphachforcssdepprodsontheproject'sspefificneeds.forlargerprojects,externalcsSissBetterDuoSmaintoMaintainability andReusability; forsMallerProjectsorsingle-pageApplications,InternaltCsmightBemoresobleable.InternalCsmightBemorese.it.it'sclucialtobalancepopryseceneceenceprodrenceprodrenceNeed

我的CSS必須在較低的情況下嗎? 我的CSS必須在較低的情況下嗎? Jun 19, 2025 am 12:29 AM

否,CSSDOESNOTHAVETOBEINLOWERCASE.CHOMENDENS,使用flowercaseisrecommondendendending:1)一致性和可讀性,2)避免使用促進(jìn)性技術(shù),3)潛在的Performent FormanceBenefits,以及4)RightCollaboraboraboraboraboraboraboraboraboraboraboraboraboraboraboraboraborationWithInteams。

See all articles