🎖️如何在 Tailwind 中设置打印样式?

简介: 对于典型的以文档为导向的网站,特别是那些包含大量文本和图像内容的网站,可能会关心其在打印预览中的呈现。

嗨,大家好!这里是道长王jj~ 🎩🧙‍♂️

对于一个更像是界面而不是传统文档的网络应用程序,可能人们不太关心它在打印时的外观,因为不太可能有人会在那里打印内容。
然而,对于典型的以文档为导向的网站,特别是那些包含大量文本和图像内容的网站,可能会关心其在打印预览中的呈现。
在默认情况下,打印预览可能看起来不太理想。
那么我们该如何在不使用自定义 CSS 类和文件的情况下解决这个问题呢?

@media print {
   
  a {
   
    color: inherit;
    text-decoration: none;
  }
}

现在借助 Tailwind 的便捷的 printscreen 修饰符,网站在屏幕和纸上都可以呈现出出色的效果。

在 Tailwind 中设置打印和屏幕前缀

Tailwind 是一个出色的实用工具优先的 CSS 框架,我们希望能够在每个客户或项目中使用它。它就像是样式界的瑞士军刀,只不过没有那把几乎用不到的小剪刀。大多数实用工具从一开始就可用,但也有一些工具,它们就像是等待着您去发现的隐藏彩蛋。于是,引入 printscreen 修饰符。

起初,它们并不可用,只需打开 tailwind.config.js 文件并扩展可用屏幕:

module.exports = {
   
  // ... 其他 tailwind 配置
  extend: {
   
    screens: {
   
      print: {
    raw: 'print' },
      screen: {
    raw: 'screen' },
    },
  },
}

这样,Tailwind 将自动为您生成可以在类中使用的媒体查询前缀。您可以在类中使用这些前缀来完全显示或隐藏元素,或根据需要调整所需的任何 CSS:

<div class="print:text-xl screen:text-sm">在纸上我看起来很大,在屏幕上看起来很紧凑!</div>

隐藏导航和页脚元素

当用户打印网页时,他们通常不需要网站的导航栏、页脚或其他全局横幅元素。因为这些元素主要在数字环境中有用。因此,通常的做法是在打印版本中隐藏这些元素。

<nav class="print:hidden"> ... </nav>

隐藏交互元素

交互式元素(如按钮、下拉菜单和表单)在打印页面上通常没有作用。为避免造成混淆,最好在打印版本中隐藏它们。

<button class="print:hidden">点击我!</button>

链接显示 URL

超链接是一种在屏幕上可以产生神奇效果的交互式元素,在打印页面上却处于休眠状态。为了提供上下文,可以在打印版本的链接旁边显示 URL,以便读者可以在需要时手动访问它们。虽然需要向全局 CSS 添加一个自定义类,但只需要一个!

@media print {
   
  a[href]:after {
   
    content: " (" attr(href) ")";
  }
}

优化图像和图形

高色彩的图像可能不一定在打印时呈现出色彩良好,尤其是灰度图像。您可能希望增加对比度、去除背景图像,甚至将彩色图像替换为灰度图像,以确保清晰度。

<img src="colored-image.jpg" class="screen:block print:hidden">
<img src="grayscale-image.jpg" class="screen:hidden print:block">

考虑到屏幕和打印页面之间的差异,这些调整可以显著提升打印内容的清晰度、相关性和美观度。


🎉 你觉得怎么样?这篇文章可以给你带来帮助吗?当你处于这个阶段时,你发现什么对你帮助最大?如果你有任何疑问或者想进一步讨论相关话题,请随时发表评论分享您的想法,让其他人从中受益。🚀✨

目录
相关文章
|
移动开发 小程序
uniapp自定义tabbar,中间凸起(支持H5、微信小程序)
uniapp自定义tabbar,中间凸起(支持H5、微信小程序)
uniapp自定义tabbar,中间凸起(支持H5、微信小程序)
|
Ubuntu Linux 测试技术
Linux系统之部署轻量级Markdown文本编辑器
【10月更文挑战第6天】Linux系统之部署轻量级Markdown文本编辑器
579 1
Linux系统之部署轻量级Markdown文本编辑器
|
安全 芯片 SoC
两节锂电池充电芯片和充放电电路如何设计
两节锂电池充电电路设计中,A部分为保护电路,监测电压电流防止电池受损或膨胀;B部分负责电池充电管理,提供过压保护但不过放电保护;C部分则处理电池放电,实现不同电压转换输出。常见充电芯片如PW4284集成USB输入与DC-DC升压,支持8.4V充满及1A输出,并含过压保护。设计中需注意合理布局,如减少噪声干扰和确保功率线宽裕。此外,为保证安全,即便有充电管理芯片,仍需独立的充放电保护电路,如PW7052,来实现全面的电池保护。
两节锂电池充电芯片和充放电电路如何设计
|
存储 关系型数据库 MySQL
【MySQL】1-深入理解MySQL的索引机制
【MySQL】1-深入理解MySQL的索引机制
|
移动开发 前端开发
react项目配合diff实现文件对比差异功能
在React项目中,可以使用`diff`库实现文件内容对比差异功能。首先安装`diff`库,然后在组件中引入并使用`Diff.diffChars`或`Diff.diffLines`方法比较文本差异。通过循环遍历`diff`结果,可以生成不同样式的HTML元素来高亮显示文本差异。
652 1
react项目配合diff实现文件对比差异功能
|
机器学习/深度学习 人工智能 文字识别
文本,文字识别02----PaddleOCR基础概念及介绍,安装和使用,人工智能是一种使计算机模仿人类的一种技术,PaddleOCR的安装地址-https://www.paddlepaddle.org
文本,文字识别02----PaddleOCR基础概念及介绍,安装和使用,人工智能是一种使计算机模仿人类的一种技术,PaddleOCR的安装地址-https://www.paddlepaddle.org
|
JavaScript
js 【实用技巧】给全文代码添加一键复制按钮
js 【实用技巧】给全文代码添加一键复制按钮
290 1
|
消息中间件
RabbitMQ如何设置消息过期
RabbitMQ 是一个功能强大的消息中间件,用于在分布式系统中处理和传递消息。为了提高消息传递的灵活性和效率,RabbitMQ 提供了一种消息过期的机制,可以设置消息的过期时间,这样当消息在指定时间内未被消费者消费时,会自动地从队列中删除。
462 0
|
数据采集 运维 监控
ERP系统中的生产过程监控与质量管理
【7月更文挑战第25天】 ERP系统中的生产过程监控与质量管理
509 0
|
数据可视化 前端开发 JavaScript
react+datav+echarts实现可视化数据大屏
最近有点闲,就学习了下react,没想到就把react学完了,觉得还不错,就打算出一把react+datav的简易版可视化数据大屏供大家做个参考
1287 2
react+datav+echarts实现可视化数据大屏