[google-chrome] CSS transform 사용 후 흐릿한 텍스트 : scale (); Chrome에서

을 수행 한 후 흐릿한 텍스트를 유발하는 최근 Google 크롬 업데이트가있는 것 같습니다 transform: scale(). 특히 나는 이것을하고있다 :

@-webkit-keyframes bounceIn {
  0% {
    opacity: 0;
    -webkit-transform: scale(.3);
  }

  50% {
    opacity: 1;
    -webkit-transform: scale(1.05);
  }

  70% {
    -webkit-transform: scale(.9);
  }

  100% {
    -webkit-transform: scale(1);
  }
}

Chrome에서 http://rourkery.com 을 방문 하면 기본 텍스트 영역에 문제가 표시됩니다. 이 작업을 수행하는 데 사용되지 않았으며 Safari와 같은 다른 웹킷 브라우저에 영향을 미치지 않는 것 같습니다. 3D 변환과 유사한 문제를 겪고있는 사람들에 대한 다른 게시물이 있지만 이와 같은 2D 변환에 대해서는 아무것도 찾을 수 없습니다.

모든 아이디어를 주시면 감사하겠습니다!



답변

나는이 문제를 여러 번 겪었고 그것을 고치는 2 가지 방법이있는 것 같다 (아래 참조). 이러한 속성 중 하나를 사용하여 렌더링을 수정하거나 동시에 둘 다 사용할 수 있습니다.

뒷면 가시성 숨김은 애니메이션을 오브젝트의 앞쪽으로 단순화하는 반면 기본 상태는 앞면과 뒷면이므로 문제를 해결합니다.

backface-visibility: hidden;

TranslateZ는 애니메이션에 하드웨어 가속을 추가하는 해킹으로도 작동합니다.

transform: translateZ(0);

이 두 가지 속성 모두 현재 겪고있는 문제를 해결하지만 일부 사람들은

-webkit-font-smoothing: subpixel-antialiased;

애니메이션 된 개체에. 웹 글꼴의 렌더링을 변경할 수 있지만 그 방법도 자유롭게 실험 해 볼 수 있습니다.


답변

흐릿함을 개선하려면 esp. Chrome에서 다음을 시도하십시오.

transform: perspective(1px) translateZ(0);
backface-visibility: hidden;

업데이트 : Perspective 는 사용자와 z- 평면 사이의 거리를 추가하여 기술적으로 개체의 크기를 조정하여 흐릿함이 ‘영구적’인 것처럼 보입니다. perspective(1px)위 의 내용은 우리가 해결하려는 흐릿함과 일치하기 때문에 오리 테이프 와 같습니다 . 아래 CSS를 사용하면 더 나은 행운을 누릴 수 있습니다.

transform: translateZ(0);
backface-visibility: hidden;


답변

스케일 비율을 조정하는 것이 약간 도움이된다는 것을 알았습니다.

scale(1.048)over를 사용하면 (1.05)전체 픽셀 글꼴 크기에 더 가까운 근사치를 생성하여 하위 픽셀 흐림을 줄였습니다.

또한 translateZ(0)변환 애니메이션에서 Chrome의 마지막 반올림 단계를 조정하는 것처럼 보이는 것을 사용했습니다 . 이것은 속도를 높이고 시각적 소음을 줄이기 때문에 내 onhover 사용에 대한 장점입니다. 그러나 onclick 기능의 경우 변형 된 글꼴이 바삭하지 않기 때문에 사용하지 않습니다.


답변

운없이 다른 모든 것을 시도한 후 마침내이 문제를 해결 한 것은 재산 을 제거 하는 것이 었습니다 will-change: transform;. 어떤 이유로 크롬에서는 끔찍하게 흐릿하게 보이는 스케일링이 발생했지만 Firefox에서는 그렇지 않았습니다.


답변

대신에

transform: scale(1.5);

사용

zoom : 150%;

Chrome의 텍스트 흐림 문제를 수정합니다.


답변

이것은 Chrome (버전 56.0.2924.87)의 버그 일 것입니다. 그러나 아래는 콘솔 ( ‘.0’)에서 CSS 속성을 변경할 때 저에게 흐릿함을 수정합니다. 보고하겠습니다.

filter: blur(.0px)


답변

Sunderls는 나를 대답으로 안내합니다. 제외하고 filter: scale는 존재하지 않지만 존재합니다 filter: blur.

흐리게 보이는 요소에 다음 선언을 적용합니다 (제 경우에는 변환 된 요소 내부에 있음).

backface-visibility: hidden;
-webkit-filter: blur(0);

그것은 거의 완벽했다. ” 거의 “전환을 사용하고 있고 전환 중에는 요소가 완벽 해 보이지 않지만 전환이 완료되면 제대로 표시됩니다.