导读:本期聚焦于小伙伴创作的《CSS如何在HTML中引入打印样式?使用media="print"控制打印输出样式的方法有哪些》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《CSS如何在HTML中引入打印样式?使用media="print"控制打印输出样式的方法有哪些》有用,将其分享出去将是对创作者最好的鼓励。

在网页开发中,打印功能的样式适配是很多项目需要处理的场景,默认的打印样式会直接沿用屏幕显示的样式,导致打印出来的内容包含大量无用元素,样式混乱。通过CSS的media规则可以针对打印场景单独设置样式,其中使用media="print"是最常用的方式。

什么是media="print"

media是CSS中用于指定样式适用媒介的属性,print是媒介类型的一种,代表打印设备。当给样式表或者样式规则设置media="print"时,这些样式只会在页面被打印时生效,在屏幕显示时不会产生影响。

在HTML中引入打印样式的常见方法

方法一:使用link标签引入单独的打印样式表

这是最推荐的方式,将打印样式和屏幕样式分离,便于维护。在HTML的<head>标签中添加如下代码:

<!-- 屏幕样式 -->
<link rel="stylesheet" href="screen.css" media="screen">
<!-- 打印样式 -->
<link rel="stylesheet" href="print.css" media="print">

在print.css中就可以专门编写打印相关的样式,比如隐藏不需要打印的元素:

/* 隐藏导航栏、侧边栏、广告等不需要打印的元素 */
.nav, .sidebar, .ad {
    display: none;
}
/* 调整打印内容的字体大小和行高,更适合阅读 */
.main-content {
    font-size: 12pt;
    line-height: 1.5;
}
/* 去除打印时的背景色,节省墨水 */
body {
    background-color: white;
    color: black;
}

方法二:在style标签中使用@media规则

如果不想单独创建打印样式文件,也可以在同一个CSS文件或者<style>标签中使用@media print规则包裹打印样式:

<style>
/* 屏幕样式 */
body {
    background-color: #f5f5f5;
    font-size: 16px;
}
/* 打印样式 */
@media print {
    .header, .footer {
        display: none;
    }
    body {
        background-color: white;
        font-size: 12pt;
    }
    /* 给打印的页面添加页眉页脚样式 */
    @page {
        margin: 2cm;
    }
}
</style>

方法三:直接在CSS属性中指定media

也可以在单个样式规则中指定media属性,不过这种方式适用场景较少,维护性较差:

/* 这条规则只在打印时生效 */
@media print {
    .no-print {
        display: none;
    }
}

打印样式的常用配置技巧

  • 隐藏不需要打印的元素:通过display: none隐藏导航、按钮、广告等和打印内容无关的部分。
  • 调整字体和颜色:打印时建议使用衬线字体,字体大小设置为pt单位,颜色使用黑色,去除背景色减少墨水消耗。
  • 控制页面边距:使用@page规则可以设置打印页面的边距、纸张方向等属性。
  • 避免内容被截断:对于表格、长段落等内容,可以设置page-break-inside: avoid避免内容在打印时被分页截断。

注意事项

需要注意media="print"的样式只在打印预览和打印输出时生效,不会影响页面在屏幕上的显示效果。如果同时设置了screen和print的样式,浏览器会根据当前场景自动选择对应的样式应用。另外不同浏览器的打印渲染可能存在细微差异,开发完成后建议在常用浏览器中测试打印效果。

下面是一个完整的HTML示例,演示了如何使用media="print"控制打印样式:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>打印样式示例</title>
    <style>
        /* 屏幕样式 */
        body {
            font-family: "Microsoft YaHei", sans-serif;
            background-color: #f0f0f0;
            padding: 20px;
        }
        .nav {
            background-color: #333;
            color: white;
            padding: 10px;
            margin-bottom: 20px;
        }
        .content {
            background-color: white;
            padding: 20px;
            border-radius: 5px;
        }
        .print-btn {
            padding: 8px 16px;
            background-color: #007bff;
            color: white;
            border: none;
            border-radius: 4px;
            cursor: pointer;
            margin-top: 20px;
        }
        /* 打印样式 */
        @media print {
            .nav, .print-btn {
                display: none;
            }
            body {
                background-color: white;
                padding: 0;
            }
            .content {
                border: none;
                padding: 0;
            }
            @page {
                margin: 1.5cm;
            }
        }
    </style>
</head>
<body>
    <div class="nav">网站导航栏</div>
    <div class="content">
        <h1>文章标题</h1>
        <p>这是文章的正文内容,打印时只会显示这部分内容和标题,导航栏和打印按钮会被隐藏。</p>
        <p>更多正文内容,更多正文内容,更多正文内容。</p>
    </div>
    <button class="print-btn" onclick="window.print()">打印页面</button>
</body>
</html>

CSSHTMLprint_media打印样式修改时间:2026-06-22 23:13:04

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。