控制页面打印的2种方法(css3的media媒体查询和window.print())
在实际开发中,有时可能会有打印的需求。下面我总结了2种打印的方法,希望对各位小伙伴有所帮助。
①:直接用window.print()方法就可以打印整个页面,下面是一个小demo
<!DOCTYPE HTML>
<html> <head>
<title>div print</title>
<meta charset="UTF-8"/>
</head> <body>
<p>HTML Page //Other content you wouldn't like to print</p>
<input name="b_print" type="button" onclick="doPrint();" value=" Print" /> <div id="print"> <h1 style="Color:Red">The Div content which you want to print</h1> </div>
<p>Other content you wouldn't like to print //Other content you wouldn't like to print</p> <script>
function doPrint() {
var printData = document.getElementById("print").innerHTML; //获得 div 里的所有 html 数据
document.body.innerHTML = printData;
window.print();
}
</script>
</body> </html>
原文参考:https://www.cnblogs.com/qingtaong/archive/2012/07/27/2611716.html
注:但是上面的方法也有一个问题,就是打印的是整个页面。有时需要打印全部,
有时只需要打印指定部分,要隐藏某些部分。这种情况就要使用第二种方法来解决
②:使用CSS3的media媒体查询控制页面并做局部打印——隐藏掉不需要或不想要打印的部分。下面还是一个demo
<!DOCTYPE html>
<html> <head>
<meta charset="utf-8" />
<title>督导报告</title>
<link rel="stylesheet" type="text/css" href="css/jihe-page.css" />
<style media="print">
.btn {
display: none;
}
</style>
</head> <body>
<div class="councilor-table">
<div class="councilor-table-main1">
<h4>督导报告</h4>
<span id="close-icon">X</span>
</div>
<div class="councilor-table-main2">
<div class="table-div1">
<h5>督导意见</h5>
<ul>
<li><span>督导任务名称</span><span>XXX</span></li>
<li><span>活动关联门店总数:</span><span>50</span></li>
<li><span>已执行门店数:</span><span>30</span></li>
</ul>
</div>
<div class="table-div2">
<h5>多次督导数据汇总</h5>
<table border="1" cellspacing="0" cellpadding="0">
<thead>
<tr>
<td>督导任务编码</td>
<td>督导任务内容</td>
<td>督导时间</td>
<td>门店督导数</td>
<td>不合要求门店数</td>
<td>虚假执行门店数</td>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
</tr>
<tr>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
</tr>
</tbody>
</table>
<table border="1" cellspacing="0" cellpadding="0">
<thead>
<tr>
<td>督导人员</td>
<td>督导任务编码</td>
<td>督导意见</td>
<td>原因描述</td>
</tr>
</thead>
<tbody>
<tr>
<td width="10%">1</td>
<td width="16%">1</td>
<td width="32%">1</td>
<td width="32%">1</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="councilor-table-main3">
<h5>督导报告</h5>
<ul>
<li>
<span>活动执行是否合格:</span>
<label id="label-radio1"><input type="radio" name="radio" />是</label>
<label id="label-radio2"><input type="radio" name="radio" />否</label>
</li>
<li class="label-radio1-main"><span class="textarea-span">原因描述:</span><textarea readonly="readonly" rows="5" cols="60"></textarea></li>
<div class="label-radio2-main">
<li><span class="textarea-span">督导意见:</span><textarea readonly="readonly" rows="5" cols="60"></textarea></li>
<li><span class="textarea-span">整改意见:</span><textarea readonly="readonly" rows="5" cols="60"></textarea></li>
</div>
</ul>
<div class="table-div3">
<button>取消</button><button>提交报告</button><button class="btn" onclick="doPrint();">打印</button>
</div>
</div>
</div> <script>
function doPrint() {
window.print();
}
</script>
</body> </html>
原文参考:https://www.cnblogs.com/qingtaong/archive/2012/07/27/2611716.html
打印时,你会发现打印按钮的button已经被隐藏了。
就是因为这里给button设置了隐藏:
<style media="print">
.btn{
display:none;
}
</style>
触发打印事件后,.btn就隐藏了
控制页面打印的2种方法(css3的media媒体查询和window.print())的更多相关文章
- css3的@media媒体查询
css3新功能,根据屏幕大小进行识别. 参考: http://www.runoob.com/cssref/css3-pr-mediaquery.html
- YbSoftwareFactory 代码生成插件【二十五】:Razor视图中以全局方式调用后台方法输出页面代码的三种方法
上一篇介绍了 MVC中实现动态自定义路由 的实现,本篇将介绍Razor视图中以全局方式调用后台方法输出页面代码的三种方法. 框架最新的升级实现了一个页面部件功能,其实就是通过后台方法查询数据库内容,把 ...
- 用 CSS 隐藏页面元素的 5 种方法
原文链接:用 CSS 隐藏页面元素的 5 种方法,转载请注明来源! 用 CSS 隐藏页面元素有许多种方法.你可以将 opacity 设为 0.将 visibility 设为 hidden.将 disp ...
- React Router v4 页面传值的三种方法
传值方法 1.props.params 使用React router定义路由时,我们可以给指定一个path,然后指定通配符可以携带参数到指定的path: <Route path='/user/: ...
- CSS 隐藏页面元素的 几 种方法总结
用 CSS 隐藏页面元素有许多种方法.你可以将 opacity 设为 0.将 visibility 设为 hidden.将 display 设为 none 或者将 position 设为 absolu ...
- js刷新页面有哪几种方法
js刷新页面有哪几种方法 一.总结 一句话总结:location属性的reload方法即可:document.location.reload() 1.页面刷新有哪常见的8种方法? 1,history. ...
- 09 Flutter底部Tab切换保持页面状态的几种方法
IndexedStack:保此所有页面的状态: AutomaticKeepAliveClientMixin:保此部分页面的状态: 修改的页面代码: 页面效果: Tabs.dart import 'pa ...
- Python+Selenium自动化-定位页面元素的八种方法
Python+Selenium自动化-定位页面元素的八种方法 本篇文字主要学习selenium定位页面元素的集中方法,以百度首页为例子. 0.元素定位方法主要有: id定位:find_elemen ...
- CSS3 media媒体查询器的使用方法
最近几年随着响应式布局的发展,一次开发多次使用,自适应屏幕的响应式网站的需求越来越多.但是怎样使得网站能自适应屏幕呢?这里就需要提到一个css3里面新增的技术了-media媒体查询器. 那么什么是me ...
随机推荐
- linux服务器使用Jenkins+gradle+git打apk包,报错Gradle build daemon disappeared unexpectedly (it may have been killed or may have crashed)
linux服务器使用Jenkins+gradle+git打apk包,遇到的错误Gradle build daemon disappeared unexpectedly (it may have bee ...
- MySQL加入log_bin报错
MySQL中二进制日志功能默认是关闭的,查看各种开启方式后,确定在配置文件中加入如下配置来开启该功能: [root@bogon /]# more /etc/my.cnf [mysqld] datadi ...
- springmvc webservlet 加redis 订阅消息
由于项目内请求的数据需要 等待设备处理完毕后返回才能得到.请求命令返回的是发送成功的包,而不是设备处理的包,所以需要请求等待.. 方式一:项目中 添加了redis作为一个缓存, webservlet ...
- CSS网页布局
注:优化样式表:增加css样式表的可读性 减伤样式重复 一.主要内容 1.布局分类;131 121 2.display属性排版 3.float属性排版(横向多列布局) 4.防止父类盒子塌陷 二.标 ...
- java GUI的效果图
import java.awt.*;import javax.swing.*; public class GridBagDemo extends JFrame { public static v ...
- 构建你的spring boot代码
Spring boot不需要任何特定的代码布局来工作.然而,有一些最佳实践可以帮助您. 1.避免使用缺省包 当一个类不包含包声明时,它被认为是在“缺省包”中.“默认包”的使用通常是不鼓励的,应该避免. ...
- 记录mysql安装过程遇到问题
1. 远程连接授权 登陆mysql数据库 (如果安装在系统盘可以直接命令, 否则要切换到安装目录..bin/) mysql -u root -p mysql> use mysql; - ...
- ubuntu18.04静态ip设置
1.配置文件 vi /etc/netplan/-cloud-init.yaml network: ethernets: enp129s0f0: addresses: [] dhcp4: true op ...
- Educational Codeforces Round 58 (Rated for Div. 2) D 树形dp + 数学
https://codeforces.com/contest/1101/problem/D 题意 一颗n个点的树,找出一条gcd>1的最长链,输出长度 题解 容易想到从自底向长转移 因为只需要g ...
- C#遍历SharePoint文档库下所有文档包括文档库中子文件夹下所有文档
/// <summary> /// 获取取子文件下所有文件 /// </summary> /// <param name="web"></ ...