Je souhaite imprimer uniquement le contenu du tableau, mais la hauteur du DIV correspondant est fixe : une scrollbar permet d'afficher la suite du texte.
J'ai créé un fichier print.css, contenant ceci :
Code :
/* début de la Partie a ne PAS imprimer */
#menu{
display:none;
}
#banniere{
display:none;
}
/* fin de la Partie a ne PAS imprimer */
/* début de la Partie a imprimer */
#tableau{
background-color:#FFFFFF;
display:block;
clip:auto;
overflow:visible;
}
/* fin de la Partie a imprimer */
J'ai donc ajouté la ligne suivante, dans ma page HTML :
Enfin, la procédure d'impression doit être lancée lors du clic sur un bouton "Imprimer" figurant dans le menu :
Code :
<input type = 'button' style='width: 200px;' value = 'Imprimer le tableau actuel' onclick="javascript:window.print()"/>
Mais l'impression ne fonctionne pas, la page entière s'imprime (bannière, menu et tableau).
D'autre part, seule la partie du tableau visible sur la page est imprimée.
Grand merci par avance à ceux qui prendront le temps de m'aider,
Alex
Message édité par Bounty59 le 13-02-2007 à 13:19:47
Il faut juste penser soit à placer la feuille "print" après la feuille générale, soit à définir le média de sortie de la feuille générale à media="screen" ainsi :
Sans indication de média de sortie sur le lien de la CSS, ça revient à préciser media="all".. Sans oublier que l'ordre des CSS est important, les règles étant toujours cumulatives.
Message édité par Johan_et_Pirlouit le 13-02-2007 à 18:32:07
Néanmoins sauf erreur de ma part mettre "display: none;" risque de fusiller ton affichage (enfin pas dans le cas present) si tu alignes des blocs div côte à côte, non ?
(si j'ai le temps je testerais ce soir, vois si ça laisse bien la place ou pas)
Tu as raisons Boub, display: none et le bloc disparaît y compris sa place. Visibility: hidden le masque mais il garde son emplacement (devenu alors vide).
Dans le <body>, par défaut, j'ai mis la propriété display de certaines DIV à none, d'autre à block...
Le souci peut-il provenir de là ? Comment faire alors ?...
Je ne comprends pas trop ta réponse... Quelles autres propriétés puis-je redéfinir dans mon print.css ?!
J'ai fait une page de test, tout simple. Et en effet, lorsque les propriétés "display" des DIV on été entrées en dur dans la page html, le CSS print n'est pas pris en compte lors du clique sur le bouton "Imprimer".
De quels autres éléments parles-tu ?!
Dans mon print.css (voir code au début du topic), je redéfinis bien les propriétés Display de tous les éléments (les 3 div), non ?!
Message édité par Bounty59 le 22-02-2007 à 14:01:57
J'arrive tard, mais qui sait, ça peut aider certains qui viendraient là ...
Pour ma part j'utilise toujours UNE SEULE feuille de style CSS appelée par mes pages html
Dans cette feuille de style, j'ai des sections écran ( entre @media screen { }) des sections imprimante ( entre @media print{ }), le reste (entre rien !) est commun écran et imprimante .
Pour ne pas imprimer, par exemple, le DIV contenant les menus, voilà comment je procède :
@media screen {
div#MENUS
{
position: absolute;
top: 135px; /* doit être égal à 15 + hauteur de img#bandeau_top */
left: 10px;
width: 15%; /* largeur à faire correspondre à celle de img#bandeau_gauche */
}
}
@media print {
div#MENUS { display: none }
}
bien entendu, la recette est applicable à tout élément du CSS : par exemple, vous voulez dans les paragraphes courants du texte 12px à l'écran et 10px à l'imprimante, ça donne
@media screen {p {font-size:12px;}} @media print{p {font-size:10px;}}