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

目錄
世界末日?早就結(jié)束了
我想要一個條件Oompa Loompa!
有說服力的例子
使用包裝器
包裝器對比類型研磨
尋求驗證
總結(jié)
首頁 web前端 css教學(xué) 如果機器:將CSS的' IFFY”未來帶入當(dāng)下

如果機器:將CSS的' IFFY”未來帶入當(dāng)下

Mar 07, 2025 pm 05:12 PM

The What If Machine: Bringing the

CSS工作組決定開發(fā)內(nèi)聯(lián)條件語句,這一消息在評論區(qū)引發(fā)熱議。一些開發(fā)者對此感到興奮,而另一些開發(fā)者則感到擔(dān)憂,他們擔(dān)心這會讓CSS的未來變得不確定。這是否會滑向一個地獄般的境地,充斥著濫用CSS的開發(fā)者,他們在本應(yīng)是樣式語言的地方實現(xiàn)過多的邏輯?不會。即使一些人真的那樣做了,也沒有主流博客會發(fā)表那些假設(shè)的瘋子的胡言亂語,他們?yōu)榱俗约旱哪康脑贑SS中加入瘋狂的邏輯。因此,我們知道CSS的未來是安全的。

世界末日?早就結(jié)束了

本文的論點進一步證實,內(nèi)聯(lián)條件語句可能並非文明終結(jié)的預(yù)兆:我認(rèn)為我們現(xiàn)在可以使用樣式查詢來實現(xiàn)相同的功能,而樣式查詢正在獲得相當(dāng)好的瀏覽器支持。

如果我是對的,Lea的提議更像是語法糖,有時會很方便,並允許更簡潔的標(biāo)記。任何關(guān)於內(nèi)聯(lián)條件語句會毀掉CSS的恐慌性言論,都相當(dāng)於誇大其詞地將三元運算符添加到已經(jīng)支持if語句的語言中。

事實上,Lea談到她提出的語法時說:“就像JS中的三元運算符一樣,對於只有一小部分值變化的情況,它也可能更符合人體工程學(xué)?!彼€提到,CSS一直都是有條件的。並非CSS中條件語句是被禁止的,而是CSS並不總是擅長處理它。

我想要一個條件Oompa Loompa!

我也是。還有許多其他人,正如Lea精心整理的令人驚嘆的複雜技巧列表所證明的那樣,人們已經(jīng)發(fā)現(xiàn)了使用當(dāng)前CSS模擬內(nèi)聯(lián)條件語句的方法。其中一些技巧複雜到我仍然不確定自己是否理解它們,但它們的名字確實很酷。 Lea總結(jié)道:“如果您知道任何其他技術(shù),請告訴我,以便我可以添加它們?!?/p>

嗯……我肯定錯過了一些關(guān)於這些技巧解決的問題。我注意到Lea有博士學(xué)位,而我是一個白癡。所以我向上滾動並重新閱讀,但我無法停止思考:這些人是否正在努力避免在他們的部件周圍添加額外的div並使用樣式查詢?

如果人們想避免DOM中多餘的元素,這是公平的,但Lea的技巧列表顯示,替代方案非常複雜,因此值得嘗試一下使用包裝div的樣式查詢能帶我們走多遠(yuǎn)。

有說服力的例子

Lea的例子圍繞著在提示框上設(shè)置一個“variant”屬性展開,並指出我們幾乎可以用樣式查詢實現(xiàn)她想要的東西,但這個假設(shè)的語法很遺憾是無效的

<code>.callout { 
  @container (style(--variant: success)) {
    border-color: var(--color-success-30);
    background-color: var(--color-success-95);

    &::before {
      content: var(--icon-success);
      color: var(--color-success-05);
    }
  }
}</code>

