提问者:小点点

IE10中文本输入的异常渲染伪影


当我们在IE10中查看我们的程序时,会出现一些非常不寻常的渲染。这在任何其他浏览器(Chrome、火狐、iOSSafari)中都不会发生,在IE9中也不会发生,当我将文档模式设置为IE9标准时,在IE10中也不会发生。

更糟糕的是,它不会发生在我正在试验的小提琴中。

这是坏版本的样子:

以下是使用文档模式IE9标准的好版本的外观:

是的,我知道我在问一个没有给出任何可复制代码的问题,但是当我拼命试图解决这个问题时(我们今天晚些时候会发布一个版本),我希望有人能给我一些想法去哪里看。

从IE的开发者工具视图中复制的代码行是:

<input class="generalTrackWidth" style="width: 167px;" type="text"/>

该类实际上用作jquery选择器,并且没有与之关联的css。

当我查看元素的样式设置时,它没有显示任何可以解释灰色框和白色外框的内容。填充是1px,边框是2px,边距是0px。输入是表格的一部分,但除此之外没有任何包含div的内容来呈现灰色边框和额外的白色填充。

我尝试过使用CSS来调整ms-Clear(参见Internet Explorer 10 Windows 8删除文本输入和密码操作图标),尽管我认为这不是问题所在。不是,但是当元素有焦点时出现的X看起来也不一样。

其他混淆变量:此元素是包含在jQueryUI对话框中的表的一部分。我做了一个测试小提琴,但错误并没有发生在那里。

另一点可能很重要的是,这是一个GWT项目。有问题的代码是纯JS/Html,但也许GWT的每个浏览器的特殊处理的某些部分对此负责。

知道我该找什么吗?


共1个答案

匿名用户

这归结为一个非常初级的错误。

一个月前,我看了

::-ms-value {
    margin: 5px;
    border-style: groove;
}

::-ms-browse {
    margin: 5px;
}

我认为这只对文件输入元素是明确的。正如ErikLaw在评论中提到的,-ms-value适用于所有输入。

修复很简单,我只需要让我的文件输入选择器更加具体。在我的例子中,因为我的文件输入有一个唯一的类,我只是将选择器设置为. uniqueClass::-ms-value.uniqueClass::-ms-Browse

这真的很难调试,因为IE的开发工具没有显示-ms-value(或-ms-Browse)伪类。因此,我没有想到查看我的css文件。