`

css设置页面的打印样式及css用于不同媒体介质的设置

    博客分类:
  • web
阅读更多

这几天做东西涉及到打印,需要做套打,有些表格或文字只让他显示在网页上,但不需要打印出来

于是就找到了css的这个属性Media

<link href="../CSS/Style.css" rel="stylesheet" type="text/css"/>

<link href="../CSS/Print_Style.css" rel="stylesheet" type="text/css" media="print" />

 

我加了两个样式,Style.css为页面显示的样式,Print_Style.css为打印机专用的样式,这样就可以兼顾页面显示和打印了。

下面是css里Media属性的可选项

screen:指计算机屏幕。
print:指用于打印机的不透明介质。
projection:指用于显示的项目。
braille:盲文系统,指有触觉效果的印刷品。
aural:指语音电子合成器。
tv:指电视类型的媒体。
handheld:指手持式显示设备(小屏幕,单色)
all:适合于所有媒体。

 

指定媒体的两种方法

W3C中有两种方法能为CSS制定媒体类型.在本章开头示范了其中一种方法,也就是使用<link>标签与media属性,接着让我们比较看看这两种方法.

网页教学网

 

方法A:Media属性

<link rel="stylesheet" type="text/css" media="screen" href="screenstyles.css" />

与稍早的例子类似,方法A里指定只对电脑屏幕使用screenstyles.css,如此应该能避免在打印,投影,使用手持设备浏览,使用屏幕阅读器之类的时候套用screenstyles.css内的规则. 网页教学网

部分支持

有个重点必须留意,那就是严格支持所有媒体类型有点不切实际,在理想世界里,所有装置与浏览器都应该严格遵守指定的媒体类型,举例来说,如果写了:

<link rel="stylesheet" type="text/css" media="handheld" href="screenstyles.css" />

那么就会希望只有手持设备(像是PDA,手提电话等)会套用这些样式,不幸的是,标准内容在本文编写的时候似乎还没有普及到浏览器之外的世界,因此并不是任何设备都支持与其对应的媒体类型.

由于这个道理,我们会把焦点放在能够实际应用的媒体类型上,比如说打印样式.

Webjx.Com

 

方法B:@media或@import

<style type="text/css">

  @import url("screenstyles.css") screen;

  @media print {

    /* 打印时使用的样式放置在此 */

  }

</style>

第二种指定媒体类型的方法是结合@import和@media声明.举例来说,当我们以@import引入外部样式表时,能够一并为它指定媒体类型.

同样的,@media规则能够隔出针对某种特定媒体的规则段落,与方法A类似,以@media指定专门用于打印的样式.

放在<head>里或者放在外部

在方法A里放了<style>标签作为例子,它应该位于文件的<head>内,但是也能把@import与@media放在以<link>标签引用的外部样式表里(参考第10章的"结合方法B与方法C应用多重样式表").

Webjx.Com

 

虽然指定媒体类型时screen是预设值,但没有指定媒体类型时会以all作为预设值.这代表,根据预设,CSS会应用到所有设备上,屏幕,手持设备,投影机,屏幕朗读程序等等.

Webjx.Com

 

可以使用多重设定

不管使用哪种方法,都能一次指定许多媒体类型,举例来说,如果想以方法A同时为打印,屏幕指定某个样式表,那么可以这样写:

网页教学网

 

<link rel="stylesheet" type="text/css" media="screen, print" href="screenstyles.css" />

多重设定值在media属性里要用逗号隔开,同样的,如果我们以方法B指定多种媒体类型时,写法则类似这样:

网页教学网

 

<style type="text/css">

  @import url("screenandprint.css") screen, print;

  @media print {

    /* 打印时使用的样式放置于此 */

  }

</style> Webjx.Com

在前面的例子中,通过指定多重媒体类型,把screenandprint.css同时给屏幕显示和打印媒体使用,接着再以@media规则隔开打印专用的样式.

看过两种指定媒体类型的方法之后,接着来看看如何实际以它们提供屏幕显示与打印时使用的样式.

 

 

 

分开屏幕显示与打印的样式

假设我们想为同一份文件提供两份CSS:一个在显示时使用,另一个在打印时使用.现在以我的个人网站作为示范.

Webjx.Com

 

我以<link>标签引用整个网站的主体样式表(styles.css).styles.css的内容只是个简单的@import规则,用以引入另一个外部样式表,这样能够对老旧浏览器(像是Netscape 4.x)隐藏样式设定.

 

 

在页面的<head>里,链接到主体样式表styles.css 网页教学网

<link rel="stylesheet" type="text/css" href="/css/style.css" /> 网页教学网

同时也建立另一个特别针对打印设计的样式表(print.css).在print.css里,我写了只在页面打印时适用的样式. Webjx.Com

<link rel="stylesheet" type="text/css" href="/css/style.css" />

<link rel="stylesheet" type="text/css" href="/css/print.css" />

Webjx.Com

 

然后,现在要如何确保这些CSS只会针对各自适合的媒体发挥作用呢?为<link>标签加上media属性就可以了(与方法A一样). 网页教学网

<link rel="stylesheet" type="text/css" media="screen" href="/css/styles.css" />

<link rel="stylesheet" type="text/css" media="print" href="/css/print.css" />

网页教学网

 

通过为styles.css指定screen,就能确保styles.css包含的样式只会对电脑屏幕使用,同样的,把media属性设为print就能确保print.css包含的样式只在使用者打印页面时使用.

现在已经把屏幕与打印样式分开了,接着让我们看看有哪些样式适合放在打印样式表里头.

 

分享到:
评论

相关推荐

    css-print:CSS打印

    在网页设计领域,CSS(Cascading Style Sheets)不仅用于控制屏幕上的视觉表现,还扮演着重要的角色在打印输出上,这就是我们常说的CSS打印。本文将深入探讨CSS打印的相关知识点,包括打印样式表的创建、媒体查询、...

    css属性列表_和_属性值含义

    CSS 样式表可以作用于多种媒体,如屏幕、打印机、电子合成器等。特定的属性只能作用于特定的媒体,如"font-size"属性只对可卷动的媒体类型有效(屏幕)。声明一个媒体属性可以用 @import 或 @media 引入。 * SCREEN...

    快递单模板html.rar

    此外,他们还需要考虑CSS媒体查询(@media print)来优化打印样式,避免不必要的元素在打印时显示,或者调整某些元素的布局以适应纸质介质。 6. **响应式设计**:考虑到可能在不同的设备上查看和打印,模板需具备...

    行业分类-物理装置-一种调整层叠样式表的方法、装置、介质和电子设备.zip

    在本技术文档中,"一种调整层叠样式表的方法、装置、介质和电子设备"着重探讨了如何有效地管理和优化CSS,以适应不同设备和环境的需求。 首先,我们来看"调整层叠样式表的方法"。在网页设计中,CSS通常被用来控制...

    WEB打印控件合集(含调用示例)

    WEB打印控件是用于网页上实现打印功能的关键技术,它使得用户无需下载文件到本地就能直接从浏览器打印页面内容。这种技术在B/S(Browser/Server,浏览器/服务器)架构的应用中尤其重要,因为它简化了用户的操作流程...

    【ASP.NET编程知识】ASP.NET网页打印(只打印相关内容自写功能).docx

    - 使用CSS控制打印样式,例如字体大小、颜色、布局等,以适应打印介质。 - 考虑到不同浏览器的兼容性,可能需要对不同的浏览器(如Chrome、Firefox、IE)进行适配。 - 如果需要更复杂的打印功能,如预览、多页...

    JSP页面统计模板(打印,导出为Excel,查询统计)

    1. **页面样式**:使用CSS来控制打印样式,确保在打印预览和实际打印时保持一致。 2. **响应式设计**:考虑到不同的输出介质(屏幕与纸张),可能需要调整布局适应打印需求。 3. **打印控件**:可以通过JavaScript...

    bootstrap-print:管理Twitter Bootstrap v3的打印介质

    Bootstrap Print通过CSS样式和媒体查询来区分这两种情况,使得网页在打印时能自动隐藏不必要的元素(如导航栏、侧边栏等),保留关键内容,并调整字体大小、颜色和间距,以适应纸张的物理限制。 在技术层面,...

    多媒体技术的特性[借鉴].pdf

    CSS是网页设计中用于控制布局和外观的语言。以下是一些相关知识点: 1. **盒子模型**:CSS中的元素被视为带有边距、内边距、边框和内容的矩形盒子。正确的padding设置是`padding:10px 20px 30px 40px`,分别代表上...

    报表与打印(jsp).rar

    这些资源可能包括JSP页面、Java类、JRXML文件、CSS样式表以及相关的文档说明。 总之,"报表与打印(jsp).rar"这个压缩包内容涵盖了使用JSP进行报表设计和打印实现的关键技术和实践。开发者通过学习和使用其中的资源...

    19.2016年农大_网页制作_在线作业_5.pdf

    4. **标记属性**:`&lt;BASEFONT&gt;`标记用于设置页面的默认字体属性,包括FACE(字体类型),COLOR(颜色),和SIZE(字号)。不支持的属性是ALIGN,它通常用于对齐元素。正确答案是C,ALIGN。 5. **表格与框架特性**:...

    B助理电子商务师理论.pptx

    此外,标记用于文字样式设置,如字体、大小和颜色,而标记则用于创建表格,通过定义行,定义列,rowspan和colspan属性用于单元格跨行和跨列。 【HTML的相关内容】 HTML文件是一种结构化的文档,包含各种元素和标记...

    全国2009年7月高等教育自学考试网页设计与制作试题课程代码00900.pdf

    21. FrontPage2003字体设置:在字体选项卡中,不能设置的是“底纹”,底纹通常在背景或表格样式中设置。 22. FrontPage2003插入日历:插入的日历属于ActiveX控件,是网页中的交互元素。 这些知识点涵盖了网页设计...

    前端项目-fluidbox.zip

    描述中提到的 "复制介质美丽、极简的灯箱模块" 提示我们 Fluidbox 设计风格注重美观和简洁,旨在为用户提供无干扰的媒体查看体验。它可能具有平滑的过渡动画,适应性强,可以处理各种类型的媒体,如图片、视频,甚至...

    XML高级编程pdf-24

    针对打印或分页显示的媒体类型,这部分介绍了如何使用CSS来控制页面布局和分页行为。 #### 颜色和背景 这部分详细讲解了如何设置元素的颜色和背景属性,包括背景图像、渐变色等。 #### 字体属性 这部分介绍了...

    JavaScript调用浏览器打印功能实例分析

    3. 打印预览和页面设置:在上述的ExecWB方法中,可以指定不同的操作,例如打印预览和打印页面设置。这允许开发者在打印前让用户能够调整打印机设置或是预览即将打印的文档。 4. 打印的样式控制:在打印前,开发者...

    2021-2022计算机二级等级考试试题及答案No.15684.docx

    9. CSS样式:CSS样式由选择器和声明组成,选择器指定了要应用样式的元素,声明包含了属性和对应的值。 10. 绘图模式:在编程中,setXORMode()方法用于设置异或绘图模式,这是一种特殊的绘图方式,用于混合颜色。 ...

    计算机英语

    - **Transparent**:透明的,CSS属性之一,用于设置元素背景或颜色的透明度。 - **Dashed**:虚线,CSS中定义边框样式的属性值之一。 - **Solid**:实线,CSS中定义边框样式的属性值之一。 - **Forum**:论坛,网络...

Global site tag (gtag.js) - Google Analytics