10

右揃えの入力フィールドのパディングに関して、IE10 の奇妙な点に遭遇しました。

このフィドルをチェックしてくださいhttp://jsfiddle.net/fhWhn/

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

これにより「IE10 アイコン」が削除されますが、これらを保持してパディングを保持したい場合はどうすればよいですか? onblur の後にパディングを維持する別のスマートな方法はありますか?

4

5 に答える 5

5

direction: rtl;考えられる回避策は、入力でスタイルを使用することです。これ×により、要素の左側に移動します。ただし、右から左への使用の動作は、場合によっては理想的ではない場合があります。

于 2013-10-05T23:06:42.767 に答える
5

私はこの同じ問題に遭遇しました。パディングを戻すには、ぼかしのテキスト ボックスの値を設定するだけです。

私の簡単な解決策:

$("input[type='text']").blur(function (evt){
    var $element = $(this);
    $element.val($element.val());
});
于 2013-04-02T15:00:25.570 に答える
0

編集:エリックのソリューションは私のために機能し、はるかに優れていますが、IEの将来のバージョンで別の修正が必要な場合に備えて、この回答をここに残しておきます

新しいIE、新しいIE固有のレンダリングの問題...

私は同じ振る舞いをデバッグしてきました。これまでに機能することがわかったのは、次のとおりです。

  1. 入力からフォーカスを削除します(要素ごとに「padding-right」を明示的に設定しても、フォーカスがある間は効果がありません)
  2. padding-right値を正しい値とは異なる値に設定します(正しい値に設定しても変更はトリガーされません。おそらく、レイアウトシステムは計算されたCSS値が変更されていないことを認識しているため、再描画は必要ないと判断します)
  3. 再描画を待機しています(即座に、または1または2ミリ秒のタイムアウト後でも、プロパティを正しい値に再度設定しても、おそらく上記のように再描画が行われなかったため、変更はありません)
  4. プロパティを正しい値に設定します(たとえば$this.css("padding-right", "")、を使用すると、要素ごとの値が削除され、計算されたCSS値が引き継がれます)。

ただし、ユーザーが入力中にフォーカスを削除する必要があるため、これはもちろん望ましくありません。

于 2013-01-11T11:36:06.627 に答える
-1

css に「box-sizing」を追加してみましたか?

* {
    -moz-box-sizing: border-box;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    padding: 0;
    margin: 0;
}   
于 2012-12-07T16:54:36.947 に答える