暗模式對文本可讀性的影響:使用可變字體的CSS解決方案
黑暗模式雖然美學上令人愉悅,但通常會帶來一個挑戰:在黑暗的背景下,文本看起來更重。本文使用CSS自定義屬性和可變字體探討解決方案來解決此問題,從而確保跨光和黑暗模式的文本外觀一致。
問題不是幻想。較輕的角色在深色背景上確實看起來更大膽。當比較光和暗模式文本時,這很容易觀察到,並且在倒轉顏色時變得更加清晰。
使用可變字體的解決方案
可變字體提供了強大的解決方案。理想的效果涉及在黑暗模式下巧妙地變薄的文本,而不會改變字符寬度。我們可以通過幾種策略來實現這一目標:
手動調整
font-weight
:這涉及在黑模式媒體查詢中直接修改font-weight
值。功能性雖然具有許多元素,但它變得繁瑣。font-weight
乘數:一種更優雅的方法使用CSS自定義屬性(--font-weight-multiplier
)來控制重量調整。此乘數在暗模式下修改了每個元素的默認font-weight
。例如,設置--font-weight-multiplier
為0.85可將重量降低15%。通用選擇器和乘數:此高級技術利用CSS變量範圍和通用選擇器(
*
)在全球應用乘數計算。這簡化了CSS,但需要仔細考慮以避免對特定元素的意外影響。font-variation-settings
和軸操縱:某些可變字體提供諸如“ grad”(級)或“ drkm”(暗模式)之類的軸,它們直接控制明顯的重量而不會影響字符寬度。 Roboto Flex利用“ Grad”,而Dalton Maag的Darkmode字體具有“ Drkm”軸。
策略1: font-weight
操縱
最簡單的方法是在暗模式媒體查詢中手動調整每個元素的font-weight
。但是,隨著元素數量的增加,這將變得易於管理。
/ *默認(燈模式)CSS */ 身體{字體權重:400; } 強{字體重量:700; } / *黑模式CSS */ @Media(prefers-color-scheme:dark){ 身體{字體權重:350; } 強{字體重量:600; } }
策略2:具有自定義屬性的font-weight
乘數
使用自定義屬性( --font-weight-multiplier
)提供了更可維護的解決方案。
/ *暗模式特定的自定義屬性 */ @Media(prefers-color-scheme:dark){ :root { - -font-weight-Multiplier:.85; } } / *默認的CSS樣式... */ Body {font-jight:calc(400 * var( - font-weight-multiplier,1)); } strong {font-jight:calc(700 * var( - font-weight-multiplier,1)); }
策略3:通用選擇器和乘數
這種方法一次將乘數應用於所有元素。
/ *默認自定義屬性 */ :root { - -font-jight:400; - 聯合體重 - 武力:1; } 強{ - - 五大:700; } / *暗模式特定的自定義屬性 */ @Media(prefers-color-scheme:dark){ :root { - -font-weight-Multiplier:.85; } } / *應用自定義屬性... */ * {font-權重:calc(var( - font-pronger,400) * var( - font-weight-multiplier,1)); }
策略4:用font-variation-settings
軸操縱
具有“畢業”或“ DRKM”軸的字體可直接控制重量。
/ *對於Roboto Flex(“畢業”軸) */ :root {-grad:0; } @Media(prefers-color-scheme:dark){:root { - grad:-.75; }}} 身體{font-variation-settings:“ grad” var( - grad,0); }
其他考慮因素
- 高分辨率屏幕:對視網膜顯示器的效果不太明顯。相應地調整乘數。
- 混合字體:仔細考慮對具有不同軸或不可變化字體的字體的影響。
- 信件間隔:降低字體重量可以縮小字符。根據需要調整字母間隔。
通過利用這些技術,開發人員可以確保跨光和深色模式的一致且清晰的文本,從而增強整體用戶體驗。可以提供展示這些策略的演示[鏈接到演示]。
以上是使用CSS自定義屬性在黑模式下調整可變字體權重的詳細內容。更多資訊請關注PHP中文網其他相關文章!

@keyframesandCSSTransitionsdifferincomplexity:@keyframesallowsfordetailedanimationsequences,whileCSSTransitionshandlesimplestatechanges.UseCSSTransitionsforhovereffectslikebuttoncolorchanges,and@keyframesforintricateanimationslikerotatingspinners.

我知道,我知道:有大量的內容管理系統選項可用,而我進行了幾個測試,但實際上沒有一個是一個,y'知道嗎?怪異的定價模型,艱難的自定義,有些甚至最終成為整個&

鏈接CSS文件到HTML可以通過在HTML的部分使用元素實現。 1)使用標籤鏈接本地CSS文件。 2)多個CSS文件可通過添加多個標籤實現。 3)外部CSS文件使用絕對URL鏈接,如。 4)確保正確使用文件路徑和CSS文件加載順序,優化性能可使用CSS預處理器合併文件。

選擇Flexbox還是Grid取決於佈局需求:1)Flexbox適用於一維佈局,如導航欄;2)Grid適合二維佈局,如雜誌式佈局。兩者在項目中可結合使用,提升佈局效果。

包含CSS文件的最佳方法是使用標籤在HTML的部分引入外部CSS文件。 1.使用標籤引入外部CSS文件,如。 2.對於小型調整,可以使用內聯CSS,但應謹慎使用。 3.大型項目可使用CSS預處理器如Sass或Less,通過@import導入其他CSS文件。 4.為了性能,應合併CSS文件並使用CDN,同時使用工具如CSSNano進行壓縮。

是的,youshouldlearnbothflexboxandgrid.1)flexboxisidealforone-demensional,flexiblelayoutslikenavigationmenus.2)gridexcelstcelsintwo-dimensional,confffferDesignssignssuchasmagagazineLayouts.3)blosebothenHancesSunHanceSlineHancesLayOutflexibilitibilitibilitibilitibilityAnderibilitibilityAndresponScormentilial anderingStruction

重構自己的代碼看起來是什麼樣的?約翰·瑞亞(John Rhea)挑選了他寫的一個舊的CSS動畫,並介紹了優化它的思維過程。

CSSanimationsarenotinherentlyhardbutrequirepracticeandunderstandingofCSSpropertiesandtimingfunctions.1)Startwithsimpleanimationslikescalingabuttononhoverusingkeyframes.2)Useeasingfunctionslikecubic-bezierfornaturaleffects,suchasabounceanimation.3)For


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

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

熱門文章

熱工具

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

Dreamweaver Mac版
視覺化網頁開發工具

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能