【问题标题】:High contrast CSS or JavaScript detection for FirefoxFirefox 的高对比度 CSS 或 JavaScript 检测
【发布时间】:2019-09-25 18:47:43
【问题描述】:

我正在尝试设计网站的高对比度版本。以下代码适用于 IE 和 Edge,但我需要检测 Firefox。

@media screen and (-ms-high-contrast: active) {}

我还可以将 JavaScript 检测用于高对比度和 Firefox。有什么建议吗?

【问题讨论】:

标签: css firefox accessibility contrast high-contrast


【解决方案1】:

我正在尝试设置网站的高对比度版本... ..需要 Firefox 检测


您正在使用的高对比度媒体查询,

@media screen and (-ms-high-contrast: active) {}

仅适用于 IE 和 Edge Legacy 浏览器。 (-ms 前缀代表 Microsoft。)


解决方案:

  1. 为 Windows 10 高对比度模式创建 JavaScript 测试。此函数添加一个不寻常颜色的 div,并测试它是否在附加到 DOM 后颜色发生变化。如果颜色发生变化,则说明您处于高对比度模式! (这也适用于 IE 和 Edge Legacy。)
highContrastMode = () => {
  const testDiv = document.createElement('div');
  testDiv.style.color = 'rgb(200, 100, 50)';
  document.body.appendChild(testDiv);
  const color = document.defaultView!.getComputedStyle(testDiv, null).color;
  document.body.removeChild(testDiv);

  return color !== 'rgb(200, 100, 50)' ? true : false;
}
  1. 为 Firefox 创建用户代理测试:
const isFirefox = window.navigator.userAgent.indexOf('Firefox') > -1;
  1. 然后应用您的 CSS!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-02-27
    • 2010-12-27
    • 1970-01-01
    • 1970-01-01
    • 2019-05-08
    • 2012-03-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多