她想根據(jù)--variant設(shè)置容器本身及其子元素的樣式。現(xiàn)在,在這個具體的例子中,我可以使用z-index來修改::after偽元素,以產(chǎn)生它是容器的錯覺。然後我可以設(shè)置它的邊框和背景。不幸的是,這個解決方案和我一樣脆弱,在這個其他的例子中,Lea想根據(jù)variant設(shè)置容器的flex-flow。在這種情況下,我的偽元素解決方案不夠好。

記住,Lea的提案被納入CSS規(guī)範(fàn),就像宇宙送給她的生日禮物一樣,所以試圖用我在Temu上買到的那些廉價假容器來代替她的禮物是不公平的。她應(yīng)該得到一個真正的容器。

讓我們再試一次。

使用包裝器

Lea提案的評論中提到類型研磨,但稱其為“一種非常(我再說一次,非常)複雜但有效的”解決內(nèi)聯(lián)條件語句旨在解決的問題的方法。這不太公平。類型研磨讓我花了一點時間才理解,但我認(rèn)為它比其他技巧更容易理解,而且缺點更少。儘管如此,當(dāng)你查看示例時,這種在生產(chǎn)環(huán)境中的代碼會讓人感到厭煩。因此,讓我們咬緊牙關(guān),嘗試構(gòu)建Lea的flexbox變體示例的替代版本。我的版本不使用類型研磨或任何技巧,而是使用“老式”(並非那麼老式)的樣式查詢以及包裝div,來解決我們無法使用樣式查詢來設(shè)置容器本身樣式的問題。

包裝器對比類型研磨

比較Lea的示例和我的版本的代碼,可以幫助我們理解複雜性的差異。

以下是CSS的兩個版本:

以下是標(biāo)記的兩個版本:

因此,更簡單的CSS和稍微多一點的標(biāo)記。也許我們找到了方向。

我喜歡樣式查詢的原因是,Lea的提案使用了style()函數(shù),所以如果她的提案被瀏覽器採用,那麼將樣式查詢遷移到內(nèi)聯(lián)條件語句並移除包裝器似乎是可行的。如果我不提到遷移這種代碼可能是AI的一個可行的用例,這篇文章就不是2025年的文章了。當(dāng)我們獲得內(nèi)聯(lián)條件語句時,也許AI就不會那麼糟糕了。

但我們有點跑題了。你有沒有嘗試過採用一些在“待辦事項”示例中看起來很優(yōu)雅的炫酷JavaScript框架?如果有的話,你會知道,在簡單的示例中看起來引人注目的解決方案,在真實的示例中可能會挑戰(zhàn)你的生存意志。因此,讓我們看看在更真實的示例中使用樣式查詢的效果如何。

尋求驗證

將我上面的示例與MDN關(guān)於HTML5驗證的示例和Seth Jeffery關(guān)於變形純CSS圖標(biāo)的酷炫演示結(jié)合起來,然後將它們?nèi)枯斎搿癢hat If”機器以獲得下面的演示。

如果您使表單有效,則對提示框所做的所有更改都基於一個自定義屬性。此屬性從未直接用於提示框的CSS屬性值中,但它控制設(shè)置提示框的邊框顏色、圖標(biāo)、背景顏色和內(nèi)容的樣式查詢。我們在.callout-wrapper級別設(shè)置--variant屬性。我使用CSS設(shè)置它,如下所示:

<code>.callout { 
  @container (style(--variant: success)) {
    border-color: var(--color-success-30);
    background-color: var(--color-success-95);

    &::before {
      content: var(--icon-success);
      color: var(--color-success-05);
    }
  }
}</code>

但是,該變量可以由JavaScript或HTML中的內(nèi)聯(lián)樣式設(shè)置,就像Lea的示例一樣。表單驗證只是我使演示更具交互性的方法,以顯示提示框可以根據(jù)--variant動態(tài)更改。

總結(jié)

