在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
美国YAHOO在页面制作中所用到的图片整合技术,这样做虽然需要花一定的时间来有规则的合并这些ICON,栏目背景,图片按钮,以方便CSS调用,但是这样做绝对是合算的,而且是有必要的,YSlow也是极力推荐的。 复制代码 代码如下:<divclass="max">最大化</div> 这两个class都使用同一个图片: 复制代码 代码如下:.max { width:16px; height:16px; background-image:url(/images/css-sprites.gif); background-repeat: no-repeat; //我们并不想让它平铺 text-indent:-999em; //隐藏文本的一种方法 } 效果都只能得到上图中的tag_icon.gif中的图为背景,根本无法得到我们需要的背景。因为我们还没有指定background-position,默认为00,可以看下上图,刚好是tag_icon.gif图。好了,我们要找到代表auther.gif的图在大图中的位置找出来。经过测量,按钮位于Y轴的350px处,按钮位于x轴50px处。想一想我们如何才能让它们能够显示出来呢?明显得到代码如下: 复制代码 代码如下:.max { background-position: 50 -350px; } 耶,我们成功了: (注意:为了举例的方便,本例子直接在HTML内置样式,切勿在实践中的非特殊情况使用这种方式)。 优点 我们从前面了解到,CSSSprites为什么突然跑火,跟能够提升网站性能有关。显而易见,这是它的巨大优点之一。普通制作方式下的大量图片,现在合并成一个图片,大大减少了HTTP的连接数。HTTP连接数对网站的加载性能有重要影响。 缺点 至于可维护性,这是一般双刃剑。可能有人喜欢,有人不喜欢,因为每次的图片改动都得往这个图片删除或添加内容,显得稍微繁琐。而且算图片的位置(尤其是这种上千px的图)也是一件颇为不爽的事情。当然,在性能的口号下,这些都是可以克服的。 由于图片的位置需要固定为某个绝对数值,这就失去了诸如center之类的灵活性。 前面我们也提到了,必须限制盒子的大小才能使用CSSSprites,否则可能会出现出现干扰图片的情况。这就是说,在一些需要非单向的平铺背景和需要网页缩放的情况下,CSSSprites并不合适。YUI的解决方式是,加大图片之间的距离,这样可以保持有限度的缩放。 总结 性能压倒一切。CSSSprites是值得推广的一种技术。尤其适宜用于FIR,比如固定大小的icon替换。为保持兼容性,图片中的各个部分保持一定的距离是一种不错的做法。 |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论