Muita coisa sobre CSS, HTML, Javascript, Search engine optimization (seo), padrões e web
9 Jul
É sempre bom permitir aos usuários imprimir o conteúdo de seu site. Melhor ainda é permitir que eles imprimam e ainda economizem tinta e papel, removendo da impressão tudo o que não for referente ao conteúdo
Vendo um post no blog fechaTag, resolvi explicar como fazer um estilo CSS que será usado apenas na hora da impressão.
A principal razão para se criar um estilo próprio para impressão é eliminar qualquer conteúdo que não seja útil para o usuário. Por exemplo, imagens, banners, logos, menus e qualquer outra parte do template que não faça parte do conteúdo principal.
Dessa forma, o usuário não correrá o risco de perder algumas páginas por causa do banner que passou do limite da página, do menu que é grande e que precisa de 2 páginas a mais que o conteúdo, nem gastar tanta tinta com o logo da empresa em 16 milhões de cores ou com o Google Adsense no meio do conteúdo - afinal, ele não poderá clicar.
Abaixo segue um exemplo de CSS para impressão. Pode-se perceber que o principal atributo a ser utilizado será o display:none para esconder tudo o que não presta:
/* elimina o topo do site - logo, banner, caixa de busca, etc... */
#topo { display:none; }
/* elimina a coluna da esquerda - menu, banner (mais!), parceiros, etc... */
#col-esquerda { display: none; }
/* elimina a coluna da direita - outro menu, mais banners, shopping, etc... */
#col-direita { display: none; }
/* elimina todas as publicidades */
#google-adsense, #mercado-livre, #shopping, #buscape, #links-uol { display: none; }
/* elimina qualquer imagem do texto */
img { display: none; }
/* exibe apenas as imagens que pertencem ao conteúdo */
div#conteudo img { display: inline; }
/* coloca todo o texto em preto */
div#conteudo * { color: black !important; }
/* coloca todos os links em azul */
div#conteudo a { color: blue !important; text-decoration: underline !important; }
Basicamente é isso, remover tudo o que estiver em volta do conteúdo, liberando apenas as imagens referentes a ele. É importante também colocar todo o texto em preto e os links em azul com sublinhado, que é um padrão que todos sabem referir-se a um link.
O !important serve para forçar a regra aos atributos, evitando que um estilo da outra folha CSS seja atribuído aos elementos.
Para fazer com que o CSS criado acima só seja acionado na hora da impressão, o parâmetro media deve ser print:
<link rel="stylesheet" type="text/css" href="style-impressao.css" media="print" />
Para testar seu CSS de impressão, você não precisa gastar dezenas de folhas e litros de tintas imprimindo cópia atrás de cópia. Abra seu site no Firefox e no menu File procure por Print Preview. Aí é só verificar se está tudo correto e melhorar alguns alinhamentos.
Assunto relacionado: Veja outros tipos de media do CSS
5 Responses for "CSS específico para impressão"
Otimo texto,soh discordo da parte de deixar os links azuis.Se quem imprimir nao vai poder clicar mesmo,porque nao deixa-los com a mesma cor que o texto?
[]s
Faz um certo sentido. O ideal seria colocar o link ao lado (por ex.: clique aqui
[]s
Gustavo,fiz um post falando sobre css para imprimir,se quiser passar la, http://w3css.blogspot.com/2007/07/usando-css-para-imprimir.html
Abracos!
voces tem algo especifico para controle de margem e reajustes precisos para a impressao?
se poderem me contactar pelo email ficarei grato.
rafa.developer@gmail.com
Não consegui tirar o pagina 1 de 1 do topo, tem como?
Leave a reply