Skip to main content

Command Palette

Search for a command to run...

前端踩坑實錄:用 user-scalable=0 擋放大,還有哪些更溫柔的做法?

Updated
•View as Markdown
Y

一言敝之就是職業婦女。

其實沒有,還是只有那兩招。

這個議題早些年常遇到,即時現在還是常遇到(?
還是一樣重寫解法,專案中有搜尋部分,
在特定型號 iOS 18.4, iPhone 16 Plus 再點開搜尋(input) 會自動放大,
如下圖,我應該都有好好碼到吧(?

會發現 input 焦點後,畫面會被 zoom in 放大,主要原因

  • 行動版(特別是 iOS Safari)特定版本下(比如本案是在 iOS 18.4, iPhone 16 Plus下)
    在點擊 input/textarea 時,若字體小於 16px,瀏覽器會自動放大頁面,確保可讀性。

  • 現象:畫面被放大後版面跑版、fixed 元素亂飄、使用者體驗怪怪的。

解法有以下:

  • 在 viewport meta 加上 user-scalable=0, maximum-scale=1.0,禁止縮放。

      <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" />
    
    • 優點:最省事,立即解決放大問題。(還可以快速指回給 QC 測試)

    • 風險與可近用性:會犧牲無障礙需求(使用者無法放大頁面),對長輩族群與低視力使用者不友善;某些設計規範(如 WCAG)不建議這麼做。 => 但實際上測試還是可以放大,問了一下 AI 大哥表示:

💡
即使你在 meta viewport 寫了 user-scalable=0、maximum-scale=1.0,許多瀏覽器(特別是 iOS Safari、Chrome Android 的某些版本/旗標設定)會出於可近用性考量,強制允許縮放。所以如果真的是不允許縮放,真的要用魔法打敗魔法了喔

或是 font 調整成 16px,請看[這篇](https://stackoverflow.com/questions/2989263/disable-auto-zoom-in-input-text-tag-safari-on-iphone)\,歷經 15 年的 stackoverflow 依然有效:)

但因為這不符合當初設定 PBI,所以就 ry,但以後我一定會記得有 input 說服UI/UX 一定要 16px,否則…

會浪費能量 debug XD

如果以上都做過,發現還是有些許的飄移
放大絕

     <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0, maximum-scale=1.0, minimum-scale=1.0" />

maximum-scale=1.0, minimum-scale=1.0 一起設定,但是畫面可能會沒辦法放大縮小(自己在裝置測試看看ㄟ)

本案完結,收工,會不會再過 15 年,此篇依然有效吧(?)

More from this blog

Uncaught Error: Minified React error #329 發生以及可能解決方向

重點:Minified React error #329(Unknown root exit status)常見於 SSR 與 CSR 首次渲染輸出不一致(資料或節點結構不同)。 1. 現象 狀況條件表徵 首次載入/重新整理偶發錯誤無法重現的環境使用慢速網路(3G) + 可重現的環境機率出現Console 拋 #329 首屏閃動 / 全量替換SSR 已渲染列表, CSR 初始為空UI 閃爍/卡住/無動作 浮動元件顯示異常條件 mount 多個節點位置跳動 / 佈局不穩 2...

Nov 17, 2025

Redmine 好用的 Raycast 插件與自製好用 plug-in

我是 Raycast 的愛用者 <3 工作上常需要使用 Eedmine 切卡,看 task 之類的,我個人偏好Asana or Jira 自動化和更完整串流整個公司流程的任務,可本人就是適應力強,縱使覺得不太習慣的工作(謙虛的說法)也會想辦法搞得好用 推薦一個插件,和我自己寫的 plug-in jwicker 寫的 Raycast Redmine https://www.raycast.com/jwickers/redmine 此插件可以在 Raycast 中快速搜尋並開啟 Redmine 的 ...

Nov 10, 2025

切一下,世界安靜了:aten 的 Kvm Us3312 讓我少罵三句幹的雙系統配置術

目前敝司環境主要配置一台 windows 筆電(收信使用:P)和我自己的 Mac air,還有一台 BenQ 27吋的螢幕,Logi K855 + Logi Lift,除了 window 筆電,其他都是我自備的 純粹就是我想搭配白色系的桌面:P 最開始我是把 window 收在置物櫃,因 windows 筆電公司有鎖藍牙,所以無法透過K855 + Lift 多頻切換方式去連線,我也不想透過 usb 方式連線鍵鼠組,所以早期透過 Mac air APP 「Windows APP」遠端連線到 wi...

Oct 30, 2025

Yukki的腦洞很大

13 posts

職業婦女,前端工程師,

白天上日班(工作),晚上上晚班(家庭)

日夜笙歌。