【发布时间】:2009-09-08 19:51:22
【问题描述】:
即使没有“打印机友好型”视图来打印路线,当我在浏览器中选择“文件->打印”时,页面的格式也会与原始视图不同。谷歌是如何做到这一点的?它是一个特殊的 javascript 外观吗?
【问题讨论】:
标签: javascript google-maps printing
即使没有“打印机友好型”视图来打印路线,当我在浏览器中选择“文件->打印”时,页面的格式也会与原始视图不同。谷歌是如何做到这一点的?它是一个特殊的 javascript 外观吗?
【问题讨论】:
标签: javascript google-maps printing
代码中会定义一个打印样式表,类似于:
<link rel="stylesheet" href="print.css" type="text/css" media="print" />
如果样式表包含在单独的文件中。或者:
@media print {
body { font-size: 10pt }
}
@media screen {
body { font-size: 13px }
}
@media screen, print {
body { line-height: 1.2 }
}
如果样式是在代码主体中定义的。最后一个定义表明,相同的样式可以应用于多种媒体类型。
我不知道 Google 如何组织他们的代码库,这与本答案的目的无关。
公认的媒体类型有:
all 适用于所有设备。
盲文 用于盲文触觉反馈 设备。
浮雕用于分页 盲文打印机。
手持式 用于手持设备(通常很小 屏幕,带宽有限)。
打印 用于分页材料和 在屏幕上查看的打印文件 预览模式。请咨询 分页媒体部分以获取信息 关于格式问题 特定于分页媒体。
投影 用于投影演示, 例如投影仪。请咨询 分页媒体部分 有关格式问题的信息 特定于分页媒体。
screen主要用于颜色 电脑屏幕。
演讲 适用于 语音合成器。注意:CSS2 有一个 类似的媒体类型称为“听觉” 这个目的。见附件 详细信息的听觉样式表。
tty 适用于使用固定间距的媒体 字符网格(例如电传打字机, 终端,或便携式设备 显示能力有限)。作者 不应使用像素单位 “tty”媒体类型。
tv 适用于 电视型设备(低 分辨率、颜色、 有限滚动屏幕,声音 可用)。
【讨论】:
查看源代码 -> 搜索“@media print”。
google 地图页面在页面顶部的
【讨论】:
Google 通过为页面上的样式指定 @media print 来做到这一点。
您也可以通过为<link> 标签指定“媒体”类型来做到这一点。您可以指定样式表只应用于屏幕显示,或者在这种情况下用于打印。
来自W3C CSS 2.0 spec的示例:
<LINK REL="stylesheet" TYPE="text/css" MEDIA="print, handheld" HREF="foo.css">
或
@media print {
body { font-size: 10pt }
}
允许的类型:
all, braille, embossed, handheld, print, projection, screen, speech, tty, tv
【讨论】: