使用变换比例

时间:2016-04-09 14:22:41

标签: css

我正在尝试在悬停时缩放按钮的大小,但是当这样做时,文本看起来很不稳定。我查看了其他一些帖子并尝试了一些建议,例如使用-webkit-backface-visibility:hidden;transform: translateZ(0);-webkit-transform-style: preserve-3d;,但似乎都没有。

这是小提琴:https://jsfiddle.net/ad7n17so/

(我正在使用Firefox,如果这有所不同)

.button {
  margin-left: 30px;
  background: #FF0000;
  color: #FFFFFF;
  padding: 0.4em;
  width: 100px;
  transition: all 0.3s ease-in-out;
  -moz-transition: all 0.3s ease-in-out;
  -webkit-transition: all 0.3s ease-in-out;
  -o-transition: all 0.3s ease-in-out;
}
.button:hover {
  -ms-transform: scale(1.25); /* IE 9 */
  -webkit-transform: scale(1.25); /* Chrome, Safari, Opera */
  transform: scale(1.25);
}

4 个答案:

答案 0 :(得分:3)

backface-visibility: hidden;让情况更好,但文字渲染仍然很奇怪(在Firefox上很脆,在Chrome上模糊)。这个问题变得更小(主要是在Chrome上)去除填充并使用更大的行高:

.button {
  background: tomato;
  width: 100px;
  -webkit-transition: 0.3s ease-in-out;
  -moz-transition: 0.3s ease-in-out;
  -o-transition: 0.3s ease-in-out;
  transition: 0.3s ease-in-out;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  text-align: center;
  line-height: 1.8em;  
}

.button:hover {
   -webkit-transform: scale(1.25);
   -moz-transform: scale(1.25);
   -o-transform: scale(1.25);
   -ms-transform: scale(1.25);
   transform: scale(1.25);
}
<div class="button">Test Button</div>

答案 1 :(得分:1)

对于有transform: scale(1.05)的摇晃/抖动图像的人来说,只是一个FYI:悬停在Firefox上,这解决了我的问题。

transform: scale(1.05) rotate(0.02deg);

所以这完全是一个虚假的旋转Firefox黑客,可以阻止这种毛刺般的图像缩放效果。

答案 2 :(得分:0)

在调整页面大小以测试响应性时,我注意到了同样的事情。文字变得模糊不清,还有一些图像。据我所知,在字体调整时无法解决这个问题。它不是动画字体大小的每个像素,而是补间动画。因此,动画的每一秒都看起来并不清晰。

答案 3 :(得分:0)

我得到的一个快速解决方案是,如果不将其包装在其他组件中(假设在div内)并在那里应用样式,则与其直接应用变换/转换或要应用的任何样式,不如直接进行转换,如果您添加

,它会呈现更好的效果。

backface-visibility: hidden

到包装器组件,它变得更好!