2015-04-09 6 views
5

У меня есть центрированная форма на моей странице с использованием верхних и левых значений и преобразований css3.CSS3 Трансформация размытых границ

<div class="middle"> 
    <h1>This is blurry, or should be.</h1> 
</div> 

.middle { 
    position: absolute; 
    top: 50%; 
    left: 50%; 
    min-width: 390px; 

    -webkit-transform: translate(-50%, -50%); 
    transform: translate(-50%, -50%); 

    /** backface-visibility: hidden; **/ 
} 

h1 { 
    padding-bottom: 5px; 
    border-bottom: 3px solid blue 
} 

Уведомление противоположная сторона-видимость. Когда установлено на скрытое, все проблемы решаются для меня, используя хром 42. Он не размывается. Для других, однако, используя ту же самую хромовую версию, она становится размытой.

Вот как он выглядит без BV: http://jsfiddle.net/mzws2fnp/

enter image description here

Для вас это может быть размыто, к другим он не может.

Вот как это выглядит с БВ: http://jsfiddle.net/mzws2fnp/2/

enter image description here

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

+0

Какой эффект вы ищете, каково желаемое поведение? – apaul

+0

Чтобы это не было размыто для всех? – davidxd33

+0

Возможный дубликат [Шрифт выглядит размытым после перевода в Chrome] (http://stackoverflow.com/questions/32034574/font-looks-blurry-after-translate-in-chrome) – joppiesaus

ответ

1

Это ошибка в Google Chrome. Я сообщил об этой проблеме в Google:

Rendering bug in css transform: it blurrs borders

<div class="middle"> 
    <input type="text" /> 
</div> 
.middle { 
    position: absolute; 
    top: 50%; 
    left: 50%; 
    -webkit-transform: translateY(-50%) translateX(-50%); 
    transform: translateY(-50%) translateX(-50%); 
} 
input { 
    border: 1px solid black; 
    border-radius: 4px; 
} 
var middle = document.querySelector('.middle'); 
setInterval(function(){ 
    middle.style.paddingTop = middle.style.paddingTop === "0px" ? "1px" : "0px"; 
}, 1000); 

Animated bug demonstration

+0

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

5

Try -50,1%

transform: translateY(-50%) translateX(-50.1%); 

EDIT: я обнаружил, они размыты, когда хром инструменты dev открыты, попробуйте закрыть их и обновить

+0

Только при использовании для меня обоих значений с 0,1%. –

+0

@ViniciusCoelho Я выяснил, что они размыты, когда открываются инструменты chrome dev, попытайтесь закрыть их и обновить. – youbetternot

+0

Странно, для меня это было размыто с помощью инструментов разработчика open or not. Ваше решение изменить его на '-50.1%' сработало для меня. –

Смежные вопросы