我寫一篇文章來反對那些將CSS彎曲到我們意志的技巧,這與我的風(fēng)格不符,而且我完全贊成“欺騙”語言來做我們想做的事情。但是,在獲得內(nèi)聯(lián)條件語句的支持之前,使用包裝器和樣式查詢可能是最簡單的方法。如果我們想感覺更像生活在未來,我們可以將上述方法作為內(nèi)聯(lián)條件語句的polyfill或使用Parcel插件或PostCSS插件之類的預(yù)處理器魔法的基礎(chǔ)——但對於這種妥協(xié),我的扳機手指總是會渴望Delete鍵。 Lea承認(rèn),“如果你可以用樣式查詢做某事,那就盡情使用樣式查詢——它們幾乎肯定是一個更好的解決方案?!?/p>

通過本文中的實驗,我已經(jīng)說服自己,即使在Lea的例子中,樣式查詢?nèi)匀皇且粋€不錯的選擇——但我仍然期待內(nèi)聯(lián)條件語句。與此同時,至少與其他已知的解決方法相比,樣式查詢更容易理解。具有諷刺意味的是,我同意那些質(zhì)疑內(nèi)聯(lián)條件語句需求的評論,不是因為它會毀掉CSS,而是因為我相信我們現(xiàn)在已經(jīng)可以用現(xiàn)代CSS實現(xiàn)Lea的例子,而且不需要任何技巧。所以,我們可能不需要內(nèi)聯(lián)條件語句,但它們可以讓我們編寫更易讀、更簡潔的代碼。如果您能想到一些使用樣式查詢而不是內(nèi)聯(lián)條件語句會遇到復(fù)雜性障礙的例子,請在評論區(qū)告訴我。

以上是如果機器:將CSS的' IFFY”未來帶入當(dāng)下的詳細(xì)內(nèi)容。更多資訊請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

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

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

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

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

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

Dreamweaver CS6

Dreamweaver CS6

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

SublimeText3 Mac版

SublimeText3 Mac版

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

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

CSS會阻塞頁面渲染是因為瀏覽器默認(rèn)將內(nèi)聯(lián)和外部CSS視為關(guān)鍵資源,尤其是使用引入的樣式表、頭部大量內(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減少請求。建議使用工具提取關(guān)鍵CSS,結(jié)合rel="preload"異步加載,合理使用media延遲加載,避免過度拆分與復(fù)雜腳本控制。

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

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

什麼是圓錐級函數(shù)? 什麼是圓錐級函數(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)頭或頁腳 CSS教程,用於創(chuàng)建粘性標(biāo)頭或頁腳 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類中的變量僅對匹配該類的元素及其子元素可用。最佳實踐包括:1.使用:root定義全局變量如主題色;2.在組件內(nèi)部定義局部變量以實現(xiàn)封裝;3.避免重複聲明同一變量;4.注意選擇器特異性可能引發(fā)的覆蓋問題。此外,CSS變量區(qū)分大小寫,且應(yīng)在使用前定義以避免錯誤。若變量未定義或引用失敗,則會採用回退值或默認(rèn)值initial。調(diào)試時可通過瀏覽器開發(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教程專注於移動優(yōu)先設(shè)計 CSS教程專注於移動優(yōu)先設(shè)計 Jul 02, 2025 am 12:52 AM

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

您可以在CSS網(wǎng)格項目中嵌套Flexbox容器嗎? 您可以在CSS網(wǎng)格項目中嵌套Flexbox容器嗎? Jun 22, 2025 am 12:40 AM

是的,可以在CSSGrid項中使用Flexbox。具體做法是先用Grid劃分頁面結(jié)構(gòu),在某個Grid單元格內(nèi)設(shè)置子容器為Flex容器,以實現(xiàn)更精細(xì)的對齊和排列;例如,在HTML中嵌套一個帶有display:flex樣式的div;這樣做的好處包括分層佈局、響應(yīng)式設(shè)計更容易、組件化開發(fā)更友好;需要注意display屬性僅影響直接子元素、避免過度嵌套、考慮舊版瀏覽器兼容性問題。

See all articles