Как проверить, находится ли пользователь в режиме высокой контрастности с помощью JavaScript или CSS - PullRequest
5 голосов
/ 17 декабря 2009

При нажатии Shift + Влево + Alt + Печать Windows переключается в режим высокой контрастности - есть ли шанс обнаружить, что на веб-странице (с использованием JavaScript или CSS)?

Есть ли шанс обнаружить это в HTTP-Request (например, на стороне сервера, например, через PHP или Ruby)?

Ответы [ 3 ]

6 голосов
/ 17 декабря 2009

Согласно этой статье об использовании CSS-спрайтов с высокой контрастностью , в режиме высокой контрастности в Windows фоновые изображения должны быть установлены на «none», и это также меняет цвет фона. Это должно переопределить любую таблицу стилей CSS. Таким образом, вы можете выполнить некоторый JavaScript, чтобы обнаружить его после первоначального рендеринга. Проверьте его демонстрационную страницу (текст "FYI [Not] в режиме высокой контрастности").

У меня есть Mac (FYI-переключатель, использующий Cmd + Alt + Ctrl + 8), и его методика не работает для меня, но он говорит, что он работает в Windows.

Если это работает, вы можете либо использовать JavaScript, чтобы просто изменить свой CSS, либо установить (сессионный) cookie и перезагрузить страницу, чтобы передать ее на сервер и выполнить действия на стороне сервера.

4 голосов
/ 13 ноября 2013

У меня на Win8 с (на рабочем столе -) IE работает следующее:

<style type="text/css">
// ...
@media screen and (-ms-high-contrast: active) {
   /* any rules may come here, for example: */
   .leftMenu a:hover { text-decoration: underline; }
}
// ...
</style>

Я думаю, что это должно работать и с приложениями Магазина Windows. Это не полное решение, но, возможно, немного полезное.

MSDN doc: @ media , -ms-высококонтрастный . Также стоит упомянуть описание Высококонтрастный режим .

1 голос
/ 24 октября 2017

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

@ мультимедийный экран и (-ms-высокая контрастность: чёрный на белом) { / * Поместите свой код стиля ............. * / }

@ мультимедийный экран и (-ms-высокая контрастность: белый на черном) { / * Поместите свой код стиля ............. * / }

...