`
wenjinglian
  • 浏览: 807373 次
  • 性别: Icon_minigender_1
  • 来自: 株洲->深圳
社区版块
存档分类
最新评论

[转]CSS定位背景图片

    博客分类:
  • Web
阅读更多

我们在研究其他的网站的样式的时候经常会发现一种情况,就是在很多background属性里都调用同一张图片,来满足网页各个部分的使用。打开这种图片看一下,会发现这张图片上包含了很多小图片,比如:

html/css教程:背景图片的定位问题详解_中国教程网

又如:

html/css教程:背景图片的定位问题详解_中国教程网

这些小图片就是整图分割后的各个部分,把各个部分放在一张图片上,而不是是分别存储成单独的图片,其目的我们都知道,就是减少http请求次数,节省时间和带宽

那么怎么来实现一张图片在不同的地方只显示其中的一部分呢,这就用到了我们今天要说的背景图片的定位问题。这个问题相信很多人都郁闷过,也经常有朋友问我,所以今天就系统的说一下:

我们知道在用图片作为背景的时候,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轴方向就默认的是上下居中对齐,也就是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为负数时表示图片的左顶点在容器的左定点的上方。也就是向左和向上超出容器的范围。

下面我用几个图示来说明一下几种情况,蓝色块表示图片,虚线框表示容器(可以div,td,或者直接就是body),注意只有背景图片在容器内我们才能看见,我用白色表示可见部分,而且超出容器范围的是看不见的,我用灰色表示。容器的左定点的坐标就是(0,0)。

html/css教程:背景图片的定位问题详解_中国教程网
第一张,背景图片和容的左上对齐,0px 0px 也可以写成left top

html/css教程:背景图片的定位问题详解_中国教程网
第二张,背景图在容器中间,定点坐标为正值

html/css教程:背景图片的定位问题详解_中国教程网
第三张,背景图部分在容器左上,定点坐标为负值

--------------------------------------------------------------------------- 

到此我们可能就明白了如何用background里的定位值来准确定位一个背景图片,返回去我们看一下开始的时候介绍的两个图片,我们就是可以用:背景定位和容器内才可见这两个性质来随意的调用整张图片的某一部分。

但是我们为了调用方便,在排列这些小图片的时候要讲究一点规则,比如:小图之间的距离通常是调用小图的容器的大小,或者距离更大一点,这样就可以避免在容器内显示出我们不愿意显示的图片!

补充一点,如果定位用的是百分比话,算法比较特殊。我举个例子:

 

代码:

background:#FFF url(image) no-repeat fixed 50% -30%;

 

这个时候图片应该在容器的什么位置呢,算法公式如下:

图片左顶点距容器左顶点的坐标位置为 
x:(容器的宽度-图片的宽度)x50% 
y:(容器的高度-图片的高度)x(-30%) 
得到的结果应用坐标法则,差值如果为负数,百分比为正那么运算结果是负值。如果差值为负数,百分比也为负数,那么运算结果就是正数。总而言之就是这里的运算符合运算法则。把运算的结果带入坐标法则就能得到图片的位置。 

比如:容器是width:600px;height:600px;而图片是width:200px;height:200px; 
我们用上面的样式,可以得到图片位置为: 
x:(600px-200px)*50% 
y:(600px-200px)*(-30%) 
如下图:

html/css教程:背景图片的定位问题详解_中国教程网

来源:中国教程网

 

更多参考:

http://www.dwww.cn/news/2009-3/20093111943478871.shtml

http://www.neoease.com/css-background-position/

http://www.ruanyifeng.com/blog/2008/05/css_background_image_positioning.html

 

分享到:
评论

相关推荐

    css背景图片的背景裁切、背景透明度、背景变换等效果运用

    那么这篇文章将详细介绍了这几种背景图片的处理方法。 正如前面所说,仅仅依靠CSS现有的属性,我们无法实现背景裁切、背景透明度、背景变换和复杂背景定位等效果.为了实现这些效果,我们需要借助CSS的其他方法来实现...

    CSS中背景图片定位方法:background-position的用法

    CSS中背景图片定位方法:background-position的用法,附带算法

    CSS-背景图定位

    背景图效果,还附有以使用精灵图的方式解决网站中的小图标问题,这种办法相比较之前的方法,稍微有点类似,主要用到background-position属性外,还需...

    利用CSS定位背景图片 background-position

    那么怎么来实现一张图片在不同的地方只显示其中的一部分呢,这就用到了我们今天要说的背景图片的定位问题。这个问题相信很多人都郁闷过,也经常有朋友问我,所以今天就系统的说一下: 我们知道在用图片作为背景的...

    CSS Sprites 样式生成工具,快速定位背景图片

    CSS Sprites 样式生成工具(bg2css) 3.2.1 (需要AIR环境,可到 Adobe站点 下载安装。)

    纯css动感背景滑动的导航菜单特效代码

    css制作的背景滑动变换的导航菜单特效,主要通过css控制背景图片的定位,在html5的浏览器下效果会展示的很有动感。

    CSS网页设计:百分比进行背景图片定位

    此文为后来的教程做铺垫,转自这儿...大部分人应该习惯于使用描述性词语(left、top、center…)或者数值(20px、1em…)对背景图片定位,百分比可能比较少用,常见的有50%、100%等数值。例如希望背景图片水平居中,距

    利用CSS定位背景图片的常用方法总结

    相信CSS背景图片定位其实对于每一位学习前端的同学来说,都已经非常熟悉了。这篇文章给大家介绍几种方法,都比较实用,大家可以根据需要选择使用,下面就来一起看看吧。

    微信小程序 图片绝对定位(背景图片)

    使用背景图片的话,一般使用一些新的view层,如”jxlogo” src=”../../image/jx.png”/>等,但是小程序与html类似,一个不同的 css或wxss会占据一个位置,然后接下来的css或wxss会自动往下排版,但是很多时候这并...

    CSS3实现炫酷的切片式图片轮播效果

    设置为class="cr-bgimg"的容器将为每个图片划分四个面板,其中,在每个面板里通过background-position属性将背景图片定位在合适的位置上。所以,第一个面板将有四个切片,每个切片都有一个图片作为背景,并且位于...

    css 网页背景图片 怎样用CSS实现大背景网页效果

    在网页设计制作中经常会遇到这样的问题:用图片做背景时,由于显示器分辨率太大或者图片尺寸太小,在页面的两边或者下部了没有背景图片。例如:在小于1024*768分辨率时,是没有问题的。但是假如你的显示器的分辨率...

    CSS图片优化的一些相关建议

    CSS图片优化就是尽量压缩图片的大小,加快... 首先将小图片整合到一张大的图片上,然后根据具体图标在大图上的位置,给背景定位。 CSS Sprites技术要点总结:  1. 小图片整合时,按照从上到下的顺序,而不要一个图

    CSS实现背景图片透明而文字不透明效果的两种方法

    CSS实现背景图片透明,文字不透明效果的两种方法 项目中经常会用到背景图上放一些文字介绍,这里介绍两种技术来实现背景图片透明,文字不透明效果,记录一下,方便日后学习。 1.毛玻璃效果: 背景图 + 伪类 + flite:...

    CSS的background属性及CSS3的背景图片设置总结

    主要介绍了CSS的background属性及CSS3的背景图片设置总结,背景图片的显示区域和定位是非常值得注意的地方,需要的朋友可以参考下

    css 中的定位详解

    固定定位可以创造性地用于背景图像或者导航区域。即使你滚动页面以阅读更多内容时,导致区域仍然保持在相同位置。不幸的是,唯一支持固定定位的 Internet Explorer 版本是最后一个版本,即 Internet Explorer7 (该...

    详解使用CSS固定页面背景图片位置的方法

    固定背景图片的通常方法就是把background-attachment设成fix,进一步的话自然则是用background-position,下面来详解使用CSS固定页面背景图片及位置的方法:

    div+css有实例,易学易懂

    5.6.2 背景颜色和背景图片的层叠 5.6.3 背景属性在内联元素中的使用 5.6.4 背景属性的缩写 5.6.5 页面文本的样式 5.6.6 链接的样式 5.7 布局的基础 5.7.1 布局页面的步骤 5.7.2 使用ID 还是Class 5.7.3 控制内容显示...

Global site tag (gtag.js) - Google Analytics