Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1004 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Modification style media print

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Modification style media print

n°1281083
frala
Ca ne marchera jamais ....
Posté le 11-01-2006 à 07:46:44  profilanswer
 

Bonjour,
 
J'ai une page JSP tout à faire standard, basée sur du CSS, tout à fait standard.
Cette page affiche un certain nombre de graphique, de tableaux, de données en tout genre.
J'ai défini deux médias, l'un pour l'affichage (screen), l'autre pour l'impression (print).
Comme vous pouvez le voir, rien de bien sensationnel, que du basique, du standard.
 
L'utilisateur, via des <input> de type checkbox, a la possibilité d'imprimer les éléments qu'il veut.
Un script JavaScript est appelé via la méthode onClick de ces 'input'.
Dans ce script, je voudrais pouvoir accéder au style 'visibility' du media print.
Comment puis-je faire ?
 
Pour résumé, je voudrais pouvoir écrire qqch comme : le_composant.style.visibility = "visible" (ou "hidden" ) mais pour le media print.
 
Merci pour votre aide.
 
Franck

mood
Publicité
Posté le 11-01-2006 à 07:46:44  profilanswer
 

n°1281249
omega2
Posté le 11-01-2006 à 12:30:51  profilanswer
 

Le plus simple : tu définis une classe qui rend visible et tu met le reste en invisible par défaut.
Ensuite, en javascript, tu rajoutes ou enléve cette classe de la liste des classes de chaque élément à imprimer/ne pas imprimer.

n°1281974
frala
Ca ne marchera jamais ....
Posté le 12-01-2006 à 12:04:32  profilanswer
 

En fait, je suis passé par document.styleSheets. Voici du JavaScript qui fonctionne très bien sous FireFox mais pas sous IE :
 

Code :
  1. // document.styleSheets[1] correspond au media print de ma feuille de style
  2. var CSSRules = document.styleSheets[1].cssRules;
  3. // spécificité IE ...
  4. if (uagent.indexOf("MSIE" ) != -1) {
  5. CSSRules = document.styleSheets[1].rules;
  6. }
  7. // autre spécificité IE ...
  8. var rule = CSSRules[10];
  9. if (uagent.indexOf("MSIE" ) != -1) {
  10. rule = CSSRules[9];
  11. }
  12. // ctrl est le 'input' de type checkbox
  13. if (ctrl.checked) {
  14. rule.style.display = "block";
  15. } else {
  16. rule.style.display = "none";
  17. }


 
Bizarrement, sous IE, le bloc sur lequel est appliqué le display = "none"; est toujours imprimé, alors que si dans la CSS du media print, j'ai
 

Code :
  1. #ddm_print {
  2.   display: none;
  3. }


 
le bloc n'est pas imprimé ......... Comme si la modification du style n'est pas appliqué (sachant que le style display est à 'block' par défaut dans la CSS).
 
 
A noter que si j'utilise l'attribut 'visibility', sous Firefox, j'avais un joli espace blanc à la place du composant, alors qu'avec display, la zone n'apparaît pas (euh, je suis clair, là ?) et ça ne fonctionne pas sous IE, de toute façon.
 
 
Si quelqu'un a une idée, je suis preneur.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Modification style media print

 

Sujets relatifs
modification de valeur binaire en mysql ?? [resolu]Feuilles de Style et Skins
Modification du groupe affecté par défaut pour un nouveau dossier[applet] probleme de mise à jour, modification non prise en compte
[C#] DataGrid StylePlusieurs skins, feuilles de style et blablabla
Lecteur Windows MediaModification des argv[i] et libération de la mémoire
Date de modification d'un fichier et VC++ 6Lecteur Media dans page web
Plus de sujets relatifs à : Modification style media print


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR