CSS clamp() 計算器

給小螢幕和大螢幕各設一個尺寸,得到一個中間平滑過渡的響應式 clamp() 值——字級、內距、外距、間距都能用。

設定
最小值
最大值
clamp() 值
clamp(1rem, 0.8333rem + 0.8333vw, 1.5rem)

結果的中間部分保留了 rem 成分,所以有人放大到 200% 時文字仍會變大——只用視口單位就做不到。

預覽

流動文字,大小剛好。

調整尺寸和螢幕寬度來產生這個值。

計算全部在你的瀏覽器裡完成,這裡輸入的內容不會上傳到 BroBroGo。

常見問題

clamp() 值是怎麼算出來的?

你給兩個點:小螢幕寬度下的一個尺寸,和大螢幕寬度下的一個尺寸。工具在兩點之間畫一條直線,螢幕變寬時尺寸就平滑增大,再用 clamp() 把它包起來,讓它既不會小於你的小螢幕尺寸,也不會大於大螢幕尺寸。兩個寬度之間尺寸流動縮放,超出這個範圍就停在最近的界限上。

為什麼結果用 rem 和 vw,而不是像素?

上下限用 rem,中間會變化的部分也保留了 rem 成分,所以讀者放大頁面或調高瀏覽器預設字級時文字仍會跟著變大——只用像素或只用視口單位就可能做不到。你按像素輸入是因為大多數人習慣這麼想,工具會用你的根字級換算成 rem。

除了字級,能用來做間距嗎?

可以。同一個值也能用在內距、外距、間距、寬度或高度上——任何需要長度的地方都行。把預覽切到「方塊」就能看到間距而不是文字在變大。如果小螢幕和大螢幕尺寸一樣,結果會退化成一個固定長度,因為沒有可縮放的空間。

所有瀏覽器都支援 clamp() 嗎?

支援——自 2020 年起所有主流瀏覽器都支援 clamp(),可以直接用,不用寫退回方案。如果最大值特別大或變化特別快,建議放大到 200% 檢查一下,確認需要放大的讀者仍能看到文字變大。

認識 CSS clamp() 與響應式設計

在現代網頁設計中,確保版面與文字能適應各種螢幕尺寸是至關重要的課題。CSS clamp() 函數提供了一種優雅的解決方案,它允許設定一個隨螢幕寬度平滑縮放的數值,同時限制其最小值與最大值。

本工具的作用是計算出一個 CSS clamp() 值,讓尺寸在不同螢幕寬度之間流暢地進行線性縮放。使用者只需提供小螢幕與大螢幕對應的尺寸,工具便會自動產生對應的 clamp() 函數。這個函數能確保最終尺寸在小螢幕下不低於設定的最小值,在大螢幕下不超過設定的最大值,而在兩者之間則隨著視口寬度(Viewport Width)的變化進行流動縮放。

此技術的應用範圍非常廣泛,不僅適用於流動字級(Fluid Typography),也同樣適用於內距(padding)、外距(margin)、間距(gap)、寬度(width)或高度(height)等各種長度屬性。


參數設定與計算原理

要產生精確的 clamp() 函數,工具需要以下幾項輸入參數:

  • 最小值(最小值)
    • 尺寸:小螢幕寬度下的目標尺寸(輸入像素值,工具會自動換算為 rem)。
    • 螢幕寬度:小螢幕的起點寬度。
  • 最大值(最大值)
    • 尺寸:大螢幕寬度下的目標尺寸(輸入像素值,工具會自動換算為 rem)。
    • 螢幕寬度:大螢幕的終點寬度。
  • 根字級:用於將輸入的像素(px)數值轉換為 rem 的基準值(例如預設的 16px)。

