【发布时间】:2012-11-25 15:03:35
【问题描述】:
我在 IE10 中遇到了一些关于右对齐输入字段中的填充的奇怪问题。
检查这个小提琴http://jsfiddle.net/fhWhn/
::-ms-clear, ::-ms-clear{
display: none;
}
这会删除“IE10 图标”,但如果我想保留这些并保留我的填充,我该怎么办? 是否有另一种更智能的方法在 onblur 之后保持填充?
【问题讨论】:
我在 IE10 中遇到了一些关于右对齐输入字段中的填充的奇怪问题。
检查这个小提琴http://jsfiddle.net/fhWhn/
::-ms-clear, ::-ms-clear{
display: none;
}
这会删除“IE10 图标”,但如果我想保留这些并保留我的填充,我该怎么办? 是否有另一种更智能的方法在 onblur 之后保持填充?
【问题讨论】:
您是否尝试将“box-sizing”添加到您的 CSS 中?
* {
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
box-sizing: border-box;
padding: 0;
margin: 0;
}
【讨论】:
编辑:Eric 的解决方案对我有用,而且更好,但我把这个答案留在这里,以防某些未来版本的 IE 需要不同的修复
新的 IE,新的 IE 特定的渲染问题...
我一直在调试相同的行为。到目前为止,我发现唯一有效的是:
$this.css("padding-right", ""),它会删除任何每个元素的值并允许计算的 CSS 值接管)。但这当然是不可取的,因为它涉及当用户可能正在打字时从输入中移除焦点。
【讨论】:
我遇到了同样的问题。要恢复填充,只需将文本框的值设置为模糊。
我的简单解决方案:
$("input[type='text']").blur(function (evt){
var $element = $(this);
$element.val($element.val());
});
【讨论】:
一种可能的解决方法是在您的输入中使用样式 direction: rtl;,这会将 × 移动到元素的左侧。但是,使用从右到左的行为可能不适合您的情况。
【讨论】:
我认为 JustinStolle 的回答是最好的方法。
例子:
input[type="text"].field-al-right{
text-align:right;
direction:rtl;
}
【讨论】: