It has to work! Here is the code I have just tested and it works, I have tested it on IE, Firefox, Opera. I have put styles in the same document for clarity.
[HTML]<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Hide print button</title>
<style type="text/css" media="screen">
.PrintButton{
display:block;
}
</style>
<style type="text/css" media="print">
.PrintButton{
display:none;
}
</style>
</head>
<body>
<form id="PrintForm" action="Print.htm">
<h1>
Test printing with hiden button</h1>
This is just a test text for printing.<br />
<br />
<input id="btnPrint" type="button" value="Print page" class="PrintButton" onclick="window.print();" />
</form>
</body>
</html>
[/HTML]
This is code for the entire page. Try it, it works.