在 390px 寬的手機上,有一整排版面擠成一團。

第一個想到的修法是把字縮小。我們縮了三次,每縮一次,某一塊變好,另一塊就變糟。

連量的方法都有問題

一開始我們用「折成幾行」來判斷擠不擠。這個指標會在兩種情況下騙人。

容器被隱藏的時候,寬度是零。一個收起來的面板,量出來永遠是一行,看起來完美。

溢出的內容被裁掉的時候,行數不會增加。畫面上少了半句話,數字上什麼事都沒有。

後來換成量內容實際的高度和容器高度的比值,而且要等元素真的顯示出來之後再量。

真正的問題

窄螢幕上擠成一團,很少是因為哪一個元素太大。比較常見的是,沒有任何一個元素被允許讓路。

主要內容、補充說明、日期與分類、操作按鈕,每一塊都覺得自己一定要在。畫面變窄,它們就一起變窄,最後每一塊都不好讀。

修法是排優先順序

我們替每一塊定了一個層級,再寫清楚畫面窄到多少以下,它該怎麼做:

  • 主要內容:一直都在,內容完整
  • 補充說明:窄到一定程度就收起來,不用縮小字來硬塞
  • 日期與分類:併成一行,或只留最重要的那一項
  • 操作按鈕:改成整列寬度,一個一行

字級沒有再動過。