2010-11-18 3 views
17

J'ai besoin de supprimer des classes de différents éléments au sein de la @media print sur mon CSS et d'ajouter ces classes sur le @media screen.Comment faire pour supprimer la classe en utilisant CSS

Est-il possible de supprimer des classes du fichier CSS?

Quelque chose comme:

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

Je dois enlever ui-tabs-hide ajoutée par une fonction jQuery (qui cache l'élément d'une manière bizarre, comme pas display:block ou display:none) la classe de ces éléments au moment de l'impression et le remettre lorsque vous avez fini d'imprimer.

+0

Pourquoi ne pas essayer ': not' ... check http://www.w3schools.com/cssref/sel_not.asp – KingRider

Répondre

19

N ° CSS ne peut pas modifier le DOM, seulement sa présentation.

+0

Tout autre moyen de le faire? – Amra

+3

Ecrivez le code JavaScript pour modifier le DOM. –

+1

Incluez le CSS pour tous les médias dans une feuille de style pour media = all. Inclure le CSS pour l'écran seulement dans media = print. Inclure le CSS pour l'impression seulement dans media = print. – Quentin

4

CSS ne peut pas prendre des éléments du document HTML, mais vous pouvez essayer quelque chose comme:

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

Cela dire aux médias imprimés pour ne pas afficher cet élément.

+0

Cela ne fonctionnera pas car l'élément est caché en utilisant une classe de jquery, je pense que c'est ui-widget, donc display: none ou display: block ne l'affectera pas. – Amra

+0

@Cesar Lopez: Vous avez donc besoin de supprimer les classes afin que jQuery ne leur applique aucune fonction? –

+0

Oui, je dois retirer la classe ui-widget de ces éléments au moment de l'impression et la remettre lorsque j'aurai terminé l'impression. – Amra

2

vous pouvez utiliser jQuery pour cela.

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

si vous voulez le faire sur le chargement de la page, vous pouvez inclure dans le document fonction prêt (comme indiqué ci-dessous)

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