2010-11-18 59 views
17

我需要從我的CSS中的@media print中的不同元素中移除班級,並在@media screen上添加這些班級。如何使用CSS刪除班級

有沒有辦法從CSS文件中刪除類?

是這樣的:

@media print{ 
    .element{/*Remove class*/} 
} 
@media screen{ 
    .element{/*Add class*/} 
} 

我需要在打印時從這些元素中刪除ui-tabs-hide由jQuery函數相加(其中隱藏的元件以不可思議的方式,因爲它不display:blockdisplay:none)類並在完成打印後放回。

+0

爲什麼不試試':not' ...檢查http://www.w3schools.com/cssref/sel_not.asp – KingRider 2016-08-09 14:35:50

回答

19

編號CSS不能修改DOM,只能修改其表示。

+0

任何其他方式來做到這一點? – Amra 2010-11-18 13:52:22

+3

編寫JavaScript代碼來修改DOM。 – 2010-11-18 13:53:48

+1

爲media = all在樣式表中包含所有媒體的CSS。僅在media = print中包含屏幕CSS。僅在media = print中包含用於打印的CSS。 – Quentin 2010-11-18 13:54:35

4

CSS無法從HTML文檔中取出的元素,但是你可以嘗試這樣的:

@media print{ 
element.relevantclass 
    { 
    display: none; 
    } 

這將告訴印刷媒體不顯示這個元素。

+0

這不會作爲它使用jquery中的類隱藏的元素,我認爲它是ui-widget,因此display:none或display:block不會影響它。 – Amra 2010-11-18 13:54:22

+0

@Cesar Lopez:所以你需要刪除類,使jQuery不應用任何功能? – 2010-11-18 13:56:56

+0

是的,我需要在打印時從這些元素中刪除ui-widget類,並在打印完成後將其放回原處。 – Amra 2010-11-18 14:00:41

2

你可以使用jQuery來做到這一點。

$(<element>).removeClass() // or removeClass(<the class to be removed>) 
$(<element>).addClass(<new class>) 

,如果你想這樣做頁面的加載,可以包括本文檔準備功能(如下圖所示)

$(document).ready(function() { 
    $(<element>).removeClass() 
    $(<element>).addClass(<new class>) 
});