我可以检测旧显示器并为其提供网页安全色吗?

时间:2011-05-19 17:36:12

标签: html colors web-safe-colors

我想在我的网站上的几个地方使用非网页安全颜色,包括背景。但我担心老电脑的访客。

我是否可以使用任何代码,如果访问者看不到非网页安全的颜色,会将颜色从非网页安全颜色更改为最近的网页安全颜色?

3 个答案:

答案 0 :(得分:4)

由于这个问题不能,据我所知,用简单的HTML回答,我发布这个JavaScript解决方案以提供另一种方法:

可以使用screen.colorDepth返回用户屏幕的颜色深度(以位为单位)。除了Firefox 3.x和4.1(beta)中的错误/错误实现。

var theImg = document.getElementsByTagName('img')[0];

if (screen.colorDepth < 32) {
    theImg.src = 'http://davidrhysthomas.co.uk/img/the_shat.png';
}
else {
    theImg.src = 'http://davidrhysthomas.co.uk/img/terry_thomas.png';
}

alert(screen.colorDepth);
关于PPK的

附录,Chromium 11 / Ubuntu 11.04 返回24而不是32,因此Firefox可能是正确的。

JS Fiddle demo

参考:

答案 1 :(得分:1)

我可能会在这里弄错,但是网页安全色的重点在于你的图像在具有较低颜色深度(例如8位颜色)的显示器上看起来会像在具有较高颜色深度的显示器上一样颜色深度(16/24位颜色)。这会发生,因为所有这些颜色应该(理论上)能够以所有颜色格式显示。

如果您的图像不是“网页安全”,并且您在具有8位颜色的系统上查看,则所有不符合显示器颜色功能的颜色应自动显示为适合的最接近的颜色。基本上,你不必“转换”它。颜色的位深度不允许它显示任何其他颜色,因此它必须包含一些内容,是下一个最接近的显示颜色。

也就是说,网页安全颜色是从显示器仅使用8位颜色开始的。我不认为这是你现在真正需要担心的事情,除非你知道你的观众正在使用非常非常古老的技术。

答案 2 :(得分:0)

如果使用十六进制/颜色代码而不是图像,浏览器将自动执行此操作。有了图像,它们就会抖落,优雅地降低了他们的经验而没有工作。

http://www.limov.com/colour/when-to-use-the-web-safe-palette.lml