Bonjour,

J'essaye de mettre en application l'article sue les CSS d'impression et je me trouve confronté à 2 problèmes :
- Le contenu de ma page sur l'écran est supèrieure à une page papier. Il ne m'imprime pas l'intégralité des informations visibles à l'écran
- J'utilise une classe javascript (lightwindows.js) pour gérer l'affichage de mes images, et les images. Ces images ne sont pas imprimées. En revanche, après quelques pages blanches j'ai des bout de code de javascript.

Avez vous une idée ?
Pour les images qui n'apparaissent pas j'ai trouvé, j'avais un


#contenu A {
	DISPLAY: none;
}

qui trainait et comme il y avait un lien sur les images ....

En revanche pour les longueurs de pages qui ne sont pas imprimés et les bout de javascript qui apparaissent, je n'ai pas trouvé de solution.

Voici un template de page telles qu'elles sont structurées


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
	<head>
		<title>Nom du site</title>
		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15" />
		<meta http-equiv="Content-Style-Type" content="text/css" />
		<meta http-equiv="Content-Language" content="fr" />
		

		<!-- JavaScript -->
		<script type="text/javascript" src="javascript/prototype.js"></script>
		<script type="text/javascript" src="javascript/effects.js"></script>
		<script type="text/javascript" src="javascript/scriptaculous.js?load=effects"></script>
		<script type="text/javascript" src="javascript/lightwindow.js"></script>

		<!-- CSS -->
		<link rel="stylesheet" href="css/lightwindow.css" type="text/css" media="screen" />
		<link rel="stylesheet" type="text/css" href="css/style.css" media="all" />
		<link rel="stylesheet" type="text/css" href="css/print.css" media="print" />

	</head>

<body>
	<div id="conteneur">

		<h1 id="header"><a href="index.htm" title="Couleur Kémia - Accueil"><span>Couleur Kémia</span></a></h1>   
		<ul id="menu">
			<li><a href="Page1.htm">Accueil</a></li>
			<li><a href="Page2.htm">Page2</a></li>
			<li><a href="Page3.htm">Page3</a></li>
		</ul><!-- #menu -->
	<div id="centre">
		<div id="contenu">
                     <div id="chemin_fer">
                                     <a href="Page1.htm">Accueil</a> > Page1
                     </div><!-- #chemin_fer -->
					 <DIV class="post">
						<a href="images/34874113.jpg" class="lightwindow page-options"  title="Photo1" author="Auteur" caption="Photo1">
						<IMG class="image_droite" height=322 alt=Photo1 src="images/34874113.jpg" width=215 border=0>
						</a>
						Elitr fabulas mel ex. Sed admodum detracto an. In vel diam quas exerci, at velit aliquip denique cum. 
						His ex altera definitionem, in sumo eloquentiam pro, nec ut posse reformidans. Nonumy aliquando vim at, 
						in alterum torquatos consetetur vel. Viris habemus dolores nam ea, utinam option eu per, cu duo vidit modus deterruisset. 
						Cum te diam persecuti. Iudico partiendo concludaturque pro ex, no quas natum volumus est, vis et dicunt scripta. 
						Te ius feugiat euripidis reprehendunt, vocent aliquip nonummy per ea, te duis graeci conceptam nam. No nullam habemus vel, 
						te est autem verterem detraxit, eu minimum propriae ius. Mel diam quidam te, at cum stet convenire expetenda, cum senserit democritum te. 
						Ad elit ancillae neglegentur his, et eam placerat conceptam, justo quaerendum sed te. Vel tamquam nominavi torquatos ad, 
						te option phaedrum pro, elit aliquip corrumpit in ius. Eum volumus pericula cu. Per lorem saepe timeam te, cum ludus inciderint ut. 
						Mucius rationibus eloquentiam nec eu, virtute accusata assueverit an pri, ei mea tempor bonorum equidem. Qui idque molestiae mnesarchum ex.
					</div><!-- #post -->
		
		
		</div><!-- #contenu -->
		
		<div id="menudroite">
			<h1>Recherche</h1>

		    <h1>Calendrier</h1>
            
			<h1>Derniers Messages</h1>
            

		</div><!-- #menudroite -->		
	</div><!-- #centre -->	
		<p id="footer">Tout droit réservé - Pied de page</p>
	</div><!-- #container -->
</body>

</html>


le css d'impression associé

BODY {
	BACKGROUND: #fff; COLOR: black;
}
#header {
	DISPLAY: none;
}
#menu {
	DISPLAY: none;
}
#menudroite {
	DISPLAY: none;
}
#contenu A {
	TEXT-DECORATION: none;
}
#chemin_fer {
	DISPLAY: none;
}
.submit {
	DISPLAY: none;
}
#conteneur {
	MARGIN: 0px;
	border: none;
}
#contenu {
	WIDTH: 80%;
}

Modifié par Babali (04 Jul 2009 - 14:29)
En fait après recherche, il s'agit d'un bug FireFox (et oui ça existe) répertorié sur bugzilla (n° 104040).
Les navigateurs basés sur Gecko (Mozilla en fait parti) ont des difficultés pour imprimer des éléments de type flottant quand ceux ci dépassent une page.
Passé une page, le texte est tronqué.

A priori, une des astuces serait de mettre float: none, mais dans mon cas, ça ne fonctionne toujours pas.

Je cherche donc encore Smiley cligne
Si le float:none ne s'applique pas c'est que 1) soit tu ne l'appliques pas aux bons éléments, 2) soit tu l'appliques via un sélecteur non prioritaire (faire une recherche sur la priorité des sélecteurs).
Voilà j'ai trouvé. Sur la définition de ma colonne du centre j'avais un "overflow: hidden;"

Donc avec IE6/7 et Safari pas de problème, l'intégralité de la page était imprimée. Avec FF, la fin de page n'était donc pas imprimée.

Avec un "overflow: auto;" tout est imprimé sous les 3 navigateurs, mais sous IE6, le formatage des colonnes n'est plus correct, puisque ma colonne du centre déborde sur la colonne de droite.

J'ai donc mis un hack spécial IE6 pour l'overflow à moins que vous ayez une autre solution ?

Il me reste quand même un problème sous IE, le texte ne tient pas dans la largeur et est tronqué ! Savez vous ce que je dois rajouter pour éviter cela ?
Modifié par Babali (13 Feb 2009 - 08:44)