Подтвердить что ты не робот

Может ли JavaScript изменить значение CSS-страницы?

Следующий CSS влияет на то, будет ли страница печатать в портретной или альбомной по умолчанию.

@page {
   size: landscape;
}

Я понимаю, что это работает только на очень ограниченном наборе браузеров и что пользователь может переопределить его. Это хорошо; Я просто пытаюсь обеспечить хороший дефолт.

Это отлично работает как статическое значение в CSS, но я бы хотел динамически переключаться между портретом и ландшафтом, основываясь на выборе пользователя. Можно ли использовать JavaScript для изменения этого значения?

4b9b3361

Ответ 1

Один простой способ - создать отдельный стиль для @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');