我打算只打印网页的一部分。
在网页里我这么写的
<style type="text/css">
@media print {
#no_print_wrapper{
display:none;
}
#map {
display:block;
position:absolute;
}
}</style>因为我要打印的那部分是一个jsp的一部分,而这个jsp又被其他jsp给import了,所以里面的div很复杂,我想用no_print_wrapper设置最外层,然后在最里层的要打印部分用map,但是发现里层的无法修改外层的,还是无法打印,哪个高手给点建议,在线等,谢谢。

解决方案 »

  1.   

    CSS内层不可以覆盖上层的声明吗?
      

  2.   


            @media print
            {
                *
                {
                    display: none;
                }
                #map
                {
                    display: block;
                    position: absolute;
                }
            }
      

  3.   

    不需要用css的,用js就实现首先将你在网页中,需要打印的部分,标一个id(唯一)
    如<div id="goprint">这里是要打印的内容</div>js:var printbody=document.getElementById("goprint").innerHTML;
    document.body.innerHTML = printbody;
    window.print();
    window.history.go(0);//这里打印后再返回当前页即可
    这样还可以实现页眉页脚打印,在js中添加页眉页脚的html代码即可,同时不需要修改ie的安全设置。
      

  4.   


    这个做法有个问题就是,如果你用的是IE,还可以
    但是如果你用的是firefox,document.body.innerHTML = printbody;就不行了,要用document.body.write(printbody);还要检测是什么浏览器吧,这个问题有没有解决方案呢,谢谢
      

  5.   


            .Noprint{display: none;}/*不打印的部分*/
            .PageNext{page-break-after: always;}/*分页*/
      

  6.   

     <style type="text/css" media="print">
            .Noprint{display: none;}
            .PageNext{page-break-after: always;}
        </style>
      

  7.   


    其实我的页面是很多个页面嵌套而成的,我只是打印中间的地图,如果要注明那些地方不打印,我会注明很多地方,而且容易出错,很复杂,所以我才想找个捷径,就是我在最外成定义全部定义成不打印,然后在里面某处要打印的地方定义一个打印,但是我的问题是里面定义打印那个css没办法改变外面那个不打印的定义。
      

  8.   

    弹出新窗口需要把要打印的东西加入新的窗口,现在有个问题是,javascirpt在IE和Firefox的语法不一样。
    IE:
    window.document.body.innerHTML=prnhtml;  
    Firefox
    window.document.body.write(prnhtml);
    这就意味着我要检测浏览器才能决定用哪个啊。用错了,浏览器没反应。