2013-11-04 129 views
0

我有這樣的CSS表(這只是一個行),這是在屏幕刪除使用Javascript/jQuery的

#bottomBar td { 
filter: progid:DXImageTransform.Microsoft.Gradient(starColorStr=#1c67c0, endColorStr=#03389d); 
padding: 10px !important; 
color: white; 
border: 2px solid white !important; 
font-weightL bold !important; 
cursor: pointer; 
} 

正如你所看到的底部位置一定CSS,過濾器是存在的只是對於IE 8.我需要IE 10這個兼容一樣,所以我需要刪除的過濾器,取而代之的是,讓我們說

background-color: blue; 

給予TD一些顏色。我想這

if (Function('/*@cc_on return [email protected]*/')()) { // this checks if it is IE 10 
$('#bottomBar td').removeAttr('style'); 
$('#bottomBar td').attr('style', 'background-color: blue; padding: 10px !important; color: white; border: 2px solid white !important; font-weight: bold !important; cursor: pointer;') 

,但不工作,我也嘗試了將

$('#bottomBar td').css('filter',''); 

的,如果IE 10功能內,但不工作,要麼..任何其他的想法?

請注意,我無法刪除或添加類,長話短說我有一個非常長的腳本,如果我添加和刪除類,代碼會中斷。我也不能有一個外部樣式表,對不起,我沒有在帖子中提到這一點。 (我知道只有ie10樣式表是最好的,但是我正在編寫代碼的人需要以某種方式完成)。

+1

是否有任何理由不能將濾鏡部件拉出到它自己的css類中?那麼你可以簡單地使用add \ remove類呢? –

+1

將規則放入頁面內的IE條件註釋塊中,並使用IE樣式表或樣式標籤 – charlietfl

+0

@KyleMuir嗯是的,我有一個非常長的腳本,它會打破如果我添加一個類到它 – user2817200

回答

1

如果我的理解是正確的,你可以做到以下幾點:

if (Function('/*@cc_on return [email protected]*/')()) { // this checks if it is IE 10 
    $('#bottomBar td').css('filter', 'none'); 
    $('#bottomBar td').css('color', 'red'); 
    $('#bottomBar td').css('cursor', 'default'); 
    ... 
} 

的過濾器的默認值是nonehttps://developer.mozilla.org/en-US/docs/Web/CSS/filter),所以將其設置爲這你應該刪除不管它在做什麼。

在下面的示例中,我將IE10中的文本顏色更改爲紅色,並且光標將成爲默認光標,在任何其他主要瀏覽器中,它將是白色文本和手形光標。

小提琴:http://jsfiddle.net/KyleMuir/8mxem/5/

+0

Gr,這似乎並不適用於我的代碼,我的腳本中必須有一些CSS或者JS,它阻止了它,好吧然後我將通過我的整個代碼,並找到爲什麼設置篩選器沒有爲我工作..謝謝 – user2817200

+0

道歉,請看我編輯的小提琴 - 它有很多問題,這些問題已經修復,希望它有幫助:)我堅持任意改變文本的顏色。 –

+1

另外,你的css中有很多'!important'標籤 - 你不能重寫這些標籤。看到這裏:http://css-tricks.com/override-inline-styles-with-css/ –

3

如果您正在運行到了很多特定瀏覽器的造型問題,那你可以考慮的事情之一,是利用JS添加標識有關瀏覽器的細節body -level類用戶正在使用。例如:

  • 火狐:<body class="ff">
  • IE10:<body class="ie10">
  • IE7:<body class="ie7 ielt10">(。ielt10 = 「IE,小於10」,即,IE瀏覽器版本9或以上)

儘管我們都希望編寫適用於所有瀏覽器的代碼,但我們都知道這種情況不會發生。 :)建立這樣的框架可以很容易地解決CSS中瀏覽器特定的樣式。如果設置了這個樣子,那麼你就可以改變你的CSS是這樣的:

#bottomBar td { 
    padding: 10px !important; 
    color: white; 
    border: 2px solid white !important; 
    font-weight: bold !important; 
    cursor: pointer; 
} 

.ie8 #bottomBar td { 
    filter: progid:DXImageTransform.Microsoft.Gradient(starColorStr=#1c67c0, endColorStr=#03389d); 
} 

現在,只有IE8瀏覽器將添加過濾器。

建立JS的前臺工作有點麻煩,但一旦到位,它就可以解決那些必須解決的瀏覽器特定問題,而且更容易。

+0

好主意,我會牢記這一點,我已經開始我的代碼,並進入它的方式,但下一次我會肯定這樣做。 – user2817200