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

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

如果機器:將CSS的' IFFY”未來帶入當下

Mar 07, 2025 pm 05:12 PM

The What If Machine: Bringing the

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

世界末日?早就結束了

本文的論點進一步證實,內聯條件語句可能並非文明終結的預兆:我認為我們現在可以使用樣式查詢來實現相同的功能,而樣式查詢正在獲得相當好的瀏覽器支持。

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

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

我想要一個條件Oompa Loompa!

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

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

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

有說服力的例子

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

<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>

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

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

讓我們再試一次。

使用包裝器

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

包裝器對比類型研磨

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

以下是CSS的兩個版本:

以下是標記的兩個版本:

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

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

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

尋求驗證

將我上面的示例與MDN關於HTML5驗證的示例和Seth Jeffery關於變形純CSS圖標的酷炫演示結合起來,然後將它們全部輸入“What If”機器以獲得下面的演示。

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

<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中的內聯樣式設置,就像Lea的示例一樣。表單驗證只是我使演示更具交互性的方法,以顯示提示框可以根據--variant動態(tài)更改。

總結

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

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

以上是如果機器:將CSS的' IFFY”未來帶入當下的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發(fā)現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創(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

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

SublimeText3 Mac版

SublimeText3 Mac版

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

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

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

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

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

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

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

CSS教程,用於創(chuàng)建粘性標頭或頁腳 CSS教程,用於創(chuàng)建粘性標頭或頁腳 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自定義屬性的範圍是什麼? CSS自定義屬性的範圍是什麼? Jun 25, 2025 am 12:16 AM

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

CSS教程專注於移動優(yōu)先設計 CSS教程專注於移動優(yōu)先設計 Jul 02, 2025 am 12:52 AM

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

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

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

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

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

See all articles