計算規則與邊界情況

  1. 數值驗證:所有輸入欄位均須填入有效數字。若輸入無效,系統將顯示錯誤訊息:「請在每個欄位裡填入有效數字。」。
  2. 螢幕寬度限制:小螢幕寬度必須是比大螢幕更小的正數。若不符合此條件,輸出的 clamp() 值將顯示為 ,並觸發錯誤提示:「小螢幕寬度必須是比大螢幕更小的正數。」。
  3. 等值退化:若設定的最小尺寸與最大尺寸完全相同,數值將失去流動縮放的空間,結果會直接退化為一個固定的長度值。此時系統會提示:「兩個尺寸相同,這是固定值,不會流動變化。」。
  4. 反向縮放:若最小尺寸大於最大尺寸,會產生反向縮放效果,系統會提示:「反向縮放——螢幕越大,尺寸反而越小。」。

響應式無障礙設計(Accessibility)

在網頁設計中,無障礙網頁標準(Accessibility)要求當使用者放大網頁或調整瀏覽器的預設字型大小時,文字必須能夠相應地放大。

如果僅使用視口單位(如 vw)來定義字型大小,當使用者進行瀏覽器縮放(Zoom in)時,文字大小將無法正確改變,這會嚴重損害視障使用者的閱讀體驗。

本工具產生的 clamp() 函數,其上下限均採用 rem 單位,且中間的動態變化部分也保留了 rem 成分(例如:clamp(1rem, 0.8333rem + 0.8333vw, 1.5rem))。這種設計確保了即使在流動字級的模式下,當讀者將頁面放大至 200% 或修改瀏覽器預設字級時,文字依然能夠正常增長,兼顧了視覺美感與無障礙體驗。


預覽模式與狀態顯示

計算器提供即時預覽功能,讓開發者在複製程式碼前先確認縮放效果。

  • 預覽模式:可切換為「文字」(文字,顯示「流動文字,大小剛好。」)或「方塊」(方塊,用於觀察間距或容器大小的變化)。
  • 預覽寬度:顯示當前預覽區域的模擬寬度。
  • 狀態訊息
    • 「調整尺寸和螢幕寬度來產生這個值。」(引導調整)。
    • 「流動縮放中」(當前寬度處於動態變化區間)。
    • 「停在最小值」(寬度小於或等於設定的小螢幕寬度)。
    • 「停在最大值」(寬度大於或等於設定的大螢幕寬度)。

隱私與資料處理說明

本工具極為注重您的隱私。所有的數值換算與線性插值計算全部在你的瀏覽器裡完成,這裡輸入的內容不會上傳到 BroBroGo。


常見問題 FAQ

clamp() 值是怎麼算出來的?

你給兩個點:小螢幕寬度下的一個尺寸,和大螢幕寬度下的一個尺寸。工具在兩點之間畫一條直線,螢幕變寬時尺寸就平滑增大,再用 clamp() 把它包起來,讓它既不會小於你的小螢幕尺寸,也不會大於大螢幕尺寸。兩個寬度之間尺寸流動縮放,超出這個範圍就停在最近的界限上。

為什麼結果用 rem 和 vw,而不是像素?

上下限用 rem,中間會變化的部分也保留了 rem 成分,所以讀者放大頁面或調高瀏覽器預設字級時文字仍會跟著變大——只用像素或只用視口單位就可能做不到。你按像素輸入是因為大多數人習慣這麼想,工具會用你的根字級換算成 rem。

除了字級,能用來做間距嗎?

可以。同一個值也能用在內距、外距、間距、寬度或高度上——任何需要長度的地方都行。把預覽切到「方塊」就能看到間距而不是文字在變大。如果小螢幕和大螢幕尺寸一樣,結果會退化成一個固定長度,因為沒有可縮放的空間。

所有瀏覽器都支援 clamp() 嗎?

支援——自 2020 年起所有主流瀏覽器都支援 clamp(),可以直接用,不用寫退回方案。如果最大值特別大或變化特別快,建議放大到 200% 檢查一下,確認需要放大的讀者仍能看到文字變大。