首页 · 设计视角 · 平面设计 · 网站设计 · 工业设计 · 建筑环境· CG动漫 · UI界面 · 色彩设计 · 网络编程 · 设计欣赏 · 广告欣赏 · 软件教程 · 矢量图下载
IT设计在线 > 网站设计 > HTML-CSS > CSS样式表技巧 screen媒体类型的作用

CSS样式表技巧 screen媒体类型的作用


CSS样式表

CSS @media 规则非常适合于将 HTML 或 XML 文档定位为目标输出方法。目前,print 媒体的使用非常普遍,与实现单独的 “可打印版本” 相比,print 提供了更加整洁的方式来创建打印机友好的页面。screen 媒体一直未得到充分利用,原因可能是因为人们通常都认为 screen 仅仅是 “默认的呈现方式”。然而,就布局而言(尤指绝对布局),screen 媒体类型具有重要的意义,样式表规则并不关心媒体类型,因此没有涵盖这一点。

最近,我在创建某个 Ajax Web 应用程序过程中遇到了一个难以解决的问题。和创建多数 Web 应用程序一样,我需要在屏幕的固定位置创建一个界面部件。在我的程序(本技巧)中,这个部件就是横跨信息显示区域底部的工具栏。对于我的实际应用程序,这个工具栏包含了各种子部件,可以对应用程序进行配置和交互;就这篇技巧而言,我将它替换为一个静态的信息集合。这种简化不会产生 CSS 问题。

通常,将元素放入 <frame><iframe> 元素内就可解决问题。但是,使用框架不仅会损失应用程序的简单性,还降低客户机 ECMAscript 在交互期间控制 <div> 元素可视性的能力。最好的方法是对界面使用纯粹的 CSS 表示。

 

对于本篇技巧,我创建了一个玩具式的文件查看应用程序,它可以读取 URL 或本地文件并使用编号的行和一个类似 wc 的摘要显示读取内容。我希望浏览器显示如图 1 所示的内容。

 

图 1. 基于 web 的 “less -N”

 

为创建这种外观,我使用如下的 HTML 模板: 网页教学网

<html>

<head>

  <title>Using CSS media types</title>

  @CSS

</head>

<body>

  <div class="top">

    @ITEMS

  </div>

  <div class="bottom">

    @SUMMARY

  </div>

</body>

</html> 

不要关心这种模板语言(并不存在)的细节;其意图非常明显。我尝试使用的 CSS 为:

div.bottom {

  background-color: lightblue;

  position: absolute;

  bottom: 0px;

  left: 0px;

  right: 0px;

  height: 20px;

}

div.top {

  background-color: white;

}

li.odd {

  background-color: #EAEAFF;

}

li.even {

  background-color: #FCFCFC;

} 

 非常简单,它将产生上面所示的屏幕截图。当您希望向下滚动 <div class="top"> 中编号的行时,问题出现了:

图 2. 非 @media 式样式表的屏幕问题

解决滚动问题的方法似乎是使用 <div>fixed 而不是 absolute 布局。

 

div.bottom {

    background-color: lightblue;

    position: fixed;

    bottom: 0px;

    left: 0px;

    right: 0px;

    height: 20px;

}

/* ...Rest of CSS styling */ 

 这个细微的改动确实修复了玩具应用程序的屏幕显示问题,但是现在,同一个页面的打印版本中出现了一个令人不快的工件。为演示这个问题,我设置了一个极其短小的页面长度:

 

图 3. 非 @media 式样式表的打印问题

当然,我希望将各种媒体以适合其显示特征的方法显示出来,但同时仍然共享独立于媒体(某些)的可视属性。要同时实现正确地屏幕显示和打印显示,我所需做的就是使用 @media 规则创建一个稍微复杂一点的样式表:

li.odd {

    background-color: #EAEAFF;

}

li.even {

    background-color: #FCFCFC;

}

@media screen {

  div.bottom {

    background-color: lightblue;

    position: fixed;

    bottom: 0px;

    left: 0px;

    right: 0px;

    height: 20px;

  }

  div.top {

    background-color: white;

  }

}

@media print {

  div.bottom {

    position: absolute;

    top: 0px;

  }

  div.top {

    position: relative;

    top: 20pt;

  }

} 

 可以看到,奇偶行的颜色保持不变,但是 topbottom <div> 元素的特定位置针对媒体的不同做了调整。产生如图 4 的效果:

图 4. 在使用 @media 规则的样式表中纠正打印显示

令人高兴的是,屏幕仍然保持其正确的显示状态。

2008-5-3 14:46:23 作者:佚名 阅读点击: 责任编辑:admin
关于 CSS样式表 的文章
IE对网页引入CSS样式表的限制

本文:CSS样式表技巧 screen媒体类型的作用
频道精彩推荐
阅读排行
设计作品推荐
设为首页 | 加入收藏 | 今日更新 | 欢迎投稿 | 关于我们 | 版权说明 | 设计服务 | 网站地图 |
Copyright © 2006-2008 www.ITZX1.com All Rights Reserved 版权所有 IT设计在线