2013-06-19 52 views
6

我正在研究一個需要使用Internet Explorer的「IE5怪異模式」(使用X-UA-Compatible: IE=5設置)的舊Web應用程序。IE 10的-ms-清除僞元素和IE5怪異模式

應用程序中的許多文本字段都有(應用程序生成的)'x'按鈕來清除內容。在IE10中,IE也會生成一個'x'按鈕來清除該字段,因此用戶可以看到其中的兩個。

this question所述,您可以使用::-ms-clear CSS僞元素刪除IE生成的'x'。不幸的是,這似乎在IE5 Quirks模式下不起作用:::-ms-clear僞元素的樣式在開發人員工具中顯示爲:unknown,並且IE生成的「x」繼續出現。

除了重寫應用程序使用現代瀏覽器模式,有什麼辦法擺脫IE生成的'x'?

下面是一個測試頁面時IE10下運行再現在IE5 Quirks模式的問題:

<html> 
    <head> 
     <meta http-equiv="X-UA-Compatible" content="IE=5"> 
     <style type="text/css"> 
      ::-ms-clear { width: 0; height: 0; } 
     </style> 
    </head> 
    <body>Enter some text:<input></body> 
</html> 
+0

必須使用應用程序生成的按鈕嗎?他們是否提供IE10生成的功能?因爲在這種情況下,我認爲不可能刪除由IE10生成的。 – BoltClock

+0

應用程序生成的'x'按鈕確實提供了一些其他功能,但它看起來像我們最好的解決方法是有條件地刪除它們的IE10,並找到另一種方式來觸發相同的功能... – Aron

+1

當然,不能有任何「需要」怪癖模式?過去讓人們陷入怪癖模式的一件事是盒子模型與標準有很大不同,它使得轉換工作變得非常繁重,但是現在你可以使用'* {box-sizing:border-box;} ',標準模式將切換到使用舊的怪異模式盒模型而不抱怨。在怪癖模式中還有什麼可以阻止你擺脫它 - 也許我們可以幫助你,而不是試圖幫助你繼續生活在20世紀90年代。 – Spudley

回答

3

嘗試

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

或者

input::-ms-clear { visibility: hidden; } 

一個hackier黑客可能使用保證金右移和溢出屬性

input { margin-right: -20px; overflow: hidden } 
+3

':: - ms-clear'甚至沒有被識別出來,所以這沒有任何作用 – BoltClock

+0

確實,:: - ms-clear isn 't hacky'選項也沒有用, – Aron

+1

當然沒有被識別,這就是怪癖模式的全部點 - 怪癖模式有IE5的CSS版本;它會去掉所有CSS功能比瀏覽器更新 – Spudley