Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否有一个“问题”;“良好做法”;检测Firefox的方法?_Javascript_Css_Firefox_Colors_Browser Detection - Fatal编程技术网

Javascript 是否有一个“问题”;“良好做法”;检测Firefox的方法?

Javascript 是否有一个“问题”;“良好做法”;检测Firefox的方法?,javascript,css,firefox,colors,browser-detection,Javascript,Css,Firefox,Colors,Browser Detection,如果我读到这个问题的标题,之前从未见过它,我的第一个回答将是“不要!改用功能检测!”,这很有道理,但是,这不是我试图检测的功能,而是Firefox呈现颜色的方式 由于某种原因,到目前为止我测试过的所有其他浏览器都呈现出某种十六进制的颜色,这种颜色在图像之间显示得非常漂亮,但在Firefox中却显得更亮 我已经阅读了可能的原因(例如,关于颜色配置文件的一些内容,我刚刚探讨了主题)和“about:config”文件: 知道为什么是好的,但似乎没有关于网页设计师应该如何处理这一问题的话题(另外,

如果我读到这个问题的标题,之前从未见过它,我的第一个回答将是“不要!改用功能检测!”,这很有道理,但是,这不是我试图检测的功能,而是Firefox呈现颜色的方式

由于某种原因,到目前为止我测试过的所有其他浏览器都呈现出某种十六进制的颜色,这种颜色在图像之间显示得非常漂亮,但在Firefox中却显得更亮

我已经阅读了可能的原因(例如,关于颜色配置文件的一些内容,我刚刚探讨了主题)和“about:config”文件:

知道为什么是好的,但似乎没有关于网页设计师应该如何处理这一问题的话题(另外,我可能混淆了这个问题,因为他们似乎谈论了很多关于图像的内容,而我遇到的问题是,不是图像,而是一个简单的十六进制颜色代码值)

这里有几个屏幕截图,显示了正确显示的颜色之间的差异(第一个显示)和Firefox呈现颜色的方式(第二个显示)。请注意每个“按钮”图像之间的颜色(实际上只是一个“鼠标悬停”下拉框)。还要注意,图像之间显示的小颜色不是图像本身,而是标准CSS渲染的十六进制颜色:

IE 10:

Firefox21.0:

我对任何能让Firefox以IE和Chrome相同的方式显示颜色的解决方案都很满意(在32位和64位上都进行了测试,但仍然只有Firefox能做到这一点),但我知道我不会改变“about:config”因此,如果我能可靠地检测Firefox,也许我可以将其颜色调整为较暗的色调。不幸的是,我(可能非常明智地)从不使用浏览器检测,因为我知道它是多么不稳定和不可靠

有没有可靠的(更不用说,经得起未来考验的)方法来检测网页设计师的Firefox?我只是使用JavaScript/jQuery来编写客户端脚本

--------------更新------------------

好的,这是呈现边框颜色的CSS。红色的is按钮有两个类:DDL和visType,而灰色的ish按钮有DDL和groupType类

.DDL.visType
{
    background-color: #bb9191;
    border-right: 2px inset #ba8c8c;
    color: #1a5c17;
}

.DDL.groupType
{
    background-color: #e7e7e7;
    border-right: 2px inset #989898;
    color: #0b3773;
}

因此,就FireFox而言,你可以看到这个CSS没有任何问题。事实上,当查看Firebug和Chrome开发工具中呈现的真实颜色时,都会发现红色按钮右边框的实际呈现颜色是相同的(在rgb中,它转换为186140140).

对于这个场景,问题显然是Firefox呈现“插入式”边框样式的方式有多不同。我为什么一开始就把它作为插入式边框,有点模糊。我可能是在测试这么薄(
2px;
)边框上的各种外观(考虑到非常窄的宽度,这些差异几乎不明显)

一旦我将此样式更改为
solid;
,颜色差异就不那么明显了:

铬合金27.0.1453.110米:

Firefox21.0:

上面显示的CSS代码与新的更改相同(仅将两次出现的内容从
inset
更改为
solid
):


我想,这是一个简单的解决方案,解决了一个本来就不应该出现的问题(为什么要用
inset
来解决这个问题呢?),但缩小范围是相当困难的。

通常情况下,您不应该在css/设计特定任务中使用JavaScript。我不确定您所说的css/设计特定任务是什么意思?我使用jQuery的
.css()
如果需要,可以随时动态更改颜色。你也可以用另一种方法:扔掉图像,使用
线性渐变
s作为按钮的背景。你可能只是使用了不好的CSS,如果你在测试环境中给我们CSS代码(例如,在JSFIDLE中重新创建),就可以修复。然后,我们将能够破译问题是Firefox还是CSS。@VoidKing我的意思是,我可以告诉您,查看菜单时,可能不是颜色显示不正确,而是其他原因。如果您可以使用导致问题的菜单的静态HTML和CSS重新创建问题,我们也许能帮助你。
.DDL.visType
{
    background-color: #bb9191;
    border-right: 2px solid #ba8c8c;
    color: #1a5c17;
}

.DDL.groupType
{
    background-color: #e7e7e7;
    border-right: 2px solid #989898;
    color: #0b3773;
}