这是我过去遇到麻烦的一件事,在我心中,所以我做了一个简单的例子,精灵图片来测试,并希望得到一些答案.
如果您在这里查看我的代码和演示
http://dabblet.com/gist/2263037
你会看到我有一个使用背景图像的简单div
在DIV下面我有相同的div,但是这次我尝试使用CSS Sprite图像
所以我的问题是,可以使用这个精灵图像复制第一个DIV的外观,还是精灵图像上需要的更改?
没有雪碧图像
/* Notice wrapper with Single Image */ .notice-wrap { margin-top: 10px; padding: 0 .7em; -moz-border-radius: 4px; -webkit-border-radius: 4px; border-radius: 4px; border: 1px solid #CD0A0A; background: #B81900 url(http://www.getklok.com/css/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png) 50% 50% repeat; }
与雪碧图像
/* Notice wrapper with SPRITE Image */ .notice-wrap-sprite { margin-top: 10px; padding: 0 .7em; -moz-border-radius: 4px; -webkit-border-radius: 4px; border-radius: 4px; border: 1px solid #CD0A0A; background: #fff url(http://f.cl.ly/items/2P1u2S1a132R0B3d2s08/test-sprite.png) repeat; background-position: 0 -52px; }
HTML
<div class="notice-wrap"> <p><strong>NOTICE:</strong> This is just a test notice,no reason to be alarmed</p> </div> <BR><BR><BR> <div class="notice-wrap-sprite"> <p><strong>NOTICE:</strong> This is just a test notice,no reason to be alarmed</p> </div>
解决方法
设置精灵
你可以使用图像精灵来做你想要的.它们只能沿着一个轴重复,即repeat-x,但在你的情况下,这就是你所需要的.此外,您的精灵中的图像必须运行整个宽度,这是浏览器知道如何平铺它.
诀窍是您的重复背景必须延伸到您的精灵图像的全部宽度上.这是至关重要的.这是你的形象,修改为符合这个标准:
设置CSS
现在我们只是像往常一样参考,它可以正常工作:
/* Notice wrapper with SPRITE Image */ .notice-wrap-sprite { margin-top: 10px; padding: 0 .7em; -moz-border-radius: 4px; -webkit-border-radius: 4px; border-radius: 4px; border: 1px solid #CD0A0A; background: #fff url(http://f.cl.ly/items/2P1u2S1a132R0B3d2s08/test-sprite3.png) repeat-x; background-position: 0 -52px; }