我使用CSS3创建了一系列圆角标签。但是,当我旋转这些标签时,文本的质量(在Windows Chrome中)很差,而且在过渡期间还会“变暗/模糊”。有没有其他选择?我是否正确应用了我的CSS?我最好旋转这些标签并保持文本水平吗?
http://jsfiddle.net/jeepstone/9eGt3/
默认情况下,Chrome不启用反锯齿。但是您可以为元素添加以下CSS属性以启用它:
transform: translate3d(0,0,0);
这将强制浏览器使用其硬件加速来计算变换,这将额外添加一些抗锯齿效果。
通过将-webkit-backface-visibity
设置为hidden
也可以实现相同的效果:
-webkit-backface-visibility: hidden;
这是你更新后的jsfiddle(在Chrome中测试通过)
Firefox默认启用抗锯齿功能,因此无需使用transform3d hack,但各浏览器版本的抗锯齿算法质量有所不同。以下是一些比较图像:
分别是Firefox 5,Firefox 9和Chrome。
在这种情况下,最好调整您的字体以使其更适合反锯齿算法。在这种情况下,选择更粗和更大的字体可能会有所帮助。
translate3d
或者支持不佳?)。 - Wesley Murch正如我提到的那样,使用JavaScript可能会使过渡更加平稳,而不会破坏文本或边框。用此替换CSS转换似乎有很大帮助。这是使用jQuery - 当然使用您选择的工具:
// <li> needs position:relative; in the CSS
$('li').hover(
function(){
$(this).stop().animate({'top':'-10px'});
},function(){
$(this).stop().animate({'top':'0'});
}
);
很遗憾,我没有经常使用CSS3的机会,所以这不是我的专业领域 - 但不幸的是,我不得不删除现有的CSS悬停转换才能让它正常工作。您可以使用JavaScript检测技术回退到CSS转换,例如通过在body标记中添加 class =“js-enabled”
(当然与js一起使用)并在CSS选择器中使用它。
除此之外,我认为您没有其他选择,除非您想使用图像(呸),或者再等几年,直到浏览器对此处理得更好些(呃)。不要将此视为圣经,可能会有人为您提供解决方案 - 但我至少想提供一个解决方法。