CSS 媒体类型

以下是 CSS 媒体类型(Media Types) 的中文详解,帮助你理解如何根据不同设备或输出环境应用不同的样式。


一、什么是媒体类型?

媒体类型用于告知浏览器或其他用户代理(如打印机、屏幕阅读器)当前样式表或某段样式应当在哪些媒介下生效。它是 CSS 媒体查询的基础,也是早期将样式表分发给不同设备的手段。


二、常见媒体类型列表

媒体类型含义
all适用于 所有 设备(默认值)
screen适用于 计算机屏幕、平板、手机 等彩色屏幕设备
print适用于 打印机 及打印预览
speech适用于 屏幕阅读器 等语音合成设备
projection适用于 投影仪(如演示文稿)
handheld适用于 早期移动设备,但现代浏览器已不推荐使用
braille适用于 盲文阅读器
embossed适用于 盲文打印机
aural已废弃,原为针对 语音合成 的媒体类型(改用 speech

注意: 除 allscreenprintspeech 外,其它类型的支持非常有限,多数场景下可忽略或使用媒体查询功能替代。


三、在 <link> 与 @import 中使用

1. <link> 标签

<!-- 仅在打印时加载 print.css -->
<link rel="stylesheet" href="print.css" media="print">
<!-- 在屏幕和打印时都加载 screen-print.css -->
<link rel="stylesheet" href="screen-print.css" media="screen, print">

2. @import 规则

/* 仅在屏幕设备加载 */
@import url("screen.css") screen;
/* 在所有设备加载 */
@import url("common.css") all;
/* 在打印设备加载 */
@import url("print.css") print;

四、与媒体查询结合使用

虽然媒体类型本身能区分大类媒介,但更常用的是 媒体查询

@media screen and (max-width: 600px) {
  /* 小屏幕手机样式 */
}

@media print and (orientation: landscape) {
  /* 打印横向时的样式 */
}
  • 逻辑运算andor(用逗号分隔)、not
  • 特性查询(min-width: ...)(resolution: ...)(prefers-color-scheme: dark) 等

媒体类型通常写在查询的最前面,如 @media print and (min-resolution: 300dpi)


五、使用场景

  1. 打印优化:将页面转换为打印友好的布局,如隐藏导航、调整字体、分页
  2. 色彩模式:在语音输出或盲文设备上提供辅助样式
  3. 多媒体展示:为投影仪或大屏幕演示提供更大字号和高对比度
  4. 渐进增强:在不支持某些特性的设备上降级到基本布局

六、浏览器支持

媒体类型主流浏览器支持情况
all✅ 全部支持
screen✅ 全部支持
print✅ 全部支持
speech✅ 大部分现代屏幕阅读器支持
其他类型⚠️ 支持较少,建议使用媒体查询

七、最佳实践

  • 优先使用媒体查询 而非依赖罕见的媒体类型。
  • 将打印样式抽离 到单独文件,通过 media="print" 或 @media print 加载;保持页面在打印时简洁、高可读性。
  • 避免使用已废弃类型(如 auralhandheld),可用 speech 或功能查询代替。
  • 为不同输出形式(屏幕、打印、朗读)设计专门的样式,以提高可访问性和用户体验。

通过掌握 CSS 媒体类型,你可以更精细地控制在哪些环境下加载或应用特定样式,为多样化的用户设备和输出方式提供最佳体验。

类似文章

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注