目錄
示例1-網站消息傳遞
確定的問題
建議
演示:之前和之後
示例2 - 無序列表
結論
首頁 web前端 css教學 通過印刷對準和比例改進UI元素的圖標

通過印刷對準和比例改進UI元素的圖標

Mar 13, 2025 am 09:50 AM

通過印刷對準和比例改進UI元素的圖標

在用戶界面元素中使用圖標很有幫助。除元素標籤外,圖標還可以幫助用戶向用戶增強用戶元素的意圖。但是我不得不說,在瀏覽網絡時,我注意到一些圖標錯位。即使圖標的對齊正確,圖標也通常在元素更改的印刷樣式時響應良好。

我注意到了幾個現實世界的例子,我想分享我對如何改善它們的想法。我希望這些技術能夠幫助其他人建立用戶界面元素,以更好地適應印刷變化並維護設計的原始目標。

示例1-網站消息傳遞

我在流行的媒體網站上找到了這個消息傳遞示例。圖標的位置看起來不太糟糕。但是,當更改字體大小和線條高的某些元素樣式屬性時,它開始解開。

確定的問題

  • 圖標絕對使用相對單元(REM)從左邊緣定位
  • 由於圖標是從流中取出的,因此給父母賦予較大的左填充價值以幫助整體間距 - 理想情況下,我們的padding-x是均勻的,無論存在是否存在圖標,一切看起來都不錯
  • rems中的圖標(SVG)也大小 - 這不允許調整其父母大小的字體大小

建議

我們希望圖標的頂部邊緣處於藍色虛線,但我們經常在紅色虛線上找到圖標的頂部邊緣。

您是否曾經在文本旁邊插入一個圖標,但它不會與文本的頂部保持一致?您可以將圖標移至位置,例如位置:相對;頂部:0.2EM。這效果足夠好,但是如果將來的印刷樣式變化,您的圖標看起來可能不對。

我們可以更可靠地定位圖標。讓我們使用元素的基線距離(從一線基線到下一行基線的距離)來解決此問題。

基線距離為字體大小 *線高

我們將其存儲在CSS自定義屬性中:

 -  baselinedistance:calc(var(-fontsize) * var( -  lineHeight));
登入後複製
登入後複製

然後,我們可以使用(基線距離 - 字體大小) / 2的結果向下移動圖標。

 -  iConOffset:calc((var( -  baseLinedistance) -  var(-fontsize)) / 2);
登入後複製

字體大小為1REM(16px)和1.5的線路高度,我們的圖標將移動4像素。

  • 基線距離= 16px * 1.5 = 24px
  • 圖標偏移=(24px - 16px) / 2 = 4px

演示:之前和之後

示例2 - 無序列表

我發現的第二個示例是無序的列表。它通過偽元素之前的A ::使用Web字體(Awesome)為其圖標。關於有序和無序列表的造型,有很多很棒的文章,因此我不會詳細介紹相對較新的:: Marker Pseudo-Element等。 Web字體通常可以根據所使用的圖標與圖標對齊方式合作。

確定的問題

  • 沒有使用絕對定位 - 當使用偽元素時,我們通常不會使用flexbox,例如我們的第一個示例和絕對定位閃耀
  • 列表項結合了填充和負面文本的組合來幫助佈局 - 在考慮多行文本和圖標可伸縮性時,我永遠無法使其正常工作

建議

因為我們還將在解決方案中使用偽元素,所以我們將利用絕對定位。此示例的圖標大小比其相鄰副本(約2倍)大一點。因此,我們將改變計算圖標最高位置的方式。我們圖標的中心應垂直與第一行的中心對齊。

從基線距離計算開始:

 -  baselinedistance:calc(var(-fontsize) * var( -  lineHeight));
登入後複製
登入後複製

使用(基線距離 - 圖標大小) / 2的結果向下移動圖標。

 -  iConOffset:calc(((var( -  baseLinedistance) -  var(-IconSize)) / 2);
登入後複製

因此,使用1REM(16px)的字體大小,1.6的線路高度和圖標大小為2倍,副本(32px),我們的圖標將獲得-3.2像素的最高值。

  • 基線距離= 16px * 1.6 = 25.6px
  • 圖標偏移=(25.6px - 32px) / 2 = -3.2px

較大的字體大小為2REM(32px),線條高為1.2和64px圖標,我們的圖標將獲得-12.8像素的最高值。

  • 基線距離= 32px * 1.2 = 38.4px
  • 圖標偏移=(38.4px - 64px) / 2 = -12.8px

演示:之前和之後

結論

對於用戶界面圖標,我們有很多選項和技術。我們有SVG,Web字體,靜態圖像,:: Marker和List-Style-Type。人們甚至可以使用背景色和剪貼儀來獲得一些有趣的圖標結果。執行一些簡單的計算可​​以幫助以更優雅的方式對齊和擴展圖標,從而實現更具防彈性的實現。

另請參閱:先前關於將圖標與文本結盟的討論。

以上是通過印刷對準和比例改進UI元素的圖標的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

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整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

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

熱門話題

Java教學
1664
14
CakePHP 教程
1421
52
Laravel 教程
1315
25
PHP教程
1266
29
C# 教程
1239
24
Google字體可變字體 Google字體可變字體 Apr 09, 2025 am 10:42 AM

我看到Google字體推出了新設計(Tweet)。與上一次大型重新設計相比,這感覺更加迭代。我幾乎無法分辨出區別

如何使用HTML,CSS和JavaScript創建動畫倒計時計時器 如何使用HTML,CSS和JavaScript創建動畫倒計時計時器 Apr 11, 2025 am 11:29 AM

您是否曾經在項目上需要一個倒計時計時器?對於這樣的東西,可以自然訪問插件,但實際上更多

HTML數據屬性指南 HTML數據屬性指南 Apr 11, 2025 am 11:50 AM

您想了解的有關HTML,CSS和JavaScript中數據屬性的所有信息。

使Sass更快的概念證明 使Sass更快的概念證明 Apr 16, 2025 am 10:38 AM

在一個新項目開始時,Sass彙編發生在眼睛的眨眼中。感覺很棒,尤其是當它與browsersync配對時,它重新加載

我們如何創建一個在SVG中生成格子呢模式的靜態站點 我們如何創建一個在SVG中生成格子呢模式的靜態站點 Apr 09, 2025 am 11:29 AM

格子呢是一塊圖案布,通常與蘇格蘭有關,尤其是他們時尚的蘇格蘭語。在Tar​​tanify.com上,我們收集了5,000多個格子呢

如何在WordPress主題中構建VUE組件 如何在WordPress主題中構建VUE組件 Apr 11, 2025 am 11:03 AM

內聯式模板指令使我們能夠將豐富的VUE組件構建為對現有WordPress標記的逐步增強。

php是A-OK用於模板 php是A-OK用於模板 Apr 11, 2025 am 11:04 AM

PHP模板通常會因促進Subpar代碼而變得不良說唱,但這並不是這樣的情況。讓我們看一下PHP項目如何執行基本的

靜態表單提供商的比較 靜態表單提供商的比較 Apr 16, 2025 am 11:20 AM

讓我們嘗試在這裡造成一個術語:“靜態表單提供商”。你帶上html

See all articles