2015-07-17 11 views
2

Допустим, вы используете этот код для вертикального центрирования элементаБудет ли преобразование в css причиной размытия из-за оценки в половине пикселей?

.element { 
    position: relative; 
    top: 50%; 
    transform: translateY(-50%); 
} 

(этот вопрос не о выравнивании вещи, хотя, поэтому, пожалуйста, никаких предложений о выравнивании)

Могли бы это вызвать ваш элемент, чтобы стать размыто ?

This article упоминает, что использование переводов может позиционировать элементы с полупиксельными значениями, что вызывает размытие в некоторых браузерах. У браузеров все еще есть это, или они были исправлены, чтобы не размыть? Если вы используете процент в качестве аргумента для перевода, может ли процент оценивать нецелое значение пикселя (что позволяет возможность размытия) или округляется? EX: если вы используете 66%, может ли это привести к дробному значению пикселя? This article утверждает, что вы можете установить transform-style: preserve-3d; на родителя элемента, чтобы избежать размытия, но кто-то в комментариях утверждал, что он не работает для него .. действительно ли это работает?

+0

Браузеры являются лишь частью уравнения здесь. При выполнении преобразований устройства обычно аппаратно ускоряют (кэшируют) элемент. По моему опыту, это была самая большая причина этой размытости. Я даже столкнулся с определенным устройством, которое на самом деле снизит выборку при ускорении аппаратного обеспечения. – ericjbasti

ответ

0

Одним из решений (не лучшим) является установка размытия: 0. Но есть некоторые кромки.

+0

В Chrome это: -webkit-filter: blur (0px); – Richard

0

Да, браузеры все еще делают это. Наличие этой проблемы в Chrome версии 61.0.3163.100

И transform-style: preserve-3d; также не разрешает эту проблему. Я слышал, что использование flexbox не вызывает этой проблемы!