Как я могу добиться идеального позиционирования пикселей и расстояния между текстовыми элементами в браузерах?
Прямо сейчас мы пытаемся добиться последовательного форматирования textarea
элементы, через Safari/Chrome/Firefox/IE на Mac и Windows. Я полагаю, что это может быть кроличья нора, поскольку любая их комбинация может привести к форматированию немного по-другому - может быть, одна комбинация добавляет немного отступа к div здесь не так, как другие, другая - разбивает многострочный текст по-другому, чем остальные и так далее.
Вместо того, чтобы использовать textarea
(или же div
), можем ли мы достичь идеального позиционирования с помощью HTML5 canvas
? Или используя библиотеку Raphael JavaScript? Или, может быть, какая-то другая библиотека JS?
В основном под идеальным пикселем я подразумеваю то, что любой произвольный текст должен отображаться точно так же (особенно в отношении разрывов строк и отступов) в любом из вышеупомянутых браузеров.
(Я бы предпочел избегать решений на основе Flash на данный момент, если только это не единственное решение...)
5 ответов
Отправьте текст на сервер, попросите сервер отобразить изображение, отобразить изображение. Вуаля.
Я бы сказал, что это почти невозможно.
Я бы также сказал, что нет оснований для идеального разрешения пикселей во всех браузерах, поскольку подавляющее большинство посетителей просматривает ваш сайт только с помощью одного браузера. А те, кто посещает ваш сайт более чем в одном браузере (скажем, на работе и дома), вряд ли заметят элементы, которые имеют несколько пикселей или имеют немного разные цвета границ.
Что нас должно беспокоить, так это то, что контент хорошо выглядит в каждом браузере.
Тем не менее, вот большой список textarea
хитрости: http://css-tricks.com/6841-textarea-tricks/
Одна из основных причин, по которой существует PDF, заключается в том, что браузеры имеют формат, не идентичный пикселям, а формат PDF. Между прочим, даже гарнитуры не гарантируются одинаковыми от одной ОС / браузера к другой.
Даже если вы не позволите браузеру позиционировать что-либо, и вы делаете все свое позиционирование на уровне пикселей, вам все равно не обязательно будут работать те же шрифты. Если вы позволите браузеру позиционировать что-либо, то у вас могут быть варианты.
Было бы одно решение начать ваш CSS с чистого листа? Дать всем известный дефолт?
Например, я запускаю свои CSS-файлы следующим образом, поэтому всегда знаю, чего ожидать:
*{
margin:0;
padding:0;
}
Это то, что вы ищете? Точно так же вы можете изменить "*" на "textarea".
Я не уверен, возможно ли это, однако одна вещь, на которую вы можете обратить внимание, - это использование панели инструментов веб-разработчика для Firefox или надстройки веб-разработчика для Chrome. Существует возможность отключить стили браузера по умолчанию. Проверьте это, а затем стиль все. Границы, тип границы, все поля, отступы, цвета фона и т. Д. Затем снова включите стили браузера по умолчанию и убедитесь, что они выглядят одинаково. Если нет, вымойте, сполосните и повторите.
Кроме того, если шрифты играют определенную роль, вам придется встраивать их в страницу, поскольку в некоторых операционных системах может не быть установлен определенный шрифт.