简单介绍CSS设置打印页面的方法及css里media的使用

(编辑:jimmy 日期: 2024/10/31 浏览:2)

在很多是时候往往要打印网页中的某一部分,而不是全部网页,所以告诉打印机要打印的部分,使用css进行一下设置是一个比较好的方式,先看一段代码:

复制代码代码如下:
<link href="css/screen.css" rel="stylesheet" type="text/css" media="screen" />
<link href="css/print.css" rel="stylesheet" type="text/css" media="print" />

以上两行代码是引入外部css样式表,需要特别主义的是media属性值分别是screen和print,用来规定css样式表要服务的对象,如果属性值是media,则说明是为了在屏幕控制页面的显示,如果属性值是print,则说明css代码是用于控制需要打印的元素的样式的。
隐藏不需要打印的页面元素:
使用控制打印的css隐藏不需要打印的页面元素即可,那么点击打印,被打印的只有打印样式表控制下没有被隐藏的元素。
代码如下:

复制代码代码如下:
/* 隐藏不打印项 start */
h1 span{
display:none;
}
#sidebar{
display:none;
}
/* 隐藏不打印项 end */

以上代码只是一个简单的演示,页面中的相关元素将不会被打印。
点击进行打印:

复制代码代码如下:
<input type="button" value="点击打印" onclick="window.print()"/>

点击以上按钮就可以实现打印效果。
css里media的使用
我们在网页里引用外部的css文件时,通常是用如下的代码:

复制代码代码如下:
<link rel="stylesheet" type="text/css" href="mycss.css">

实际上,上面的link对象里,我们是省略了一个叫“media”的属性,这个属性指定样式表规则用于指定的设备类型。它有如下值可用:
all-- 用于所有设备类型
aural-- 用于语音和音乐合成器
braille-- 用于触觉反馈设备
embossed-- 用于凸点字符(盲文)印刷设备
handheld-- 用于小型或手提设备
print-- 用于打印机
projection-- 用于投影图像,如幻灯片
screen-- 用于计算机显示器
tty-- 用于使用固定间距字符格的设备。如电传打字机和终端
tv-- 用于电视类设备
这么多的值,并不是每个都可用,因为浏览器厂商并没有全部实现它们。
在IE里面,可用的值有all,print,screen三个。上面的代码里,我们没有使用“media”,实际上IE或其他浏览器是用了“all”这个值。“screen”,用于显示器,也就是我们一般看到的效果。“print”,用于打印的效果。
也就是说,我们没有指定“media”,那么我们看到的效果和打印的效果,它们用的都是同样的css文件。如果我们指定了一个“screen”,又指定了一个“print”,那么在打印时就会用“print”指定的css来渲染网页并打印。例如一个网页里有如下代码:

复制代码代码如下:
<link rel="stylesheet" type="text/css" media="screen" href="mycss.css">
<link rel="stylesheet" type="text/css" media="print" href="myprintcss.css">

那就表示,我们通过IE看到的网页,用到的css文件是mycss.css,而通过IE打印时用到的css文件则是myprintcss.css。想到什么了吗?对,我们可以通过print的设置,来让网页上的一些不需要打印的内容隐藏起来,比如,打印按钮。实际上,media还可以这样使用:

复制代码代码如下:
<style media=print>
//这里定义你要打印时用到的css类
</style>

或者这样使用:

复制代码代码如下:
<style>
@media print {
//这里定义你要打印时用到的css类
}
</style>

一句话新闻

高通与谷歌联手!首款骁龙PC优化Chrome浏览器发布
高通和谷歌日前宣布,推出首次面向搭载骁龙的Windows PC的优化版Chrome浏览器。
在对骁龙X Elite参考设计的初步测试中,全新的Chrome浏览器在Speedometer 2.1基准测试中实现了显著的性能提升。
预计在2024年年中之前,搭载骁龙X Elite计算平台的PC将面世。该浏览器的提前问世,有助于骁龙PC问世就获得满血表现。
谷歌高级副总裁Hiroshi Lockheimer表示,此次与高通的合作将有助于确保Chrome用户在当前ARM兼容的PC上获得最佳的浏览体验。