+ -
当前位置:首页 → 问答吧 → CSS Sprites, Repeat-x问题

CSS Sprites, Repeat-x问题

时间:2009-02-26

来源:互联网

在整合了的大图中,有人遇到过repeat-x的问题吗?好像做不到的?具体能怎么解决吗?

作者: rambus2   发布时间: 2009-02-26

CSS Sprites好象是不能用背景平铺的方式,想想原理就知道了

作者: skyoxu   发布时间: 2009-02-26

事事无绝对啊!
你把需要repeat-x的图片设置成整个大图的一行,控制好高度,就OK啦

作者: fantasy615   发布时间: 2009-02-26

css sprites的灵魂是background-position,而不是background-repeat;,除非你的背景图片小于容器的高宽。
如果repeat-x的次数能够知道最大值,就可以来模拟实现(有局限性):
复制内容到剪贴板
代码:
<style type="text/css">
/*假设每颗星星宽高都为20px*/
span.star{display:inline-block;width:20px;height:20px;background:url(array.gif) -200px top repeat-x;}
/*这样显示出来了5颗星星*/
span.star.s5{width:100px;}
</style>
....
<span class="star s5"></span>
背景图(注意那5颗星星),这种方法有局限性,不能无限次平铺:
start.png (3.88 KB)
2009-2-26 09:48

作者: yoom   发布时间: 2009-02-26

我要做的刚好就是图片这样的效果,分了左中右3块,想把中间那块通过背景重复来做,用Sprites技术就做不到了。

附件

未标题-1.jpg (55.61 KB)

2009-2-26 14:03

作者: rambus2   发布时间: 2009-02-26

你在合并图片的时候,让中间那一块独占一行就行了。有什么不可能的呢。

作者: birdstudio   发布时间: 2009-02-26

看来你是想做宽度自适应的效果。

楼上说的对,如果导航栏宽度是固定的,用整张背景图好些。

作者: yoom   发布时间: 2009-02-26

如果要自适应宽度的话,也是可以平铺的。在合并图片的时候,让中间那一块(需要平铺的部分)独占一行就行了。

作者: birdstudio   发布时间: 2009-02-26

哦,大概明白你的意思了,是滑动门那种思想吧:

作者: yoom   发布时间: 2009-02-26

这个问题主要看你如何组合你的这张背景图片了
你可以这样
图片的组合描述如下:
上面一部分是你的左圆角和右圆角的组合
下面放需要平铺的中间的一段,但是注意,平铺的这一段要和这个图片的宽度一样

或者你需要水平或者垂直平铺的图片分别分成两个图片文件,yahoo.com.cn这样作的

[ 本帖最后由 yll1125 于 2009-2-26 14:27 编辑 ]

作者: yll1125   发布时间: 2009-02-26

示意图

附件

a.jpg (1.04 KB)

2009-2-26 14:27

作者: yll1125   发布时间: 2009-02-26

既然是repeat-x,那只要x轴上没有其他东西就可以repeat了。不是你这个理解

作者: zhutianyi   发布时间: 2009-02-26

根据你这个效果图,如果要实现平铺的话,需要3个标签配合才行。
第一个容器负责左圆角,第二个负责中部(平铺的部分),第三个右圆角。

太麻烦了,css sprites的优势是对待小图标,这种大图就不要切的太“碎”了。

作者: yoom   发布时间: 2009-02-26

强人这么多。。。不过我的图片是这样的,上面介绍的行不通,但是大概知道怎么做了,谢谢各位。

附件

bg.gif (10.79 KB)

2009-2-26 14:45

作者: rambus2   发布时间: 2009-02-26

引用:
原帖由 zhutianyi 于 2009-2-26 14:28 发表
既然是repeat-x,那只要x轴上没有其他东西就可以repeat了。不是你这个理解
也不是没有其他东西就可以,就算留白也会出现问题

作者: skyoxu   发布时间: 2009-02-26

因为用的是透明的gif,如果上面随便一项用来Repeat-x的话就变成白色背景重复了。

作者: rambus2   发布时间: 2009-02-26

这个实现是比较简单的
让我们看看淘宝的
一整排来repeat-x不就可以了吗?

作者: lawzhangqi   发布时间: 2009-04-08

要么就把需要repeat的分出来,要么就在做图片的时候做成一行

作者: moondy   发布时间: 2009-04-09

repeat-x是可以这样做,如果我要repeat-y那是不太现实了。

作者: qizhifei   发布时间: 2009-12-11

新手,来学习学习!

作者: hautbbs   发布时间: 2011-10-08

热门下载

更多