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

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

如果機(jī)器:將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é)束了

本文的論點進(jìn)一步證實,內(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”機(jī)器以獲得下面的演示。

如果您使表單有效,則對提示框所做的所有更改都基於一個自定義屬性。此屬性從未直接用於提示框的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é),我的扳機(jī)手指總是會渴望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ū)告訴我。

以上是如果機(jī)器:將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)

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

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

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

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

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

CSS教程,用於創(chuàng)建加載旋轉(zhuǎn)器和動畫 CSS教程,用於創(chuàng)建加載旋轉(zhuǎn)器和動畫 Jul 07, 2025 am 12:07 AM

創(chuàng)建CSS加載旋轉(zhuǎn)器的方法有三種:1.使用邊框的基本旋轉(zhuǎn)器,通過HTML和CSS實現(xiàn)簡單動畫;2.使用多個點的自定義旋轉(zhuǎn)器,通過不同延遲時間實現(xiàn)跳動效果;3.在按鈕中添加旋轉(zhuǎn)器,通過JavaScript切換類來顯示加載狀態(tài)。每種方法都強調(diào)了設(shè)計細(xì)節(jié)如顏色、大小、可訪問性和性能優(yōu)化的重要性,以提升用戶體驗。

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

如何將整個網(wǎng)格集中在視口中? 如何將整個網(wǎng)格集中在視口中? Jul 02, 2025 am 12:53 AM

要讓整個網(wǎng)格佈局在視口中居中顯示,可通過以下方法實現(xiàn):1.使用margin:0auto實現(xiàn)水平居中,需設(shè)定容器固定寬度,適用於固定佈局;2.利用Flexbox在外層容器設(shè)置justify-content和align-items屬性,結(jié)合min-height:100vh可實現(xiàn)垂直和水平居中,適合全屏展示場景;3.直接使用CSSGrid的place-items屬性在父容器上快速居中,簡潔且現(xiàn)代瀏覽器支持良好,同時需確保父容器有足夠高度。每種方式均有適用場景和限制,根據(jù)實際需求選擇合適的方案即可。

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

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

CSS中使用@supports的功能檢測是什麼? CSS中使用@supports的功能檢測是什麼? Jul 02, 2025 am 01:14 AM

prainuredetectionIncsssusissuse@supportScheckSifabRowsEsuppecifortSupecifortEfeatureBeforeApplyingReplyingStyles.1.itusesconditionalcsssssbasssbasedonproperty-valueperty-valuepairs,suessas@supports@supports@supports@supports(display:grid)

See all articles