【问题标题】:Using transform scale causes blurry text only on Windows Chrome仅在 Windows Chrome 上使用变换比例会导致文本模糊
【发布时间】:2017-09-13 07:51:04
【问题描述】:

我遇到了一个关于 CSS 转换 scale 的非常令人沮丧的问题。我有一个文本块,我想在悬停时放大 105%,它会导致文本模糊,但仅限于 Windows 版本的 Chrome。我找到了this question 并尝试了那里提供的各种解决方案,但我仍然无法按预期工作。

body, html {
  font-family:'Open Sans', sans-serif;
}
.zoom {
  transition:transform .5s;
  width:300px;
  margin:50px auto;
}
  .zoom:hover {
    transform: scale(1.05) translateZ(0);
    will-change:transform;
  }
  .zoom h4 {
    font-size:2rem;
    line-height:2.5rem;
    -webkit-font-smoothing:antialiased;
    backface-visibility: hidden;
    -webkit-filter: blur(0);
    filter: blur(0);
    margin:0;
    text-transform:uppercase;
  }
  .zoom p {
    -webkit-font-smoothing:antialiased;
    backface-visibility:hidden;
    -webkit-filter:blur(0);
    filter:blur(0);
    margin:0;
  }
<link href="https://fonts.googleapis.com/css?family=Open+Sans" rel="stylesheet">
<div class="zoom">                  
  <h4>Lorem Ipsum</h4>
  <p>Lorem ipsum dolor sit amet, conse ctetur adipiscing elit…</p>
</div>

正如我之前提到的,这似乎只是 Windows 版 Chrome 的问题。在 OSX、FireFox 甚至 IE 的 Chrome 上,不会出现此问题。我愿意使用与transform 不同的解决方案,前提是动画像我的示例中那样具有过渡。但是,我希望它是一个纯 CSS 的解决方案。

有什么想法吗?

【问题讨论】:

    标签: css transform scale


    【解决方案1】:

    我现在无法自己测试它,因为我手边没有 Windows 计算机,但也许你可以做任何一种解决方案:

    1. backface-visibility: hidden; 添加到.zoom
    2. transform 上的.zoom:hover 属性更改为transform: scale(1.05) translateZ(0);

    应该触发 GPU 材质加速并且可能解决您在 Chrome 上的问题。但是,没有任何承诺。祝你好运!

    【讨论】:

    • 我已经根据我发现的另一个问题尝试了backface-visibility 解决方案,但它并没有解决问题。我更新了我的问题,按照您的建议将translateZ(0); 包含在转换中,但问题仍然存在。感谢您的建议!
    • 另一种想法可能是将will-change: transform; 属性添加到.zoom,但我现在正在竭尽全力,哈哈。
    • 哇... will-change 实际上是为我做的,谢谢@chriskirknielsen!
    • Linux Chrome 上的同样问题;设置will-change 帮助
    猜你喜欢
    • 1970-01-01
    • 2014-04-24
    • 2015-01-19
    • 2017-02-06
    • 2013-12-18
    • 1970-01-01
    • 2021-05-06
    • 2018-11-05
    • 2016-01-18
    相关资源
    最近更新 更多