transform: translate(-50%, -50%) causing blurry text
You can use display: flex; align-items: center; justify-content: center;
on the parent to center the child element.
div { background: black; color: white; width: 100px; height: 100px; display: flex; justify-content: center; align-items: center;}
<div> <span>centered</span></div>
Webkit-based blurry/distorted text post-animation via translate3d
As @Robert mentioned above, sometimes adding background helps, but not always.
So, for the example Dmitry added that's not the only thing you must do: except from the background, you must tell browser to explicitly use the proper anti-aliasing, so, there is a fixed Dmitry's example: http://jsfiddle.net/PtDVF/1/
You need to add these styles around (or for the) blocks where you need to fix the anti-aliasing:
background: #FFF; /* Or the actual color of your background/applied image */
-webkit-font-smoothing: subpixel-antialiased;
Text is blurred when has transform: translate and it is adjacent to another element with an animation
This is not a bug in your code, this is well known Webkit rendering bug. See for example: https://support.mozilla.org/pl/questions/1075185 (and many more threads on FF support forums).
In both Chrome and FF, in advanced browser settings you can turn off what is called "hardware acceleration". This setting exists to let your hardware "help out" browser when in comes to advanced graphics rendering. Hardware acceleration automatically turns on for elements that you use translate
and some other rules on. This is actually sometimes used by inexperienced "css hackers" to achieve some better/clearer rendering in some cases.
But sometimes it causes more bad than good and this is your case. Once you turn hardware acceleration off in your browser the font is perfectly clear. Sadly there's no real solution code-wise, you can't force turning it off for a given element. We are dependent on Webkit devs fixing the rendering engine here. You can only hack around, like for example change font size to one which for no real reason renders better. Or change positioning in some way which doesn't involve translate
. Best of luck to you.
Related Topics
Height: Calc(100%) Not Working Correctly in CSS
Getting Columns to Wrap in CSS Grid
Select Menu Option Border None
Does a Background-Attachment of Fixed Work in iOS5
How to Use and How Works CSS' Will-Change Property
Best Way to Represent 1/3Rd of 100% in CSS
How to Remove the Underline of Textfield from Material-Ui
How to Remove the Hash from Compass's Generated Sprite Image Filenames
Css: Left, Center, & Right Align Text on Same Line
Hex Colors: Numeric Representation for "Transparent"
CSS Min-Height Not Working on Mozilla Firefox
Parse Errors When Using Calc with Rem and Px
Why Do All Browsers Download All CSS Files - Even for Media Types They Don't Support