请问背景图片是如何用CSS定位的?我指的不是定位图片位置,而是定位一张背景图片中很多图片中的一个图片?

如题所述

美国YAHOO在页面制作中所用到的图片整合技术,这样做虽然需要花一定的时间来有规则的合并这些ICON,栏目背景,图片按钮,以方便CSS调用,但是这样做绝对是合算的,而且是有必要的,YSlow也是极力推荐的。

实现方法:

首先将小图片整合到一张大的图片上,然后根据具体图标在大图上的位置,给背景定位。background-position:-8px -95px;

浅谈CSS Sprites技术以及图片优化 〔背景图整合〕

关于CSS Sprites技术的优化我们能做到多少,能减多少的请求数量。这并且不是单方面能做到的,一切取决于XHTML、CSS、CSS Sprites图片之间的配合。现时为止没有绝对优化的做法,这也是我在项目中经常衡量CSS Sprites图片与XHTML关系,如:《一张背景实现自适应九宫格》,以下总结了图片切割术与图象优化的一些方法。

图片优化

一、对于非动画的GIF更建议使用PNG8因为它同样能做到一样的效果,而且能为你节省10%-30%的文件体积。

二、Photoshop相比起Fireworks,导出同等质量的PNG图片,体积会稍大。而Fireworks虽然做了相应压缩优化,但没有达到最优秀的压缩。

三、我所知的设计软件,对于PNG图片的处理都没做到最优秀的压缩,图片体积还有一定的压缩空间。可以尝试使用下面介绍的”图像优化工具” 做无失真的压缩优化。

四、图片体积及尺寸方面,建议体积保持在100K以内(较为符合国情最佳请求SIZE),size为800px(最佳尺寸)。(从某权威人事中得知,具体无从考证)

CSS Sprites图片切割术

一、CSS Sprites图片顺序合图片由上至下、左至右添加。而background-position一般采用数字组合形式定位,这样能减少维护带来的不必要麻烦。

二、不建议CSS Sprites图片中保持一定的间距,因为文件size增大而增加文件体积。

三、CSS Sprites图片中把颜色较近或相同的组合在一起可以降低颜色数,因为少色数的图片文件体积会相对的小。

四、size相同的CSS Sprites图片中留有较大空隙,某程度上多数情况会增大了体积,所以CSS Sprites的图片不要有空隙。

五、在size相同的CSS Sprites图片中,垂直排列的图片会比水平排列的文件体积要大。

六、在CSS Sprites图片中,水平排列的图片会比垂直排列的文件体积要大。

七、图片对等合并:应用CSS Sprites图片时,适当地把对等相同的图像合并,以节省空间及减少体积。

八、区分开不需要合并的图像:如当前用户确定只显示一种状态或一个级别时,不必要把其他的级别或状态的图片合并。

九、黄金切割位:在CSS Sprites图片的最右或左边为最灵活动位置最适宜摆放文本前的icon,因此不会受到其它CSS Sprites图片干预,也不需要预留一定的行宽。

相关的图像优化工具,网上流传的优化工具繁多常见的如:

ImageMagick、PNGGauntlet、pngcrush、pngrewrite、Optipng、PNGOut等。

众所周知,减少网站加载时间的最有效的方式之一就是减少网站的HTTP请求数。实现这一目标的一个有效的方法就是通过CSS Sprites——将多个图片整合到一个图片中,然后再用CSS来定位。

CSS Sprites 的目的就是通过整合图片,减少对服务器的请求数量,从而加快页面加载速度
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2016-08-01
background:url(xxxx.jpg) -100px -150px no-repeat;

其中-100px是指图片沿Y轴向上移动100个像素;
-150px是指图片沿X轴向左移动150个像素。
你可以自己测试一下,当然,你如果想固定一整张背景图里的 15x15的 图片的话,这个设置背景图的容器也要设为 15x15的大小,不然有可能会把别的部分也显示出来的。本回答被提问者采纳
第2个回答  2011-09-02
利用CSS的background-position属性,从左上角开始为(0,0)往右为( -n px, 0)往下为(0,-n px)
例:
<div style="width:63px; height:57px; background:url(201108291142548310.jpg) ; background-position:-9px -250px"></div>
第3个回答  2011-09-02
http://www.aa25.cn/div_css/896.shtml
这里有视频教程,详解
相似回答