Чем -ms-view-state отличается от стандартных выражений CSS Media Queries? - PullRequest
2 голосов
/ 13 марта 2012

Это частичный вопрос и частичная надежда на подтверждение. У меня есть подозрения относительно ответа на этот вопрос, и я добавлю свои два цента, но я хотел бы получить независимое подтверждение, так как форумы Win8 не очень хорошо документировали эту особенность, которую я смог найти.

В Windows 8 при создании приложений в стиле Metro с использованием HTML / JS / CSS все шаблоны включают ряд CSS Media Queries в default.css. Это:

@media screen and (-ms-view-state: fullscreen-landscape) {}
@media screen and (-ms-view-state: filled) {}
@media screen and (-ms-view-state: snapped) {}
@media screen and (-ms-view-state: fullscreen-portrait) {}

Я хорошо знаком с Media Queries, поэтому у меня следующие вопросы: Почему нужны выражения с префиксом поставщика в Windows 8 и чем отличаются выражения -ms-view-state от стандартных выражений W3C, таких как ширина, высота и ориентация?

Вот мой вариант, пожалуйста, добавьте свой ниже, и подтвердите, опровергните или исправьте меня: я подозреваю, что эти правила похожи на стандартные правила, но немного более адаптивны, что означает, что вместо определения наборы правил, которые соответствуют заданной ширине и высоте, эти выражения охватывают состояние независимо от разрешения. Из-за этого я могу использовать одно правило для своего приложения в ландшафтном режиме -ms-view-state: fullscreen-landscape, и оно будет работать, когда приложение работает с разрешением 1366x768, 1920x1080 или 2560x1440. В противном случае мне пришлось бы определить эти правила три раза:

@media screen and (width: 1366px) and (height: 768px) {}
@media screen and (width: 1920px) and (height: 1080px) {}
@media screen and (width: 2560px) and (height: 1440px) {}

Предполагая, что мое утверждение верно, единственный пробел для меня состоит в том, почему я не мог тогда просто определить одно правило, используя 'min-' и ориентацию для достижения того же результата:

@media screen and (min-width: 1366px) and (min-height: 768px) and (orientation: landscape)

Единственное правило, стандартные выражения. Нет необходимости в версии с префиксом поставщика. Чего мне не хватает?

1 Ответ

3 голосов
/ 13 марта 2012

В ответ на два ваших вопроса

Почему в Windows 8 требуются выражения с префиксом поставщика?

Поскольку состояние представления не является частьюофициальных CSS3-спецификаций и префиксов вендоров есть точно, чтобы вендоры могли самостоятельно пробовать новые вещи вне спецификации, не нарушая их для всех остальных.

Чем выражения -ms-view-state отличаются от выраженийСтандартные выражения W3C, такие как ширина, высота и ориентация?

Они кажутся более семантическими по своему значению и менее ограничивающими фактические разрешения экрана или размеры.

И хотя да, ваш CSSМедиа-запрос @media screen and (min-width: 1366px) and (min-height: 768px) and (orientation: landscape) действительно сокращает три строки, которые вы ранее опубликовали, до одной, он не описывает, как выглядят состояния -ms-view-состояния, которые они пытаются достичь.

Кажется, они пытаются дать контекст разработчика / дизайнера тому, как их приложение используется в настоящее время, явно заявляя, что приложение работает либо в полноэкранном режиме, либо snapped (что, я полагаю, является режимом бок о бок, Microsoftпродемонстрировали наличие нескольких приложений, работающих в метро одновременно).

Обновление Microsoft выпустила сообщение в блоге, в котором рассказывается о своих дизайнерских решениях, касающихся разрешения экрана и тому подобного.Что относится к этому разговору и доступно здесь

...