2010-11-18 16 views
17

Ho bisogno di rimuovere classi da diversi elementi all'interno di @media print sul mio CSS e aggiungere quelle classi su @media screen.Come rimuovere la classe utilizzando i CSS

Esiste comunque la possibilità di rimuovere le classi dal file CSS?

Qualcosa di simile:

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

Devo rimuovere ui-tabs-hide aggiunto da una funzione jQuery (che nasconde l'elemento in un modo strano, come la sua non display:block o display:none) classe da quegli elementi al momento della stampa e rimettendolo al termine della stampa.

+0

Perché non provi ': not' ... assegno http://www.w3schools.com/cssref/sel_not.asp – KingRider

risposta

19

No. Il CSS non può modificare il DOM, solo la sua presentazione.

+0

Qualsiasi altro modo per farlo? – Amra

+3

Scrivi codice JavaScript per modificare il DOM. –

+1

Includere il CSS per tutti i supporti in un foglio di stile per media = tutto. Includere il CSS per lo schermo solo in media = stampa. Includi il CSS per stampare solo su media = stampa. – Quentin

4

CSS non può togliere elementi dal documento HTML, ma si potrebbe provare qualcosa di simile:

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

Questo avrebbe detto ai media stampati di non mostrare questo elemento.

+0

Questo non funzionerà come l'elemento nascosto usando una classe da jquery, penso che sia ui-widget, quindi display: none o display: il blocco non avrà effetto su di esso. – Amra

+0

@Cesar Lopez: Quindi è necessario rimuovere le classi in modo che jQuery non applichi alcuna funzione su di esse? –

+0

Sì, ho bisogno di rimuovere la classe ui-widget da quegli elementi al momento della stampa e di rimetterla al termine della stampa. – Amra

2

è possibile utilizzare jQuery per fare questo.

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

se si vuole fare questo sul caricamento della pagina, è possibile includere questo nella funzione pronti documento (come illustrato di seguito)

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