Медиавозможность CSS `horizontal-viewport-segments`
Baseline Ограниченная доступность
Эта функция не входит в Baseline, поскольку она не работает в некоторых из наиболее широко используемых браузеров.
Экспериментальная: Это экспериментальная технология
Перед использованием в рабочей среде внимательно изучите таблицу совместимости с браузерами.
Экспериментальная: Это экспериментальная технология
Перед использованием в рабочей среде внимательно изучите таблицу совместимости с браузерами.
Медиавозможность CSS CSS horizontal-viewport-segments определяет, имеет ли устройство заданное количество сегментов области просмотра, расположенных горизонтально (рядом друг с другом).
Связанная с API сегментов области просмотра, возможность vertical-viewport-segments может использоваться для создания адаптивных дизайнов, которые хорошо работают на устройствах с несколькими областями просмотра — устройствах с дисплеем, разделённым на логически отдельные сегменты области просмотра, например складных устройствах или устройствах с шарниром.
Синтаксис
Медиавозможность horizontal-viewport-segments задаётся значением <integer> 1 или больше, которое представляет количество горизонтальных сегментов области просмотра устройства.
- Значение будет равно
1для:- Нескладного устройства (например, обычного смартфона или планшета с одним экраном)
- Складного устройства, которое разложено или закрыто (в положении устройства
continuous). - Устройства с двумя экранами на шарнире или складного устройства, которое в данный момент сложено и расположено вертикально, так что сегменты находятся один над другим.
- Значение будет равно
2для устройства с двумя экранами на шарнире или складного устройства, которое в данный момент сложено (в положении устройстваfolded) и расположено горизонтально, так что сегменты находятся рядом друг с другом. - Для складных устройств с более чем одним сгибом значение может быть больше
2.
Примеры
Базовое использование horizontal-viewport-segments
В этом примере мы используем медиазапрос horizontal-viewport-segments, чтобы обработать случай складных устройств, у которых сегменты расположены рядом друг с другом.
Мы задаём ширину левого контейнера равной ширине левого сегмента (env(viewport-segment-width 0 0)), а ширину правого контейнера — равной ширине правого сегмента (env(viewport-segment-width 1 0)).
Чтобы вычислить ширину сгиба между ними, мы вычитаем смещение левого края правого контейнера из смещения правого края левого контейнера (calc(env(viewport-segment-left 1 0) - env(viewport-segment-right 0 0));).
.wrapper {
height: 100%;
display: flex;
}
@media (horizontal-viewport-segments: 2) {
.wrapper {
flex-direction: row;
}
.list-view {
width: env(viewport-segment-width 0 0);
}
.fold {
width: calc(
env(viewport-segment-left 1 0) - env(viewport-segment-right 0 0)
);
background-color: black;
height: 100%;
}
.detail-view {
width: env(viewport-segment-width 1 0);
}
}
Полный рабочий пример смотрите в нашей демонстрации API сегментов области просмотра (исходный код). Также ознакомьтесь с разделом Использование API сегментов области просмотра, где подробно объясняется демонстрационный пример.
Спецификации
Совместимость с браузерами
| Настольные | Мобильные | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari для iOS | Samsung Internet | WebView Android | WebView для iOS | |
horizontal-viewport-segments |
138 |
138 |
Нет |
122 |
Нет |
138 |
Нет |
91 |
Нет |
30.0 |
138 |
Нет |
См. также
-
vertical-viewport-segments@mediafeature - API сегментов области просмотра
- Origin trial для API складных устройств на developer.chrome.com (2024)
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/At-rules/@media/horizontal-viewport-segments