在我的工作中,我们一直在讨论如何最好地部署网站上的按钮。一些美术总监要求使用纯CSS制作按钮,而我更喜欢在Photoshop中制作Spritesheets。我的观点是,字距、文本效果(如投影和抗锯齿)在Photoshop中呈现出来更好看。他们的观点是,你会失去SEO分数,翻译引擎无法更改按钮。
我相信双方都有各自的观点 - 我是否忽略了任何明显的论据?
在我的工作中,我们一直在讨论如何最好地部署网站上的按钮。一些美术总监要求使用纯CSS制作按钮,而我更喜欢在Photoshop中制作Spritesheets。我的观点是,字距、文本效果(如投影和抗锯齿)在Photoshop中呈现出来更好看。他们的观点是,你会失去SEO分数,翻译引擎无法更改按钮。
我相信双方都有各自的观点 - 我是否忽略了任何明显的论据?
使用纯CSS而不是图片的另一个可能的理由是速度。根据您拥有的按钮数量,加载图像可能需要比CSS/纯文本更长的时间。
在软件开发中,使事情更快总是非常重要的。
1- 速度,CSS 加载比图像快得多。
2- 带宽,如果您的网站有 20 个按钮,并且每天有 50000 个独立用户,这确实会产生影响。
3- SEO 提升,搜索引擎更喜欢 CSS 而不是图像,当然还有文本。
现在,使用图像可以做到 CSS 无法做到的事情(至少目前如此)。
这完全取决于您想要实现什么,您想要创建的网站类型以及您关注的受众群体。
看看 Stackoverflow,它几乎没有图片。其余都是纯 CSS。
还可能存在性能问题。简单来说,更多/更大的图像=更多的下载量。如果您有许多图形元素,这将最终减慢网站速度。在您的宽带/光纤连接上,这可能不是一个很大的问题,但在较慢的连接上会成为问题——特别是如果由于某种原因禁用了缓存。
实现spritemap解决方案需要比纯CSS解决方案花费更多的时间。
不要误解我的意思。Spritemaps非常出色,因为它们在性能方面比多个图像好得多,但是CSS下载速度更快,开发速度更快,更灵活,结构更好。
最终,这取决于项目。如果关注性能、开发速度和物超所值,那么就应该选择CSS。然而,如果客户要求网站在他的古老浏览器中看起来完美无缺,那么最好使用spritemap。
当您使用图形来在按钮上显示文本时,您可以使用CSS text-indent: -100000;
与常规文本一起 - 搜索引擎会看到它,但用户不会看到。
<div class="button">Button text</div>
<style>
.button {
text-indent: -100000;
background: url('path/to/image/with/button/text.jpg') no-repeat center center transparent;
}
</style>
精灵很好看,但是50kB的图像和3kB的代码之间有真正的区别,它们可以做同样的事情。如果您的网站每天被数百人访问,您不会看到这种差异,但当访问量可能达到数十亿时......