2011-11-02 10 views
7

Estoy usando @media para imprimir un encabezado en cada página al imprimir una pantalla en una página en Firefox. He puesto mi css así:@media print div: ¿Cómo resolver el texto de página superpuesto en el encabezado?

@media print { 
    div.printDivHeader { 
    font-family: Arial, Helvetica, sans-serif; 
    font-size: 1.0em; 
    position: fixed; 
    display: block; 
    width: 100%; 
    height: auto; 
    top: 0; 
    } 
} 

El problema es el contenido de la segunda página se superpone con la cabecera div impresión. (es decir, en la segunda página, el encabezado no fuerza el contenido de la página hacia abajo, y entonces obtengo el texto escrito sobre el texto). ¿Hay alguna forma de manejar esto?

+0

Necesitaríamos el HTML y CSS de esa segunda página, gracias – GregM

+0

Por cierto, no estoy seguro de que son conscientes, pero la versión actual de Firefox tiene una función de vista previa de impresión. Sin esto, uno tendría que imprimir en pdf o imprimir en papel ... ambas opciones engorrosas. – ANeves

Respuesta

1

Algo con position: fixed; nunca empuja el contenido estático (o relativo). O hay un estilo para asegurarse de que no se superponen ... o se superponen.
Consulte this example JSFiddle, que utiliza su CSS.

El problema está en otro lugar.
¿Cómo el encabezado no se superpone con el texto en la primera página? ¿Tienes algo presionando el texto? Margin-top? ¿Qué?

¿Es posible compartir el original o un ejemplo simplificado? (Puede utilizar JSFiddle.)

+1

El problema es que si no uso la posición: fijo, el encabezado no aparecerá en todas las páginas – MTR

+0

(¿Quiso publicar este comentario en la respuesta de @Augus?) Sí, lo entiendo. Desde mi punto de vista, el problema es que algo está presionando el contenido de la primera página, pero no el contenido de otras páginas; ese algo no es el encabezado; por lo tanto, no hay cambios en el encabezado que ayuden, y deberíamos ver qué más está haciendo el efecto. – ANeves

+0

En la primera página hay un elemento H2 con suficiente relleno en la parte superior que no se superpone. Además, parece que cuando hago esto: @media print { div.printDivHeader { font-family: Arial, Helvetica, sans-serif; font-size: 1.0em; posición: fijo; pantalla: bloque; ancho: 100%; altura: auto; arriba: 0; } @page { margen: 1cm; margin-top: 5cm; } }/* Todos los márgenes establecidos en 2 cm */ ... funciona bien para la primera página (márgenes como se esperaba) pero no para páginas posteriores. – MTR

1

Uhm creo que su debe utilizar

position:relative 

en lugar de

position:fixed 
3

Agregue esto a su regla de los medios de cabecera: bottom:3em; modificar el 3em a fin de que el contenido caber.

A continuación, agregue un selector div separada a la regla de su área de contenido:

div.printDivContent { 
    position: relative; 
    width: 100%; 
    top:3em; //match size of header 
    left:0px; 
    right:0px; 
} 
2

La clave CSS "caja-decoración-break" ayudaría cuando se establece en "clon". Ve: CSS Fragmentation

Puede crear una clase contenedora alrededor de su contenido con un margen arriba y abajo en el tamaño de su cabecera y el pie y luego box set-decoración-break para "clonar" en este contenedor.

#content { 
    box-decoration-break: clone; 
    margin-bottom: 90px; 
} 
Cuestiones relacionadas