CSS样式表教程:screen媒体类型的作用

   CSS

  @media

  规则非常适合于将 HTML 或 XML 文档定位为目标输出方法。目前,

  print

  媒体的使用非常普遍,与实现单独的 “可打印版本” 相比,

  print

  提供了更加整洁的方式来创建打印机友好的页面。

  screen

  媒体一直未得到充分利用,原因可能是因为人们通常都认为

  screen

  仅仅是 “默认的呈现方式”。然而,就布局而言(尤指绝对布局),

  screen

  媒体类型具有重要的意义,样式表规则并不关心媒体类型,因此没有涵盖这一点。

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

  通常,将元素放入

  或

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

 

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

 

 

为创建这种外观,我使用如下的 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">中编号的行时,问题出现了:

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

 

div.bottom {
    background-color: lightblue;
    position: fixed;
    bottom: 0px;
    left: 0px;
    right: 0px;
    height: 20px;
}
/* ...Rest of CSS styling */  

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

 

当然,我希望将各种媒体以适合其显示特征的方法显示出来,但同时仍然共享独立于媒体(某些)的可视属性。要同时实现正确地屏幕显示和打印显示,我所需做的就是使用@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 的效果:

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

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索问题
, 应用程序
, position
, 一个
, bottom
媒体
,以便于您获取更多的相关知识。

时间: 2024-10-30 11:54:23

CSS样式表教程:screen媒体类型的作用的相关文章

CSS样式表教程之浏览器默认样式

不同浏览器对于相同元素的默认样式并不一致,这也是为什么我们在CSS的最开始要写 * {padding:0;marging:0}: 不过现在说的可不只是这些.基本上,不同内核的两个浏览器在某些元素的表现都会存在差异,比如缩进的大小.字体选择.字符样式等.也许一个很漂亮的CSS样式表在一个浏览器上表现良好,在另外一个浏览器上即使是没有CSS Bug的情况也会变得结构混乱起来,我都是浏览器默认样式在作怪. 因此,我们在生成CSS样式规则的时候,一个必做的步骤就是重设浏览器的默认样式,也就是覆盖掉浏览器

网页每次加载调用不同CSS样式表

在上一篇文章中曾提到要给自己的微博客制作多个样式,然后用户每次访问时随机载入样式,让微博在视觉上保持新鲜感.虽然思路与实现都比较简单,但还是想记录下来,与大家分享. [明确需求] 网页加载样式表default.css,会展现默认风格.同时为实现多种风格,制作了skin1.css,skin2.css,skin3.css三种定制样式.如果在加载default.css后,再加载其中某一样式表,则会覆盖默认风格,展示新风格: 每次随机加载skin1.css.skin2.css.skin3.css,或者使

如何用JavaScript实现动态修改CSS样式表_javascript技巧

看过我写的<用JavaScript动态建立或增加CSS样式表的实现方法>之后,你就很容易想明白如何修改CSS样式表了. 正好今天在论坛碰到一位朋友问这样的一个问题: <style> .ls{width=120px;} </style> <script> //在这里加一句来改变.ls中width的值,如何写 </script> 有的朋友回答:"如果使用.ls的对象很多的话,用JS确实不方便, jquery方便,$(".ls&qu

用JavaScript动态建立或增加CSS样式表的实现方法_javascript技巧

1.简单的方法,不管不顾,直接这样就可以: document.createStyleSheet().cssText = '标签{color:red;' + // 这个注释只在当前JS中帮助理解,并不会写入CSS中 'width:300px;height:150px}' + '.类名{--}' + '#ID们{--}' ;  //完活.我喜欢分号这样写,和指令书写的起始位置对齐比较好一点,尤其是后面有其它语句的时候. 2.完善一点的方法,防止重复添加,可以通过添加样式表ID并对其判断来实现: if

CSS样式表视频教程:什么是媒体查询

网页制作Webjx文章简介:CSS样式表视频教程:什么是媒体查询. 媒体查询是今天CSS样式最令人兴奋的一个方面.它让我们在不改变页面内容的前提下,准确地适应各种设备的布局.下面的这个介绍解释了什么是媒体查询,如何使用它,如何针对iPhone写样式和怎么去创建灵活的布局. Css3 媒体查询 View more presentations from alonguo.

[css]简明教程 CSS样式表概述

css|教程|样式表     CSS(Cascading Style sheets,层叠样式表)是一种制作网页的新技术,现在已经为大多数的浏览器所支持,成为网页设计必不可少的工具之一.使用CSS能够简化网页的格式代码,加快下载显示的速度,也减少了需要上传的代码数量,尤其是在设计者面对有数百个网页的站点时,大大减少了重复劳动的工作量. W3C(The World Wide Web Consortium)把动态HTML(Dynamic HTML)分为三个部分来实现:脚本语言(包括JavaScript

网页制作入门教程:关于css样式表

关于CSS样式表 一.在学习css之前你应该掌握哪些基础知识 1.什么是网页,什么是超文本语言(html). 2.会使用Dreamweaver等常用的网页编辑器. Dreamweaver是现今最好的网站编辑工具之一,而Dreamweaver8增加的对CSS的支持更是你容易得来使用CSS,用它来给制作网页的CSS样式表会更简单.更方便.本教程教你如何利用Dreamweaver8在页面中加入CSS,你不用死记硬背的记代码标记,也不用去看很厚的CSS手册,你就可以轻松自如的在网页中运用CSS.不过首先

CSS精品设计教程 用CSS样式表美化你的网页

第一天 doctype与html 第二天 XHTML的名字空间 第三天 定义XHTML语言编码 第四天 XHTML中调用CSS样式表的方法 第五天 xhtml中head区的其他设置 第六天 XHTML代码规范 第七天 CSS入门 第八天 CSS布局入门 第九天 第一个CSS布局实例 第十天 自适应高度

如何在网页中插入CSS样式表

  本例为CSS入门系列教程,在这一课中我们将学习如何在网页中插入CSS样式表,主要学习在页面中插入链入外部样式表.内部样式表.导入外表样式表和内嵌样式的四种方法,另外作者还讲解了多重样式表的叠加的运用以及如何在xml中插入CSS,希望能给对网页制作感兴趣的朋友带来帮助~~ CSS入门教程之如何在网页中插入CSS样式表 前面我们了解了CSS的语法,但要想在浏览器中显示出效果,就要让浏览器识别并调用.当浏览器读取样式表时,要依照文本格式来读,这里介绍四种在页面中插入样式表的方法:链入外部样式表.内