CSS定位背景图片 background-position

来源:互联网 发布:软件项目付款方式 编辑:程序博客网 时间:2024/04/30 03:18
1、使用目的
就是减少http请求次数,节省时间和带宽。
2、background-position参数分析
background-position:x y;一般来说是水平位移和垂直位移。通过%或者像素来定位图片。
3、如何定位?
一般来说:用图片作为背景的时候,css要这样写,以div容器举例子,也可以是body、td、p等的背景,道理一样。
div{ background:#FFF url(image) no-repeat fixed x y;}
这里的background的属性值依次为:
#FFF 背景色:(颜色值,背景图片没有覆盖的地方,或者没有背景图片时表现的背景色)
image 背景图片:(这里是图片的地址)
no-repeat 是否重复:(图片小于容器的大小时,默认会重复排列图片以填满容器,no-repeat表示不重复,只有这个时候后面的定位坐标才有用。)
fixed 背景是否随容器滚动:(有两个可选值,scroll滚动,fixed不滚动,默认是scroll)
x y 背景图像的定位:(只有在no-repeat下定位才有意义)

背景图像定位中我们要明确的几点:
1、x、y分别代表x轴和y轴。如果只有一个值,那默认的就是x轴方向,这时y轴方向就默认的是上下居中对齐,也就是center。
2、坐标轴的原点就是对应容器的左顶点(这里就是目前多要定位的上一级元素,记为其父节点元素)。
3、这个坐标的y轴箭头朝下,也就是右下方(容器内部)x y的值才都为正。
4、x y值分别表示背景图片的左顶点相对于坐标原点(也就是容器的左顶点)的值。
5、x y的值可以用百分比或者px来表示。
6、x y也可以用“left、right、top、bottom、center”这五个对齐方式来表示,但注意:用“left、right、top、bottom、center”来表示的时候,应用的是对齐规则,而不是坐标规则。x为left是表示图片的左边和容器的左边对齐,为right的时候表示图片的右边和容器的右边对其,y为top的时候表示图片的顶部和容器的顶部对齐,为bottom时表示图片的底部和容器的底部对齐,x y等于center的时候表示居中对齐。
7、x y用百分比或者px表示的时候,其值可以为负数。我们应用坐标规则就很容易理解负数表示的意义,x为负数时候表示图片左顶点在容器左顶点的左侧,y为负数时表示图片的左顶点在容器的左定点的上方。也就是向左和向上超出容器的范围。
8、一般来说,图片在容器里的超出部分会自动隐藏。
图片列子:




4、定位特例说明
1.background-position:50% 50%;[这里的百分比是:(容器(container)的宽度—背景图片的宽度)*left百分比  这里必须要注意下!!!!!]
等同于left:{容器(container)的宽度—背景图片的宽度}*left百分比,超出的部分隐藏。
等同于right:{容器(container)的高度—背景图片的高度}*right百分比,超出的部分隐藏。
例如:background-position:50% 50%;就是background-position:(1000-2000)*50%px, (500-30)*50%px;即background-position:-500px,235px;也就是背景图片从容器(container)的左上角向左移500px,向下移235px;

5、具体的定位实现

图片:


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><title>图片定位</title><style type="text/css">.icon {background:url(../images/icon.png) no-repeat}.demo1{width:19px;height:22px; overflow:hidden; background-position:-102px -351px; display:block; margin:50px auto; }.demo2{width:22px;height:24px; overflow:hidden; background-position:-3px -2px; display:block; margin:50px auto; }.demo3{width:20px;height:26px;  overflow:hidden; background-position:-3px -56px; display:block; margin:50px auto; }.demo4{width:24px;height:24px;  overflow:hidden; background-position:-3px -110px;  display:block; margin:50px auto; }.demo5{width:24px;height:24px; overflow:hidden; background-position:-3px -160px;  display:block; margin:50px auto; }</style></head><body><div class="icon demo1"></div><div class="icon demo2"></div><div class="icon demo3"></div><div class="icon demo4"></div><div class="icon demo5"></div></body></html>


0 0
原创粉丝点击