javascript - JavaScript 可以更改@page CSS 的值吗?

标签 javascript css dom

以下 CSS 会影响页面在默认情况下是纵向打印还是横向打印。

@page {
   size: landscape;
}

我意识到这只适用于非常有限的一组浏览器,并且用户可以覆盖它。没关系;我只是想提供一个好的默认值。

这在 CSS 中作为静态值工作得很好,但我想根据用户的选择在纵向和横向之间动态切换。是否可以使用 JavaScript 更改此值?

最佳答案

一种简单的方法是为@page 创建一个单独的样式并更改它:

var cssPagedMedia = (function () {
    var style = document.createElement('style');
    document.head.appendChild(style);
    return function (rule) {
        style.innerHTML = rule;
    };
}());

cssPagedMedia.size = function (size) {
    cssPagedMedia('@page {size: ' + size + '}');
};

cssPagedMedia.size('landscape');

关于javascript - JavaScript 可以更改@page CSS 的值吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22144169/

相关文章:

javascript - 设置 nextSibling 的 innerHTML

html - 客户端 CSS 属性覆盖我们的 html 选项卡部分

jquery - 激活滚动动画

javascript - 如何将元素中的对象引用存储为自定义属性?

javascript - document.insertBefore 抛出错误

html - 如何在 Angular 4 组件中设置响应式背景图像

dom - PS3 上的 Controller 按下是否有 DOM 事件?

javascript - 如何将 JS 中的值插入到 HTML 中?

javascript - 阻止字符串末尾的垂直空格 - 正则表达式

javascript - 如何使用附加属性扩展映射的 knockout View 模型 "on the fly"?