我在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;
,这将把×
移到元素的左侧。然而,使用从右到左的行为可能不适合您的情况。
示例:
input[type="text"].field-al-right{
text-align:right;
direction:rtl;
}
编辑:Eric的解决方案对我来说很有效,而且更好,但我将把这个答案留在这里,以防未来版本的IE需要不同的修复
新IE,新IE特定渲染问题。。。
我一直在调试同样的行为。到目前为止,我发现唯一有效的是:
- 从输入中移除焦点(即使显式地为每个元素设置"paddingright",在它具有焦点时也没有效果)
- 将填充权限值设置为不同的值设置为正确的值(将其设置为正确值不会触发任何更改,可能是因为布局系统知道计算的CSS值没有更改,因此决定不需要重新绘制)
- 等待重新绘制(立即——甚至在超时1或2毫秒后——将属性再次设置为正确值不会产生任何变化,可能是因为没有按照上述进行重新绘制)
- 将属性设置为正确的值(例如,使用
$this.css("padding-right", "")
,它删除任何每个元素的值,并允许计算的CSS值接管)
然而,这当然是不可取的,因为当用户可能正在打字时,这涉及到从输入中移除焦点。
您是否尝试在css中添加"框大小"?
* {
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
box-sizing: border-box;
padding: 0;
margin: 0;
}