@NedoKoder

Какие единицы измерения лучше использовать при создании визуального редактора на HTML?

Добрый день. Есть задача, создать визуальный редактор, при окончании работы с которым нужно генерировать JPG картинку или PDF файл. При создании "документа", нужно сделать так, чтобы размеры можно было задавать в см, в мм и пикселях. Ну как в Adobe Photoshop. Также нужно значение DPI как то учитывать потом.

Редактор планирую делать на jQueryUI с помощью перетаскивания элементов, для определения позиции элемента используется jQuery position()... он выдает позицию в пикселях. По мере работы заметил несколько проблем:

1) Одна проблема в том что если задать размеры документа в сантиметрах, например размер А4 листа, 21х29см, то на разных мониторах, количество пикселей входящих в эти 21см всегда разнится. Проверил на трех разных мониторах с диагоналями 19, 24 и 27. Хоть сколько то но отличие есть.
2) Еще сам по себе этот метод position() имеет какие то проблемы с расчетами положения и размеров объекта. Например если задать DIV шириной 790 пикселей, а внутри перетаскивать объект длиной в 60 px, и перетащить объект до края DIV, то этот метод вернет ширину объекта 60пкс, а стартовую позицию по ширине только 726 например. Получается 726 + 60 = 786, что на несколько пикселей отличается от полного размера DIVа в 790px.
Учитывая что рабочий лист потом должен иметь возможность масштабироваться и эту проблему с пикселями на разных мониторах, получается что мне подойдут какие то относительные единицы измерения.

Вот тут набросал пример этого редактора.

В связи с вышеописанным возник вопрос. Какие единицы измерения или какие приемы работы вы бы посоветовали использовать, чтобы независимо от масштаба рабочего листа и параметров монитора, документ всегда можно было бы редактировать на однообразно понимаемым любым устройством способом. Если это имеет значение, то содержимое документа (рабочего листа) это всегда HTML код и CSS стили. Т.к. редактором будут пользоваться люди которые ни черта не понимают ни в HTML, ни в CSS, нужно заранее избавить их от этих проблем.

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

Но хотелось бы получить совета от людей более прошаренных в теме
  • Вопрос задан
  • 160 просмотров
Пригласить эксперта
Ответы на вопрос 2
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Многое зависит от того, как должна работать "растяжка" при резиновой вёрстке: сайзим шрифты или нет?

Вообще: calc(), vmin, vmax, vw, vh (и процентов для вложенных блоков) должно хватить для "удержания" всех размеров без видоизменения внешнего вида на разных мониторах и разрешениях.
Ответ написан
profesor08
@profesor08 Куратор тега CSS
У меня в голове пока только одно решение

Годится. Именно так и работает масштабирование. Но лучше сделать несколько иначе, не задавая точного размера, а пусть все растягивается на всю ширину с пропорциональной высотой. Потом, когда надо будет все рендерить, масштабируешь под нужный размер. Таким образом можно будет сделать комфортную ширину рабочей области и спокойно масштабировать, и не забыть масштабировать сами элементы соответственно. В результате можно будет одинаково играться как с компа, так и с планшета и даже телефона.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы