2009-10-18 106 views
0

如何禁用元素的樣式已經用css元素名稱樣式和我不能通過在css中獲取類名稱來創建相同的樣式只是#ElementName哪種樣式屬性不會在html代碼上顯示?刪除元素的css風格ID

+4

我不明白你的問題。你能舉一個簡單的例子來展示你所描述的問題嗎? – 2009-10-18 01:34:31

+4

你是不可理解的。 – slikts 2009-10-18 01:52:08

+0

我最好的猜測翻譯: 「我如何從CSS中的樣式元素(文檔?,樣式標籤?)中移除樣式。但是,當我使用元素的類設置樣式時,我不工作。似乎只有當我使用元素的id(例如#ElementName)時才起作用。「 – 2009-10-18 01:57:17

回答

10

你可以嘗試:

$("selector").removeAttr("style"); 

,但我的問題是:你爲什麼要刪除CSS樣式?通常這表示你沒有以一種好的方式做某件事。像這樣的一些會寫代碼:

$("selector").hover(function() { 
    $(this).css("background", "red"); 
}, function() { 
    // ??? 
}); 

當然,問題是,你不知道是什麼的背景設定,以便將其恢復到正常。這就是爲什麼你應該使用類:

div.highlight { background: red; } 

有:

$("selector").hover(function() { 
    $(this).addClass("highlight"); 
}, function() { 
    $(this).removeClass("highlight"); 
}); 

問題解決了。

所以我不能評論你的方法,因爲你沒有提供足夠的細節,但在我的經驗問題,如「我如何刪除一個樣式?」是一面紅旗。

+1

+1我認爲你已經覆蓋了這裏的所有場景 – bendewey 2009-10-18 02:35:10

+0

+1對於一個令人困惑的問題的一個很好的答案 – pkaeding 2009-10-18 02:42:10

+0

缺少第一個代碼塊的圓括號 – 2009-10-18 03:28:37

1

您不能禁用已設置的樣式,但可以覆蓋它們。 inherit值可用於恢復默認情況下繼承的樣式的行爲。例如:

div { color: red; } 
div .exception { color: inherit; } 

任何div元素將獲得紅色文本,只有當階級=「例外」,這將繼承其父的文本顏色的人。

1

您不能禁用樣式,只能用特異性覆蓋該樣式。如果你絕對要,你可以依靠的重要指示:

#el { background:red !important; } 

否則,對於上帝知道,如果你不能/不會訪問CSS那麼你可以做$('#foo').css('background', 'red')或相似。

0

您可以通過重置的東西取決於標籤的標準元素的風格是這樣的:

$('#ElementName').css({ 
    'position': 'relative', 
    'display': 'box', 
    'with': 'auto', 
    'height': 'auto', 
    'color': '#FFFFFF' 
}); 

可以重命名元素ID:

$('#ElementName').attr('id', 'ElementName2'); 

這是我最好的猜測。

0

幾周前我遇到了這個問題。每個元素都有一個默認值。只是將其覆蓋到該默認值。

即。寬度和高度的默認值是auto。不是所有的都是自動的。溢出的默認值是可見的。