2012-08-07 35 views
5

Descubrí recientemente el código CSS para que los navegadores compatibles impriman bloques <thead> en la parte superior de cada página (usando display: table-header-group; en @media print {}). Esto simplifica enormemente el código en mi aplicación para imprimir tablas.Cabeceras de estilo impresas en cada página

Sin embargo, mi cliente es muy exigente con los estilos. Parece que los grupos de encabezado reimpresos carecen de algunos de los estilos de los encabezados originales, es decir, border-bottom-style y border-bottom-width para separar los encabezados del cuerpo de la tabla. Dado que esto parece ser un requisito difícil, me gustaría una manera de poder incluir estos estilos con esos grupos de encabezado.

He intentado varios métodos diferentes para tratar de forzar Firefox (nuestro navegador de elección) para imprimir esos estilos para satisfacer esta condición, pero ninguno de estos métodos parece producir los resultados deseados. Algunos ejemplos que he probado:

@media print { 
    thead { 
     display: table-header-group; 
     border-bottom-style: solid; 
     border-bottom-width: 3px; 
    } 
} 

y

<thead style="border-bottom-style: solid; border-bottom-width: 3px;"></thead> 

y

table.class thead { 
    border-bottom-style: solid; 
    border-bottom-width: 3px; 
} 

y

table.class th { 
    border-bottom-style: solid; 
    border-bottom-width: 3px; 
} 

Mi pregunta es, entonces: ¿hay una manera de establecer estilos en estos grupos de encabezados reimpresos? ¿O el navegador solo usa los estilos de encabezado de tabla por defecto espartanos (texto en negrita)?

Por favor, perdóneme si esta pregunta ya ha sido formulada y respondida. Busqué pero no pude encontrar nada sobre este problema en particular. Hubo muchas preguntas relacionadas con display: table-header-group; pero ninguna relacionada con el diseño de esos grupos de encabezado.

+0

¿Puedes subir un ejemplo completo de algo que no se imprime correctamente? – Jason

+0

Como noté en el comentario a continuación, el problema era otro estilo conflictivo sobre la mesa (específicamente un 'border-collapse: collapse'). Acabo de cambiar a usar 'cellspacing =" 0 "' y se resolvió el problema. – Chris

Respuesta

3

Ajuste de la frontera en las celdas de la fila de encabezado parece que funciona bien en Firefox 14:

@media print { 
    thead { 
     display: table-header-group; 
    } 
    thead th { 
     border-bottom-style: solid; 
     border-bottom-width: 3px; 
    } 
} 

Firefox no necesita realmente la cosa display: table-header-group, pero otros navegadores puede necesitar, véase la pregunta CSS: Repeat table headers in print mode.

+0

¡Gracias! Creo que tenía otro CSS que estaba en conflicto con ese estilo. Había establecido la tabla para usar 'border-collapse: collapse', que por alguna razón permitía imprimir el borde inferior para el primer grupo de encabezado y ninguno de los siguientes. Lo cambié para usar 'cellspacing =" 0 "' en las etiquetas '

' y eso pareció funcionar. – Chris

Cuestiones relacionadas