IE10删除右对齐输入上的填充



我在IE10中遇到了一些关于右对齐输入字段中填充的问题。

检查这把小提琴http://jsfiddle.net/fhWhn/

::-ms-clear, ::-ms-clear{
display: none;
}

这删除了"IE10图标",但如果我想保留这些图标并保留填充,该怎么办?有没有另一种更聪明的方法可以在击球后保持填充物?

我遇到了同样的问题。要恢复填充,只需将文本框的值设置为模糊即可。

我的简单解决方案:

$("input[type='text']").blur(function (evt){
var $element = $(this);
$element.val($element.val());
});

一个可能的解决方法是在输入中使用样式direction: rtl;,这将把×移到元素的左侧。然而,使用从右到左的行为可能不适合您的情况。

我认为JustinTolle的答案是最好的方法。

示例:

input[type="text"].field-al-right{
text-align:right;
direction:rtl;
}

编辑:Eric的解决方案对我来说很有效,而且更好,但我将把这个答案留在这里,以防未来版本的IE需要不同的修复

新IE,新IE特定渲染问题。。。

我一直在调试同样的行为。到目前为止,我发现唯一有效的是:

  1. 从输入中移除焦点(即使显式地为每个元素设置"paddingright",在它具有焦点时也没有效果)
  2. 将填充权限值设置为不同的值设置为正确的值(将其设置为正确值不会触发任何更改,可能是因为布局系统知道计算的CSS值没有更改,因此决定不需要重新绘制)
  3. 等待重新绘制(立即——甚至在超时1或2毫秒后——将属性再次设置为正确值不会产生任何变化,可能是因为没有按照上述进行重新绘制)
  4. 将属性设置为正确的值(例如,使用$this.css("padding-right", ""),它删除任何每个元素的值,并允许计算的CSS值接管)

然而,这当然是不可取的,因为当用户可能正在打字时,这涉及到从输入中移除焦点。

您是否尝试在css中添加"框大小"?

* {
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
box-sizing: border-box;
padding: 0;
margin: 0;
}   

最新更新