我一直在使用纯 css 处理翻转图像,我知道有两种解决方案可以达到预期的效果。我想知道这些方法是否有任何我不知道的好处,以及是否有首选方法或者只是一种偏好(我只是想在完成一个巨大的项目之前确保没有任何意外)
第一种方法
我遇到的第一种方法是将多个图像保存为一个图像。然后将图像设置为分隔线的背景(小于整个图像)然后:hover
将背景位置设置为负值并出现其他图像
我想到的一些缺点和优点是:
优点
您不需要手动预加载图像(通过将代码放在 css 文件的末尾)
组织图像文件可能更容易,因为它们可能会更少
缺点
- 很难知道图像到底移动了多少,特别是如果您有单独的团队设计图形
第二种方法
我遇到的第二种方法是设置分隔线的图像背景,然后更改背景网址:hover
我能想到的一些缺点和优点:
优点
开发时间可能更少
可以更轻松地交换翻转图像并且不需要指定分隔线的大小
缺点
需要在css文件末尾预加载图片
如果你有很多文件,你的图像文件夹可能会更乱
我有什么优点或缺点吗?一种方法通常优于另一种方法,为什么?或者是个人选择,使用任何一个都没有问题?
更新: 这是使用纯 css 的第二种方法的简单预加载的链接。我认为有一种更简单的方法(只是放置链接),但我找不到它。这仍然是非常基本的。
更新(2): 我了解到精灵有额外的
通过减少 http 请求的数量使网站更快的好处。
并且翻转的好处是尽可能快而没有闪烁
还有一个错误是使网站的可访问性降低,并且会限制 HTML 中 title 和 alt 属性的潜在好处。(如果不正确地用于所有图像,而不仅仅是装饰和按钮)