0

0

CSS如何排版复杂的票据类单据_利用表格布局或精确的Grid分割区以及细边框结合

P粉602998670

P粉602998670

发布时间:2026-03-15 09:57:12

|

638人浏览过

|

来源于php中文网

原创

用 display: grid 划分票据区域比表格更可控,因其支持显式轨道定义、命名区域布局、精准打印适配及稳定分页控制。

css如何排版复杂的票据类单据_利用表格布局或精确的grid分割区以及细边框结合

display: grid 划分票据区域比表格更可控

表格(<table>)天生语义化,但票据常需跨区对齐、动态高度适配、打印缩放微调——这时候 Grid 的显式轨道定义反而更稳。grid-template-areas 配合命名区域,一眼看清各块位置关系,改布局不用动 HTML 结构。

常见错误现象:colspan/rowspan 在打印预览里错位,或 CSS transform: scale() 后边框虚化;Grid 用 fr 单位+固定 minmax() 高度,能锁住关键区域比例。

  • 头部区域设为 grid-area: header,固定 min-height: 48px 防文字撑高
  • 商品明细行用 grid-template-rows: repeat(auto-fill, minmax(24px, 1fr))),避免空行留白
  • 金额汇总区单独设 grid-area: total,右对齐时用 justify-self: end,不依赖 text-align

细边框必须用 border 而非 outline 或阴影

票据打印对线宽精度敏感,outline 不占布局空间、无法控制单边,box-shadow 在 PDF 导出时大概率丢失。只有 border 能被所有浏览器和打印引擎一致解析。

使用场景:发票的“销售方/购买方”双栏分隔线、明细表头下划线、金额框外框——这些线在 A4 纸上必须清晰到 0.5pt 级别。

立即学习前端免费学习笔记(深入)”;

小微助手
小微助手

微信推出的一款专注于提升桌面效率的助手型AI工具

下载
  • 统一用 border: 0.5px solid #000,不要写 1px(高 DPI 屏幕会渲染成 2 物理像素,打印模糊)
  • 避免 border-collapse: collapse,它会让相邻单元格边框合并,导致打印时某条线变粗
  • 需要“无边框但有间距”的地方,用 padding + background-clip: padding-box 模拟,别靠 border: none

打印样式里禁用 flex 布局,优先用 gridfloat

Chrome 和 Edge 的打印预览对 Flex 的 flex-wrapalign-content 支持不稳定,常出现内容截断或换页错乱;Grid 的 page-break-inside: avoid 可精准控制分页点。

参数差异:flex-direction: column 在打印时可能被忽略,而 grid-template-rows 会严格按定义分配空间。

  • 明细列表外层容器加 @media print { display: grid },覆盖屏幕样式
  • 每行明细加 break-inside: avoid,防止金额行被拆到两页
  • 绝对定位元素(如右上角“发票专用章”)必须用 position: relative + top/right 替代 position: absolute,否则打印时消失

字体和字号必须用 pt 单位,禁用 rem%

打印输出依赖物理尺寸,rem 依赖根字体大小,% 依赖父级,而打印机不解析 CSS 计算上下文。只有 pt(1pt = 1/72 英寸)能保证 A4 纸上文字高度恒定。

性能影响:用 px 在高 DPI 打印机上会缩放失真,em 在嵌套多层时误差累积,最终导致“金额栏宽度不够”这类硬伤。

  • 正文统一用 font-size: 9pt,表头用 10pt,金额数字用 10.5pt(中文等宽字体下更易对齐)
  • 禁用 font-family 列表里的非系统字体(如 "PingFang SC"),Windows 打印机可能回退成宋体,字宽突变
  • 中英文混排时,用 font-feature-settings: "tnum" 强制数字等宽,避免金额列歪斜
事情说清了就结束。最麻烦的是打印预览和真实打印机之间的像素映射偏差,哪怕只差 0.1pt,整张票据的边框对不齐、金额列错位,就得反复调 marginline-height

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

WorkBuddy
WorkBuddy

腾讯云推出的AI原生桌面智能体工作台

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
chrome什么意思
chrome什么意思

chrome是浏览器的意思,由Google开发的网络浏览器,它在2008年首次发布,并迅速成为全球最受欢迎的浏览器之一。本专题为大家提供chrome相关的文章、下载、课程内容,供大家免费下载体验。

1071

2023.08.11

chrome无法加载插件怎么办
chrome无法加载插件怎么办

chrome无法加载插件可以通过检查插件是否已正确安装、禁用和启用插件、清除插件缓存、更新浏览器和插件、检查网络连接和尝试在隐身模式下加载插件方法解决。更多关于chrome相关问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

848

2023.11.06

edge是什么浏览器
edge是什么浏览器

Edge是一款由Microsoft开发的网页浏览器,是Windows 10操作系统中默认的浏览器,其目标是提供更快、更安全、更现代化的浏览器体验。本专题为大家提供edge浏览器相关的文章、下载、课程内容,供大家免费下载体验。

1741

2023.08.21

IE浏览器自动跳转EDGE如何恢复
IE浏览器自动跳转EDGE如何恢复

ie浏览器自动跳转edge的解决办法:1、更改默认浏览器设置;2、阻止edge浏览器的自动跳转;3、更改超链接的默认打开方式;4、禁用“快速网页查看器”;5、卸载edge浏览器;6、检查第三方插件或应用程序等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

398

2024.03.05

如何解决Edge打开但没有标题的问题
如何解决Edge打开但没有标题的问题

若 Microsoft Edge 浏览器打开后无标题(窗口空白或标题栏缺失),可尝试以下方法解决: 重启 Edge:关闭所有窗口,重新启动浏览器。 重置窗口布局:右击任务栏 Edge 图标 → 选择「最大化」或「还原」。 禁用扩展:进入 edge://extensions 临时关闭插件测试。 重置浏览器设置:前往 edge://settings/reset 恢复默认配置。 更新或重装 Edge:检查最新版本,或通过控制面板修复

1039

2025.04.24

python中print函数的用法
python中print函数的用法

python中print函数的语法是“print(value1, value2, ..., sep=' ', end=' ', file=sys.stdout, flush=False)”。本专题为大家提供print相关的文章、下载、课程内容,供大家免费下载体验。

193

2023.09.27

python print用法与作用
python print用法与作用

本专题整合了python print的用法、作用、函数功能相关内容,阅读专题下面的文章了解更多详细教程。

19

2026.02.03

css中float用法
css中float用法

css中float属性允许元素脱离文档流并沿其父元素边缘排列,用于创建并排列、对齐文本图像、浮动菜单边栏和重叠元素。想了解更多float的相关内容,可以阅读本专题下面的文章。

595

2024.04.28

TypeScript类型系统进阶与大型前端项目实践
TypeScript类型系统进阶与大型前端项目实践

本专题围绕 TypeScript 在大型前端项目中的应用展开,深入讲解类型系统设计与工程化开发方法。内容包括泛型与高级类型、类型推断机制、声明文件编写、模块化结构设计以及代码规范管理。通过真实项目案例分析,帮助开发者构建类型安全、结构清晰、易维护的前端工程体系,提高团队协作效率与代码质量。

49

2026.03.13

热门下载

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

精品课程

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

共14课时 | 0.9万人学习

Bootstrap 5教程
Bootstrap 5教程

共46课时 | 3.6万人学习

CSS教程
CSS教程

共754课时 | 43.1万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号