// just create the style tag and set the page size
function setPageSize(cssPageSize) {
const style = document.createElement('style');
style.innerHTML = `@page {size: ${cssPageSize}}`;
document.head.appendChild(style);
}
// how to use it
setPageSize('letter landscape');
3条答案
按热度按时间nx7onnlm1#
一个简单的方法是为@page创建一个单独的样式并对其进行更改:
pcww981p2#
@jasssonpet用他的回答救了我的小命,话虽如此,我还是把它改得简单一点(在我看来)。
**不太清楚为什么要这样做,但如果你知道,请告诉我。如果只是偏好,那么我分享我的代码样本是因为其他人的偏好可能更符合我的偏好。
编辑:这是我最近第一次登录,看到了@jasssonpet的答案,现在我觉得更有意义了。如果其他人感到困惑,他的方法的主要好处是两件事:
1.他使用闭包,这样只有一个样式标签添加到页面中,然后可以引用和更改。
1.他对cssPagedMedia进行了扩展,使添加的任何方法都具有名称空间,这样,全局名称空间就不会受到污染。
下面是它的类形式(我发现它更容易理解):
ig9co6j13#
感谢@jasssonpet的解决方案!我遇到了一个问题,Vue JS无法在
root
之外v-bind
到css
,如下所示我需要独立地管理方向和边距,也许将来会有更多的规则。因此,我重新编写并更新了该代码,以便嵌入其他代码和框架。
在
utils/customizePageStyle.js
处Vue J使用示例: