Firefox Проблемы с масштабированием и вращением CSS - PullRequest
1 голос
/ 09 декабря 2011

У меня есть генератор карт для игры в гольф.Структурно у страницы есть div класса .printarea, обертывающий таблицу шириной 1072 пикселя.

Я постепенно получаю ее, поэтому печать представляет одну страницу в альбомной ориентации во всех основных браузерах.если вращение и масштаб указаны в BODY, то масштаб не работает.Поэтому я переместил ротацию в DIV, содержащую все остальное.Это привело к повороту, но сместило таблицу так, что некоторые обрезки происходят справа (снизу таблицы) и сверху (справа от таблицы).

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

Играя с настройками оригинала, я в итоге получаю position:absolute; -moz-transform-origin: 400px 900px; Это теряет часть верхней части таблицы (левая сторона страницы) и смещает последние двастроки, несмотря на то, что ножка стола (правая сторона страницы) легко находится в 3 дюймах от края бумаги.Уменьшение даже до крошечных пропорций не исправляет смещение.

Вот статическая копия одной карты: http://egolfplan.com/example.html

В конце поста я добавлю скриншоты PDF-файлов из печати.

Текущий CSS

<style type="text/css" media="print">
    BODY {
        width:100%;
        height:100%;
        -webkit-transform: rotate(-90deg) scale(.68,.68); 
        -moz-transform:scale(.48,.48);
         zoom: 60%;
    }
    .printarea {
        width:100%;
        height:100%;
        -moz-transform:rotate(-90deg);
    }
    @page {margin: 0;}

 </style>

Масштабируется до 68%

enter image description here

Масштабируется до 48%

enter image description here

-moz-transform-origin: 400px 900px;

enter image description here

Ответы [ 4 ]

1 голос
/ 19 декабря 2011

Поскольку вы должны использовать определенные свойства вендора, и они будут отображаться по-разному, я предлагаю вам использовать CSSSandpaper. Эта статья говорит о вашей необходимости: http://www.useragentman.com/blog/2010/03/09/cross-browser-css-transforms-even-in-ie/

1 голос
/ 09 июля 2012

Firefox, по-видимому, определяет разрывы страниц для печати ДО применения таблицы стилей печати. В результате преобразование масштаба применяется к каждой напечатанной странице, а не к основному блоку в целом.

1 голос
/ 13 декабря 2011

В целом, я считаю, что поворот с помощью CSS ненадежен, учитывая различные реализации браузера, особенно в вашем случае, поскольку вы используете свойства браузера.

Я бы сделал одно из следующих действий.

  1. Используйте надежную библиотеку JavaScript, такую ​​как jQuery Rotate (http://code.google.com/p/jquery-rotate/) вместо CSS.

  2. Напишите немного код на стороне сервера, который на самом деле генерирует изображение этой оценки карта, которую можно легко масштабировать или поворачивать. PhP может сделать это, например.

  3. Измените свой дизайн на избегайте вертикального текста.

0 голосов
/ 01 августа 2012

В итоге мы использовали Browshot.com для рендеринга каждой карты в виде скриншота в формате JPEG и отправки ее пользователю для загрузки.

...