CSSだけのツリーメニューを印刷するときだけ非表示にする

Drop Down Menus : Massive Blue Drop Down
CSSだけでメニューを作るというのが素晴らしいので導入してみたものの、印刷するときには非表示にしたいんだけどレイアウト崩壊がおきていたのをずーっと悩んでいた。
 
上記サイトから引用

<!--HTML-->
<div class="menu">
<ul>
<li><a href="#" target="_self" >Sample</a>
<ul>
<li><a href="#" target="_self">Sub Menu1</a></li>
<li><a href="#" target="_self">Sub Menu1</a></li>
<li><a href="#" target="_self">Sub Menu1</a></li>
</ul>
</li>
<li><a href="#" target="_self" >Sample</a>
<ul>
<li><a href="#" target="_self">Sub Menu2</a></li>
<li><a href="#" target="_self">Sub Menu2</a></li>
<li><a href="#" target="_self">Sub Menu2</a></li>
</ul>
</li>
<li><a href="#" target="_self" >Sample</a>
<ul>
<li><a href="#" target="_self">Sub Menu3</a></li>
<li><a href="#" target="_self">Sub Menu3</a></li>
<li><a href="#" target="_self">Sub Menu3</a></li>
</ul>
</li>
<li><a href="#" target="_self" >Sample</a>
<ul>
<li><a href="#" target="_self">Sub Menu4</a></li>
<li><a href="#" target="_self">Sub Menu4</a></li>
<li><a href="#" target="_self">Sub Menu4</a></li>
</ul>
</li>
</ul>
</div>

 
問題のCSS

/*CSS*/
.menu{
	border:none;
	border:0px;
	margin:0px;
	padding:0px;
	font: 67.5% "Lucida Sans Unicode", "Bitstream Vera Sans", "Trebuchet Unicode MS", "Lucida Grande", Verdana, Helvetica, sans-serif;
	font-size:14px;
	font-weight:bold;
	}
.menu ul{
	background:#333333;
	height:35px;
	list-style:none;
	margin:0;
	padding:0;
	}
	.menu li{
		float:left;
		padding:0px;
		}
	.menu li a{
		background:#333333 url("images/seperator.gif") bottom right no-repeat;
		color:#cccccc;
		display:block;
		font-weight:normal;
		line-height:35px;
		margin:0px;
		padding:0px 25px;
		text-align:center;
		text-decoration:none;
		}
		.menu li a:hover, .menu ul li:hover a{
			background: #2580a2 url("images/hover.gif") bottom center no-repeat;
			color:#FFFFFF;
			text-decoration:none;
			}
	.menu li ul{
		background:#333333;
		display:none;
		height:auto;
		padding:0px;
		margin:0px;
		border:0px;
		position:absolute;
		width:225px;
		z-index:200;
		/*top:1em;
		/*left:0;*/
		}
	.menu li:hover ul{
		display:block;
		
		}
	.menu li li {
		background:url('images/sub_sep.gif') bottom left no-repeat;
		display:block;
		float:none;
		margin:0px;
		padding:0px;
		width:225px;
		}
	.menu li:hover li a{
		background:none;
		
		}
	.menu li ul a{
		display:block;
		height:35px;
		font-size:12px;
		font-style:normal;
		margin:0px;
		padding:0px 10px 0px 15px;
		text-align:left;
		}
		.menu li ul a:hover, .menu li ul li:hover a{
			background:#2580a2 url('images/hover_sub.gif') center left no-repeat;
			border:0px;
			color:#ffffff;
			text-decoration:none;
			}
	.menu p{
		clear:left;
		}	

 
失敗していた印刷用のCSS

.menu{
display: none !important;
visibility: hidden;
}

これをやったところでIEで印刷するとデザイン崩壊が発生する。
 
解決に至った印刷用のCSS 

.menu{}

.menu .ex,
.menu ul,
.menu li,
.menu li ul
{
	display:none;
}

中身を空っぽにしてやるだけで何とかなった・・・地味に時間がかかりすぎた・・・orz