螢幕設定

回應式網頁設計在許多滿足手機的需求方面,智慧型手機問世前,很少人認真考慮了網站在手持裝置上應呈現的外觀和風格。隨著手機內建網路瀏覽器的問世,這個趨勢也徹底改變。

回應式網頁設計鼓勵抱持不同假設的思維。先前我們常以為網站只能透過電腦瀏覽,但現在也常是為手機和平板電腦設計同一個網站。事實上,行動裝置使用率已逐漸降低

這種反應靈敏的思維模式,能滿足您的未來需求。使用者瀏覽自己的網站和螢幕時,現在我們甚至能想像不到。這個思維也延伸到螢幕之外。使用者現在也能在沒有螢幕的裝置上觀看你的內容。如果語音助理使用明確的語意 HTML 基礎,就能使用你的網站。

螢幕上的世界也仍在實驗階段。現今市面上有許多配備摺疊式螢幕的裝置。而且會對您的設計帶來一些挑戰。

一系列不同設定的折疊式手機。

雙螢幕

折疊式裝置的使用者可以選擇要讓網路瀏覽器只佔據其中一個螢幕,還是能同時顯示在兩個螢幕上。如果瀏覽器跨越兩個螢幕,顯示的網站就會根據兩個螢幕之間的轉軸而細分。內容看起來不太美觀。

橫跨兩個螢幕的網站。文字的水平流動會因為螢幕之間的轉軸中斷。

可視區域區隔

有一項實驗性媒體功能,可偵測網站是否在雙螢幕裝置上顯示。建議的媒體功能名稱為 viewport-segments。共有以下兩種類型:horizontal-viewport-segmentsvertical-viewport-segments

如果 horizontal-viewport-segments 媒體功能回報 2 值,vertical-viewport-segments 回報的值為 1,表示裝置上的轉軸是從上往下執行,並將內容分成兩個並排面板。

@media (horizontal-viewport-segments: 2) and (vertical-viewport-segments: 1) {
  // Styles for side-by-side screens.
}

如果 vertical-viewport-segments 媒體功能回報 2 值,horizontal-viewport-segments 回報的值是 1,則轉軸會從側邊執行,將內容分割成兩個面板並排顯示。

@media (vertical-viewport-segments: 2) and (horizontal-viewport-segments: 1) {
  // Styles for stacked screens.
}
展示可視區域區隔的圖表。
Microsoft Edge 說明圖表。

如果 vertical-viewport-segmentshorizontal-viewport-segments 回報的值為 1,表示網站只會顯示在一個畫面中,即使裝置有多個畫面也一樣。這相當於不使用任何媒體查詢。

環境變數

viewport-segments 媒體功能本身無法協助您設計惱人的轉軸。您必須知道轉軸的大小。這時環境變數就能派上用場。

CSS 中的環境變數可讓你將不愉快的裝置入侵因素列入考量。舉例來說,您可以設計圍繞「凹槽」設計在 iPhone X 上使用環境值 safe-area-inset-topsafe-area-inset-rightsafe-area-inset-bottomsafe-area-inset-left。這些關鍵字會納入 env() 函式中。

body {
  padding-top: env(safe-area-inset-top);
  padding-right: env(safe-area-inset-right);
  padding-bottom: env(safe-area-inset-bottom);
  padding-left: env(safe-area-inset-left);
}

環境變數的運作方式與自訂屬性類似,這表示在環境變數不存在時,您可以傳入備用選項。

body {
  padding-top: env(safe-area-inset-top, 1em);
  padding-right: env(safe-area-inset-right, 1em);
  padding-bottom: env(safe-area-inset-bottom, 1em);
  padding-left: env(safe-area-inset-left, 1em);
}

如要在 iPhone X 上運作這些環境變數,請更新指定 viewport 資訊的 meta 元素:

<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover">

網頁版面配置現在會佔滿整個可視區域,並以裝置提供的插邊值安全地填充文件。

系統提議針對摺疊式螢幕提供六個新的環境變數:viewport-segment-widthviewport-segment-heightviewport-segment-topviewport-segment-leftviewport-segment-bottomviewport-segment-right

,瞭解如何調查及移除這項存取權。
顯示雙螢幕環境變數的圖表。
Microsoft Edge 說明圖表。
,瞭解如何調查及移除這項存取權。

以下是含有兩欄的版面配置範例,寬度比另一欄寬。

@media (min-width: 45em) {
  main {
    display: flex;
    flex-direction: row;
  }
  main article {
    flex: 2;
  }
  main aside {
    flex: 1;
  }
}

版面配置會分割在兩個畫面之間,轉軸中斷較大的資料欄。

如果是具有垂直轉軸的雙螢幕,請將第一欄設定為第一個畫面的寬度,第二欄則設定為第二個螢幕的寬度。

@media (horizontal-viewport-segments: 2) and (vertical-viewport-segments: 1) {
  main article {
    flex: 1 1 env(viewport-segment-width 0 0);
  }
  main aside {
    flex: 1;
  }
}

版面配置會平均分配給兩個畫面,而且不會有明顯幹擾。

將雙螢幕視為機會。也許一個螢幕可用來顯示可捲動的文字內容,另一個則顯示圖片或地圖等固定元素。

圖表說明定位服務在兩個畫面上分割出來,另一個畫面顯示地圖,另一個畫面則顯示路線。
Microsoft Edge 說明工具的圖表。

未來

摺疊式裝置會成為下一個大螢幕嗎?說不定沒有人無法預測行動裝置會有多熱門,因此對於日後的板型規格可以抱持開放的態度。

最重要的是,您應確保網站能因應未來可能發生的任何變化。其中,回應式設計有各式各樣的用途:除了一組實用技巧外,還可以做為打造未來網路世界的心態。

隨堂測驗

測試您對螢幕設定的瞭解程度

下列哪項媒體查詢指定以分割橫向模式的摺疊式裝置?

@media (horizontal-viewport-segments: 2) and (vertical-viewport-segments: 1)
已設定 2 欄和 1 列並分割橫向的畫面。
@media (vertical-viewport-segments: 2) and (horizontal-viewport-segments: 1)
2 列和 1 欄,分割直向。
@media (vertical-viewport-segments: 2) and (horizontal-viewport-segments: 2)
2 列和 2 欄,共有 4 種方式。
@media (vertical-viewport-segments: 1) and (horizontal-viewport-segments: 1)
單一儲存格,不得分割。

什麼是環境變數?例如 env(safe-area-inset-top)

使用者所在天氣相關變數。
環境錯誤,這些 CSS 變數與使用者實際所在的環境環境無關。
自訂建構時間變數。
雖然建構時間、編譯方式、變數很實用,但與指定的環境變數不同。
內含瀏覽器專屬屬性的變數,可用於根據瀏覽器和裝置調整網站。
瀏覽器和作者可藉此合作,創造獨特的可視區域環境或影響屬性的瀏覽器。
變成綠色且對環境更加安全的變數。
CSS 和變數對世界汙染沒有影響較小。