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

2020-05-08 08:25:45易采站长站整理

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;

}

}

可以看到,奇偶行的颜色保持不变,但是

top
bottom
<div>
元素的特定位置针对媒体的不同做了调整。产生如图 4 的效果:

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

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