Viewport Segments API

可用性有限

此特性不是基線特性,因為它在一些最廣泛使用的瀏覽器中不起作用。

實驗性: 這是一項實驗性技術
在生產中使用此技術之前,請仔細檢查瀏覽器相容性表格

Viewport Segments API 允許開發者使用 CSS 和 JavaScript 訪問邏輯上分離的視口片段的位置和尺寸。視口片段 是在視口被一個或多個硬體功能(如摺疊屏或多個顯示器之間的鉸鏈)分割時建立的。藉助 Viewport Segments API,開發者可以建立針對不同視口片段尺寸和佈局進行最佳化的響應式設計。

概念與用法

當裝置擁有多個顯示屏,並且這些顯示屏被設計成作為同一顯示錶面的不同片段時(例如摺疊屏或帶鉸鏈螢幕的智慧手機),會給開發者帶來一些獨特的設計挑戰。你可以將佈局針對單個顯示屏進行最佳化,但如何確保設計元素能夠舒適地適應不同的片段,而不是被一分為二?又該如何防止內容被物理摺疊/連線處遮擋?

瞭解使用者裝置螢幕是否具有摺疊或連線處、不同片段的大小、它們是否尺寸相同以及片段的朝向(是並排還是上下排列)可能很重要。Viewport Segments API 能夠透過 CSS 和 JavaScript 功能訪問使用者的裝置分段資訊,提供對顯示屏內每個視口片段的位置和尺寸的訪問,包括用於檢測不同水平和垂直區域佈局的 @media 功能。

有關 API 工作原理的說明,請參閱 使用 Viewport Segments API

介面

視口

表示裝置的視口。提供對 Viewport.segments 屬性的訪問,該屬性返回一個 DOMRect 物件陣列,表示分段顯示屏內每個視口片段的位置和尺寸。

其他介面的擴充套件

Window.viewport

返回一個 Viewport 物件例項,該例項提供有關裝置視口當前狀態的資訊。

CSS 特性

horizontal-viewport-segments @media 特性

檢測裝置是否具有指定數量的水平排列的視口片段。

vertical-viewport-segments @media 特性

檢測裝置是否具有指定數量的垂直排列的視口片段。

視口片段環境變數

這些 環境變數 提供了對每個視口片段的邊緣座標和尺寸的訪問。

示例

您可以在 Viewport segment API 演示 中找到一個完整的示例,演示了上述功能的用法。

如果可能,您應該在摺疊屏裝置上檢視此演示。當前的瀏覽器開發者工具支援模擬摺疊屏裝置,但不包括不同物理片段的模擬。

規範

規範
CSS 視口模組級別 1
# dom-viewport-segments

瀏覽器相容性

另見