2013-04-14 2 views
9

Я использую css transform:scale, чтобы масштабировать некоторые элементы вверх, а теперь границы, которые были изначально 1px solid black, получили некоторый подпиксельный рендеринг - «сглаживание» - так как они теперь 1.4px или что-то в этом роде. Точно, как это выглядит, зависит от браузера, но его размытость во всех современных браузерах.отключить субпиксельное сглаживание на границах html/css

Можно ли отключить субпиксельную визуализацию для определенных элементов?

+0

браузера конкретных решений - например, CSS с префиксами - радушны слишком – commonpike

+0

... если вы используете правило CSS для преобразования/масштабировать элементы, почему вы не просто отрегулировать границы в этом же правиле ??? – Cholesterol

+0

Я должен был упомянуть, что масштаб был динамичным - с помощью javascript. Я не пытался настроить ширину границы с тем же javascript, например border-width: 0.71px или что-то еще, возможно, было решением. – commonpike

ответ

0

Вы можете управлять сглаживанием текста на WebKit с помощью этого css: -webkit-font-smoothing: antialiased; И иногда форсирование 3d-ускорения с чем-то вроде: -webkit-transform: translate3d (0, 0, 0); также помогает сглаживать (по крайней мере, при использовании поворота в моем опыте).

+0

Спасибо и исправлю, но я просил об эффектах наложения на нетекстовые элементы - в частности, границы. этот арант, затронутый '-webkit-font-smoothing' и трюк translateZ, не имел никакого эффекта ... – commonpike

2

Это размыто, потому что стандартные дисплеи с разрешением 72 точек на дюйм не могут отображать размеры дробных пикселей, как я уверен, вы понимаете. Кроме того, существует nothing within the spec, чтобы повлиять на рендеринг или наложение границ.

Ширина пикселя 2 может дать вам лучшие результаты, но практически все будет размыто.

Некоторые устройства и дисплеи сетчатки поддерживают sub-pixel border widths, но нет согласованных решений, когда дело доходит до кросс-браузерной поддержки.

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

transform: scale(1.25); 
transform-origin: left top; 
Смежные вопросы