vuetify.js - 打印 Vuetify 应用程序时如何保留列
问题描述
我有一个简单的 Vuetify 应用程序,看起来像这样(Codepen 链接):
<div id="app">
<v-app id="inspire">
<v-container class="grey lighten-5">
<v-row no-gutters>
<v-col cols="8">
<v-card class="pa-2" outlined tile>
{{ this.$vuetify.breakpoint.name }}
</v-card>
</v-col>
<v-col cols="4">
<v-card class="pa-2" outlined tile>
{{ this.$vuetify.breakpoint.name }}
</v-card>
</v-col>
</v-row>
</v-container>
</v-app>
</div>
在浏览器上查看以及打印页面时(从 Codepen 中的“调试模式”或在本地运行应用程序),它看起来与预期的一样:
但是,我想将xs
列设置为12
并仅将8
/4
比率保留为sm
和向上(Codepen 链接):
<div id="app">
<v-app id="inspire">
<v-container class="grey lighten-5">
<v-row no-gutters>
<v-col cols="12" sm="8">
<v-card class="pa-2" outlined tile>
{{ this.$vuetify.breakpoint.name }}
</v-card>
</v-col>
<v-col cols="12" sm="4">
<v-card class="pa-2" outlined tile>
{{ this.$vuetify.breakpoint.name }}
</v-card>
</v-col>
</v-row>
</v-container>
</v-app>
</div>
在浏览器上查看时看起来符合预期,但当我打印它时它看起来不正确(从 Codepen 中的“调试模式”或在本地运行应用程序):
为什么会发生这种情况,我该如何解决?
笔记
我知道打印时断点可能会改变。实际上,如果我使用 Puppeteer 打印页面:
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto(
'http://localhost:8081/#/',
{ waitUntil: 'networkidle2' },
);
await page.emulateMediaType('print');
await page.pdf({ path: 'output.pdf', format: 'A4', printBackground: true});
await browser.close();
})();
我得到了预期的sm
断点,但没有保留8
/4
比率。
解决方案
正如@KaelWD(Vuetify 开发人员)所指出的,我在 GitHub 中打开了一个问题:
我认为这应该被视为浏览器的怪癖,如果您想要一致的打印布局,那么编写自己的样式表
@media print
而不是依赖 px 断点可能是个好主意。
推荐阅读
- java - 如何在运行时扫描Java应用程序的所有类中的方法并根据给定的请求调用这些方法?
- json - 使用 pl/sql 从嵌套数组 json 中提取数据
- angular - 如何在 Strapi、GraphQL 的 where 子句中使用多个“and”条件进行查询?
- javascript - 为什么更改数组的副本会影响原始数组?
- javascript - 如何修复表中单个行内的 beforesend ajax 小型加载程序
- google-cloud-platform - 谷歌账户管理
- android-studio - 获取android Studio中表格布局中的所有按钮
- javascript - 如何隐藏 GIF 并用图像替换(以便使用放大工具)
- google-cloud-platform - Google Compute Engine:启动脚本未在容器优化操作系统中运行
- javascript - 地图中的顺序 axios 请求