Tengo una aplicación web que utiliza un print stylesheet por separado para controlar cómo se ve la página cuando sale de la impresora. Eso funcionó maravillosamente hasta que recientemente realicé algunas mejoras de Javascript en el sitio. Una de estas mejoras permite al usuario congelar el encabezado y la navegación de la página, así como los encabezados de la tabla. El Javascript detrás de esto hace algunos trucos de CSS para congelar los elementos en la pantalla. Desafortunadamente, aplicar position: fixed
a mi encabezado (por ejemplo) hace que se imprima en cada página, y este no es un efecto deseado. ¿Cómo puedo usar Javascript para ajustar estilos de elementos en el lado del cliente sin afectar el estilo de impresión?Usar Javascript para cambiar los estilos de visualización (CSS) sin afectar a los estilos de impresión
@media print { #foo { color: blue; } } /* Print definition */
@media screen { #foo { color: green; } } /* Display definition */
document.getElementById('foo').style.color = 'red'; /* Overrides both! */
Nota: Muchos de los estilos que cambio con Javascript ni siquiera están configurados en el archivo de impresión CSS. Idealmente, tendría una forma de cambiar * solo mostrar * estilos en Javascript. Tener que anular manualmente todos los ajustes de JS en el archivo de impresión CSS con '! Important' no es realmente una solución. –