问题描述:
使用firefox火狐浏览器使用window.print()方法,打印出来的结果在打印设置里怎么调都是一页,打印不全。但是该网页用ie或者chrome就可以正常的打印出多页。
火狐版本:52.9
解决思路:
这个问题在百度上只能搜出来一个有用的结果,就是说修改页面css样式,但是到底怎么修改没说。百度靠不住了,只能谷歌。
谷歌搜出来一个大神给出的建议,检查页面使用了overflow和display属性的元素。最后还说一句很吓人的话:“排查起来可能要花一两天了”。不过大概的方向已经知道了。
页面上的元素其实却是很多,但是影响打印分页的无非就是<html><body><div>这三种标签。
<html><body>很好找,分别只有一个,设置如下样式:
html,body{
overflow: visible;
}
<div>再一想也好找,找到<body>下,覆盖整个页面,最大的那个div就可以了,在这个div的style里加上这个属性就试试:
style="display: block;"
重新打印,终于可以正常打印了,问题解决。
如果修改了样式页面有问题的话,可以尝试使用overflow和display的其他值尝试,或者在div外再嵌套一层专门解决打印的样式。