Bootstrap打印媒体查询 Bootstrap如何使用@media print

落雪吖_8628

落雪吖_8628

2026-03-20

818人浏览

原创

Bootstrap 通过内置打印类(如.d-print-none、.d-print-block)控制打印效果,仅带print后缀的类生效;自定义@media print需注意浏览器限制、CSS权重及加载时机。

如何用 @media print 控制 Bootstrap 页面打印效果

bootstrap 本身不提供专门的打印 css 文件,但它的响应式工具类(如 .d-none、.d-print-block)和全局样式都基于标准媒体查询实现,其中就包含对 print 的支持。你不需要额外引入 js 或 hack,只要正确使用 bootstrap 内置的打印相关类,就能控制哪些内容在打印时显示/隐藏。

Bootstrap 打印类怎么写?哪些能用、哪些不能用

Bootstrap 4/5 提供了专为打印设计的显示工具类,它们只在 @media print 下生效,不影响屏幕显示:

  • .d-print-none:仅在打印时隐藏元素(等价于 @media print { display: none !important; })
  • .d-print-block / .d-print-inline / .d-print-inline-block:仅在打印时强制设为对应 display 值
  • .d-none 和 .d-md-none 等断点类 —— 不作用于打印,它们只响应屏幕宽度,跟 print 无关

常见错误是误以为 .d-lg-none 能隐藏打印内容,结果打印出来全在。记住:只有带 print 后缀的类才管打印。

为什么写了 @media print 却没生效?三个高频原因

即使你手写 @media print { ... },也常被忽略底层限制:

VPS Bootstrap
VPS Bootstrap

从零启动全新 VPS,完成 OpenClaw 完整部署,包括备份/恢复及恢复后验证。用于 OpenClaw 部署。

下载
  • 浏览器默认禁用部分 CSS 属性:比如 background-color、box-shadow、border-image 在大多数浏览器打印预览中默认被忽略(除非用户勾选“背景图形”)
  • Bootstrap 的打印类依赖 !important,如果你自定义的 @media print 规则权重不够,会被覆盖;建议加 !important 或检查 CSS 加载顺序
  • Chrome/Firefox 对 @media print 的解析时机较晚,若 CSS 是动态插入或异步加载,可能错过打印样式注册;确保 <link> 或 <style></style> 在 中静态存在

实际场景:打印报表页时隐藏导航栏+显示页眉页脚

典型需求:网页有顶部导航、侧边栏、主内容区,打印时只想输出主内容 + 自定义页眉(含公司名+日期)和页脚(含页码)。

推荐做法:

  • 给导航栏加 class="d-none d-print-block" → 屏幕隐藏,打印时块级显示(用于页眉)
  • 给侧边栏加 class="d-none" → 屏幕隐藏(它本来就不该出现在打印里)
  • 主内容区加 class="d-print-block"(冗余但保险)
  • 在 HTML 底部加一个 <div class="d-none d-print-block">...</div> 作为页脚容器,并用 @media print 配合 :before/:after 插入页码(注意:CSS 页码需用 counter(),且仅在 Firefox/Edge 支持较好,Chrome 仍受限)

真正难的不是写类,而是接受「浏览器打印能力有限」——比如无法可靠控制分页位置、无法跨页重复表头、无法精确缩放字体。这些得靠 PDF 导出兜底,而不是硬扛 @media print。

相关文章

全能打印神器
全能打印神器

全能打印神器是一款非常好用的打印软件,可以在电脑、手机、平板电脑等设备上使用。支持无线打印和云打印,操作非常简单,使用起来也非常方便,有需要的小伙伴快来保存下载体验吧!

下载

相关标签:

bootstrap

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
python是前端还是后端
python是前端还是后端

Python属于前端也属于后端,其灵活性和丰富的生态系统使得开发人员能够在不同的领域中灵活运用。本专题为大家提供python相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.11

2443

5

前端如何实现即时通讯
前端如何实现即时通讯

实现即时通讯的方法有WebSocket、Long Polling、Server-Sent Events、WebRTC等等。详细介绍:1、WebSocket,它可以在客户端和服务器之间建立持久连接,实现实时的双向通信,前端可以使用 WebSocket API来创建WebSocket连接,并通过发送和接收消息来实现即时通讯;2、Long Polling,是一种模拟实时通信的技术等等。

2023.10.09

5283

6

前端和后端的区别
前端和后端的区别

前端关注的是用户界面的设计和交互,而后端则注重数据处理和逻辑控制。想了解更多前端后端的相关内容,可以阅读本专题下面的文章。

2024.03.19

6330

13

php和前端的关联介绍
php和前端的关联介绍

php既可以作为前端语言,也可以作为后端语言。想了解更多php和前端的相关内容,可以阅读本专题下面的文章。

2024.03.22

5918

10

前端外包工作内容有哪些
前端外包工作内容有哪些

前端外包工作内容包括:1. 网站和应用程序开发;2. 用户界面和交互设计;3. 用户体验优化;4. 设计和视觉开发;5. 跨浏览器兼容性;6. 性能优化;7. 维护和更新;8. 项目管理和沟通。想了解更多前端的相关内容,可以阅读本专题下面的文章。

2024.05.22

843

5

bootstrap框架介绍
bootstrap框架介绍

本专题整合了bootstrap框架相关介绍,阅读专题下面的文章了解更多详细内容。

2026.03.18

685

21

bootstrap安装教程
bootstrap安装教程

本专题整合了bootstrap安装相关教程,阅读专题下面的文章了解更多详细操作教程。

2026.03.18

199

9

css3教程
css3教程

php中文网为大家提供css3教程合集,CSS3的语法是建立在CSS原先版本基础上的,它允许使用者在标签中指定特定的HTML元素而不必使用多余的class、ID或JavaScript。php中文网还为大家带来css3的相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

2023.06.14

1880

10

有哪些css3渐变属性
有哪些css3渐变属性

css3中渐变属性有linear-gradient、radial-gradient、conic-gradient、repeating-linear-gradient、repeating-radial-gradient等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.11.01

2746

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Bootstrap5 入门教程
Bootstrap5 入门教程

共0课时 | 0人学习

Bootstrap Components 组件文档
Bootstrap Components 组件文档

共0课时 | 0人学习

Bootstrap Grid 栅格系统
Bootstrap Grid 栅格系统

共0课时 | 0人学习