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

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

В Windows 8 при создании приложений в стиле Metro с использованием HTML/JS/CSS все шаблоны включают серию мультимедийных запросов CSS в файле 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) {}

Я хорошо знаком с медиа-запросами, поэтому мои вопросы: Зачем нужны выражения с префиксом поставщика в 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)

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


person Brandon Satrom    schedule 13.03.2012    source источник
comment
единственный пробел для меня заключается в том, почему я не мог просто определить одно правило, используя 'min-' и ориентацию для достижения того же результата. не можете написать всеобъемлющий медиа-запрос, используя значения пикселей, которые будут адаптироваться к любому разрешению, поддерживаемому Metro?   -  person BoltClock    schedule 13.03.2012
comment
возможно, хотя, насколько я понимаю, разрешения довольно стабильны, хотя размеры экрана могут различаться. Я думаю, что этих двух минимальных значений в сочетании с правилом ориентации будет достаточно, чтобы охватить всю гамму.   -  person Brandon Satrom    schedule 13.03.2012


Ответы (1)


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

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

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

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

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

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

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

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

person Simon West    schedule 13.03.2012
comment
То, что я надеялся сказать, но не смог изложить настолько красноречиво, чтобы самому ответить. +1 - person BoltClock; 13.03.2012
comment
Я знаком с причиной для префиксов поставщиков в целом, спасибо. :) Однако я не знал, что «состояние просмотра» было чем-то, что подлежит стандартизации. У вас есть цитата? В противном случае это имеет смысл. Ваше предположение состоит в том, что цель здесь состоит в том, чтобы создать семантическое сокращение для разработчиков. Я вижу в этом логику. - person Brandon Satrom; 13.03.2012
comment
Честно говоря, я не знаю, представила ли Microsoft официально предложенную версию спецификации, быстрый поиск в общедоступном списке рассылки показывает это обсуждение о сотрудничестве рабочей группы CSS с рабочей группой веб-приложений над полноэкранным API по разным причинам. Что относится к этому. - person Simon West; 13.03.2012
comment
Обновление Microsoft выпустила сообщение в блоге здесь о своих мыслях об адаптации контента к нескольким разрешениям экрана и о том, что объясняет их мыслительный процесс. И для меня это сводится к тому, что они не хотят думать о пикселях так же, как об относительных областях экрана (Меню X (10% ширины экрана, а не 120 пикселей), чтобы приложения масштабировались соответствующим образом к размерам экрана, что было бы желательным). с беспиксельным замедлением мультимедиа. - person Simon West; 22.03.2012