This is a funky one. And I'm sure it's webkit related since it only seems to be an issue in Chrome Version 20.0.1132.57 and Safari 5.1.7. I've uploaded a short video to explain the issue because it would be nearly impossible to explain via text.
Video: http://youtu.be/0XttO-Diz2g
Short version: During CSS3 animations, text that is inside a positioned element (absolute or relative) seems to change its antialiasing. It becomes bolder while animations are running.
Note: This is not the same as scaled elements becoming blurry diring an animation. (this issue)
Any thoughts, workarounds, etc?
WebKit now supports explicit animations in CSS. As a counterpart to transitions, animations provide a way to declare repeating animated effects, with keyframes, completely in CSS.
The CSS -webkit-animation property is a shorthand property for setting WebKit multiple animation properties in one place. To create an animation using WebKit, use the -webkit-animation in conjunction with the @-webkit-keyframes keyword/at-rule, which allows you to define visual effects for your animation.
Safari supports two types of CSS animation: transition animations and keyframe animations.
Update: My old answer below works but is only a hacky way to resolve the issue. Instead, read this for the reason to why other elements are affected: http://jsbin.com/efirip/5/quiet. In short: an animated element should be placed in its own stacking context by giving it a z-index
.
Old answer:
It's WebKit related. Honestly I'm not sure why it does it and I assume it's a bug too. You can prevent it by adding any 3D related CSS3 declaration to any element on the page. Example:
body {
-webkit-transform: translateZ(0);
}
Or:
body {
-webkit-backface-visibility: hidden;
}
The presence of these declarations causes WebKit to use hardware acceleration for the animations which prevents the problem you've pointed out.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With