为创建这种外观,我使用如下的 HTML 模板:
htmlhead titleUsing CSS media types/title @CSS/headbody 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.bottom {background-color: lightblue;position: fixed;bottom: 0px;left: 0px;right: 0px;height: 20px;}/* ...Rest of CSS styling */
这个细微的改动确实修复了玩具应用程序的屏幕显示问题,但是现在,同一个页面的打印版本中出现了一个令人不快的工件。为演示这个问题,我设置了一个极其短小的页面长度:
当然,我希望将各种媒体以适合其显示特征的方法显示出来,但同时仍然共享独立于媒体(某些)的可视属性。要同时实现正确地屏幕显示和打印显示,我所需做的就是使用 规则创建一个稍微复杂一点的样式表:
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; }}
可以看到,奇偶行的颜色保持不变,但是 和
元素的特定位置针对媒体的不同做了调整。产生如图 4 的效果:
令人高兴的是,屏幕仍然保持其正确的显示状态。
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/webkaifa/)