alfinete
07-03-2008, 17:45
pus este code no css coorespondete ao form em causa que vai ser chamado na respectiva div para inibir os botões do form
no qual funciona em tdos os browsers excepto no ie6.
@media print {
.onlyprint
{
display: block;
visibility: visible;
}
.noprint
{
display: none;
visibility: hidden;
}
}
gostava que me ajudassem pq
Honestamente não sei..
Mas fiquei curioso sobre essa forma de organizar a CSS, que nunca tinha visto.
Imagina que queres usar a classe .noprint, como é que o fazes (sim, sou preguiçoso e não quero ir testar).
Cumps
EDIT: E o que faz a @ ?
alfinete
07-03-2008, 20:53
chamas no botão ou na div tipo
<button id="btnimprimir" class="noprint" value="imprimir" onClick="window.print();></button>
<div class="noprint"></div>
neste caso ao clicares no botão ele chama a janela de impressão e ao imprimir , na impressão não mostra nem o botão nem a div nem qualquer outro obj que chames a class noprint
mas isto funciona em tdos os browsers excepto no ie 6
alfinete
07-03-2008, 21:20
ou fazes assim ao inicio da page html
<link rel="stylesheet" type="text/css" href="style-impressao.css media="print"/>
ou assim no css
@media print
{
.impressao
{
}
}
sobre um ponto de vista @media print é uma classe css onde podes criar novas classes
so especificas para a impressão, mais ou menos isso
mais ajudas sobre os media tipes
http://www.oficinadanet.com.br/artigo/84/css_e_suas_media_types
Ah..
Já percebi.. Eu sei xHTML relativamente bem, mas nunca surgiu oportunidade/situação em que precisasse de usar isto.
Obrigado pelo esclarecimento.
Em relação ao que estás a tentar fazer, provavelmente deve haver hacks...
Do estilo do * / > / _ ;)
Honestamente não sei..
Mas fiquei curioso sobre essa forma de organizar a CSS, que nunca tinha visto.
Imagina que queres usar a classe .noprint, como é que o fazes (sim, sou preguiçoso e não quero ir testar).
Cumps
EDIT: E o que faz a @ ?
off-topic
@ significa "at-rule"
Também uso raramente o @
Por ex.
<style type="text/css" media="print">
.onlyprint{display: block;visibility: visible;}
.noprint{display: none;visibility: hidden;}
</style>
vai fazer o mesmo que isto
<style type="text/css">
@media print{
.onlyprint{display: block;visibility: visible;}
.noprint{display: none;visibility: hidden;}
}
Ou com o alfinete já tinha dito podes usar o <link>
<link rel="stylesheet" type="text/css" href="style.css" media="print" >
ou o @import
<style type="text/css">
@import url("style.css") print;
</style>
Basicamente o @import será um "include", em vez de estares a escrever dentro do <style> todo o código css.
Enquanto o <link> é uma tag html que te permite fazer várias coisas, o @import será mesmo especifico css, também podes usar para "esconder" o código de browsers mais antigos que não suportam (há vários hacks também para isso).
Acho que é isto, espero não estar a induzir ninguém em erro.
on-topic
O teu problema é o evento onclick não funcionar ou os objectos aparecerem sempre quando fazes print?
Não estou a ver qual é o problema, se por ex. eu fizer isto
<html>
<head>
<style type="text/css">
@media print{
.onlyprint{display: block;visibility: visible;}
.noprint{display: none;visibility: hidden;}
}
</style>
</head>
<body>
<div class="noprint">
Inside DIV, this should only appear when printing ...
</div>
<button id="btnimprimir" class="noprint" value="imprimir" onclick="window.print();">Imprimir</button>
</body>
</html>
funciona bem no IE6.
Se por ex. tiveres esse código num ficheiro externo e fizeres
<link rel="stylesheet" type="text/css" href="style_print.css" media="print" >
também não funciona?
Tenta colocar aqui mais código da página, pode ser que alguém te ajude e consiga ver melhor o problema
hacks explica?
http://www.stylegala.com/resources/css_hacks.htm
;)