【发布时间】:2012-02-11 04:08:49
【问题描述】:
所以,我希望使用精灵表在 CSS 中制作背景图像。为了清楚起见,不,我不会选择this effect。我有一个完整的精灵表,我想在表上取一个 16 像素 x 16 像素的正方形并将其设置为将要重复的背景。
在未来的某个时候,我希望能够通过spacial dimensions using media fragments in the URL parameter 做到这一点,但由于这个isn't supported yet 我正在寻找替代方案。有没有办法通过现代 CSS 技术或 hack 获得同样的效果?
一些注意事项:
- 我不需要支持旧浏览器,只需最新的 FF 或 Chrome 即可。
- 我更喜欢纯 CSS 解决方案。如果需要,我可以并且将使用 data:URI 创建一个 JS/Canvas 解决方案,但考虑到我可能需要多少元素,如果我可以通过纯 CSS 获得更好的结果,我宁愿不必这样做。李>
- 需要在
x和y两个方向重复 - 寻找利用内存/缓存中的单个图像的解决方案,这样我就不必为要插入的每个精灵加载精灵表
【问题讨论】:
-
您提到了数据 URI,但仅限于 Javascript - 您可以使用数据 URI 并拥有“纯 CSS”解决方案。 jsfiddle.net/47CMr - 这应该满足你的大部分目标。具体来说,无需下载其他文件,您可以将其缓存,这样他们只需下载一次文件。
-
@SpoonNZ:我的眼睛!护目镜,它们什么都不做!但说真的,数据 URI 在 CSS 中不会特别有用,因为无论如何您都必须手动生成它们。
-
@SpoonNZ 这不是我想要的。我有一个 PNG 格式的精灵表。这会增加任何 CSS 样式的文件大小(除非我为我拥有的 每个 精灵创建一个类,包括那些可以跨越多个精灵位置的精灵),这意味着我需要转换每个精灵到数据 url。我的目标是能够在给定 x 和 y 以及宽度和高度的情况下动态获取图像,但该方法并不适合。
-
是的,我意识到这很糟糕!不过,它确实适用于大多数浏览器,如果您不经常更改精灵,它可能是“一劳永逸”的事情。我可能会将图像放在单独的样式表中并使用类(或 CSS 预处理器使其可读)。不过仍然不是一个好的解决方案。
标签: css css-sprites sprite-sheet