Spec-Zone.ru › CSS

Медиафункция CSS `vertical-viewport-segments`

Базовый уровень Ограниченная доступность

Эта функция не входит в базовый уровень, поскольку не работает в некоторых самых популярных браузерах.

Экспериментальная: Это экспериментальная технология
Перед использованием в рабочей среде внимательно ознакомьтесь с таблицей совместимости с браузерами.

Экспериментальная: Это экспериментальная технология
Перед использованием в рабочей среде внимательно ознакомьтесь с таблицей совместимости с браузерами.

vertical-viewport-segments — CSS-медиафункция, которая определяет, имеет ли устройство заданное количество вертикально (сверху вниз) расположенных сегментов области просмотра.

Связанная с API сегментов области просмотра, функция vertical-viewport-segments может использоваться для создания адаптивных дизайнов, которые хорошо работают на устройствах с несколькими областями просмотра — устройствах с дисплеем, разделённым на логически отдельные сегменты области просмотра, например на складных устройствах или устройствах с шарниром.

Синтаксис

Медиафункция vertical-viewport-segments задаётся значением <integer> 1 или больше, представляющим количество вертикальных сегментов области просмотра устройства.

  • Значение будет равно 1 для:
    • Нескладного устройства (например, обычного смартфона или планшета с одним экраном).
    • Складного устройства, которое разложено или закрыто (в continuous положении устройства).
    • Устройства с двумя экранами и шарниром или складного устройства, которое сложено и расположено горизонтально, так что сегменты находятся рядом друг с другом.
  • Значение будет равно 2 для устройства с двумя экранами и шарниром или складного устройства, которое сложено (в folded положении устройства) и расположено вертикально, так что сегменты находятся один над другим.
  • Значение может быть больше 2 для складных устройств с несколькими сгибами.

Примеры

Базовое использование vertical-viewport-segments

В этом примере мы используем медиазапрос vertical-viewport-segments для обработки случая складных устройств, в которых сегменты расположены один над другим.

Мы задаём для верхнего контейнера высоту, равную высоте верхнего сегмента (env(viewport-segment-height 0 0)), а для нижнего контейнера — высоту, равную высоте нижнего сегмента (env(viewport-segment-height 0 1)).

Чтобы вычислить высоту сгиба между ними, мы вычитаем смещение нижнего края верхнего контейнера из смещения верхнего края нижнего контейнера (calc(env(viewport-segment-top 0 1) - env(viewport-segment-bottom 0 0));).

.wrapper {
  height: 100%;
  display: flex;
}

@media (vertical-viewport-segments: 2) {
  .wrapper {
    flex-direction: column;
  }

  .list-view {
    height: env(viewport-segment-height 0 0);
  }

  .fold {
    width: 100%;
    height: calc(
      env(viewport-segment-top 0 1) - env(viewport-segment-bottom 0 0)
    );
    background-color: black;
  }

  .detail-view {
    height: env(viewport-segment-height 0 1);
  }
}

Полностью работающий пример см. в нашей демонстрации API сегментов области просмотра (исходный код). Также ознакомьтесь с разделом Использование API сегментов области просмотра, где подробно объясняется демонстрация.

Спецификации

Спецификация
Медиазапросы, уровень 5
# mf-vertical-viewport-segments

Совместимость с браузерами

Настольные Мобильные
Chrome Edge Firefox Opera Safari Chrome для Android Firefox для Android Opera для Android Safari на iOS Samsung Internet WebView для Android WebView на iOS
vertical-viewport-segments
138
138
Нет
122
Нет
138
Нет
91
Нет
30.0
138
Нет

См. также

  • horizontal-viewport-segments @media медиафункция
  • API сегментов области просмотра
  • Origin trial для Foldable APIs на 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/vertical-viewport-segments

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API