2012-12-07 24 views

回答

-1

有你嘗試添加「盒大小」到你的CSS?

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

沒有沒有幫助Liccy,但由於:) –

0

編輯:埃裏克的解決方案爲我,是更漂亮,但我在這裏的情況下,離開這個答案的一些未來版本的IE需要一個不同的修復

新IE,新的IE特有的渲染問題...

我一直在調試相同的行爲。我發現,到目前爲止的工作的唯一的事情是:

  1. 從輸入刪除焦點(甚至明確設置「填充右」每個元素有沒有效果,同時它具有焦點)
  2. 設置填充-right值到不同值的正確值(將其設置爲正確的值不觸發更改,大概是因爲佈局系統知道計算出的CSS值沒有改變,所以決定不需要重新繪製)
  3. 等待重新繪製(立即 - 或者甚至在1或2毫秒的超時之後 - 再次將屬性設置爲正確的值不會導致改變,大概是不引起再拉已經發生按照上文)
  4. 將該屬性設置爲正確的值(例如使用$this.css("padding-right", ""),它刪除任何元素值並允許計算的CSS值接管)。

然而,這當然是不期望的,因爲其涉及從輸入去除焦點,當用戶可能在打字的中間。

5

我跑在這個同樣的問題。要獲得填充,只需將文本框的值設置爲模糊。

我簡單的解決方案:

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

經進一步調查中,「X」圖標似乎只出現在與寬度大於或小於60個像素等於文本框,但是在60px寬的文本框中存在不同的填充問題。幸運的是,我能夠將我的文本框寬度增加到60px,而不必去找出那個。 – Eric

+1

請注意,這會干擾輸入的「更改」事件的發生:集中輸入,更改值並選擇另一個應用程序(即,在不失去對IE內輸入焦點的情況下對IE的焦點丟失) - 這會引起「模糊'事件,並且上面的代碼刪除了「掛起更改」的記錄;將焦點返回給IE並且失去對輸入的注意力 - 現在你已經改變了該值而沒有改變事件觸發。 –

5

可能的解決方法是使用樣式direction: rtl;您的輸入,這將移動×的元素的左側。但是,使用從右到左的行爲可能不適合您的情況。

0

JustinStolle的回答是最好的方法,我想。

例子:

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