首页 > 代码库 > background image position问题
background image position问题
在CSS中,背景图片的定位方法有3种:
1)关键字:background-position: top left;
2)像素:background-position: 0px 0px;
3)百分比:background-position: 0% 0%; 注意,第一个表示水平,不是top,第二个是left。
上面这三句语句,都将图片定位在背景的左上角,表面上看效果是一样的,实际上第三种定位机制与前两种完全不同。
前两种定位,都是将背景图片左上角的原点,放置在规定的位置。请看下面这张图,规定的位置是"20px 10px"和"60px 50px",都是图片的原点在那个位置上,图中用X表示。
但是第三种定位,也就是百分比定位,不是这样。它的放置规则是,图片本身(x%,y%)的那个点,与背景区域的(x%,y%)的那个点重合。比如,如果放置位置是"20% 10%",实际结果如下图,可以看到这个点是在图片本身的"20% 10%"的位置上。这里看不明白可以拉到下面50%,50%哪里。
、background-position:100% 100%;
图片处于容器元素的右下角,与 background-position:right bottom;效果等同。
示例:
.container{
width:300px;
height:150px;
background:transparent url(bg.jpg) no-repeat scroll 100% 100%;
border:5px solid green;
}
效果如图7:
下面是一个有趣的例子。
背景图片是四个边长为100px的方块叠在一起:
请问怎样才能将其横过来:
答案是,在网页中先设置四个div区域:
<div class="box1">
</div><div class="box2"">
</div><div class="box3">
</div><div class="box4">
</div>
然后,这样编写CSS:
.box1, .box2, .box3, .box4 {
float:left;
width:100px;
height:100px;
position:relative;
background: #F3F2E2 url(1234.png) no-repeat;
}.box1 {
background-position:0% 0%;
}.box2 {
background-position:0% 33.33333%;
}.box3 {
background-position:0% 66.66666%;
}.box4 {
background-position:0% 100%;
}
点击这里查看最后的效果。可以看到第二和第三个方块的设置,并不是一般想象中的"0% 25%"和"0% 75%"。
不过说实话,这个例子用像素设置法更容易一些。使用百分比设置的主要优势在于,当页面缩放的时候,背景图片也会跟着一起缩放,具体请参考下面"延伸阅读"中的第二篇文章。
[延伸阅读]
1. CSS: Using Percentages in Background-Image
2. Creating Liquid Faux Columns
(完)http://www.ruanyifeng.com/blog/2008/05/css_background_image_positioning.html
没明白看:
http://blog.csdn.net/jeamking/article/details/5617088
、background-position:50% 50%;
图片水平和垂直居中。与 background-position:center center;效果等同。
等同于x:{容器(container)的宽度—背景图片的宽度}*x百分比,超出的部分隐藏。
等同于y:{容器(container)的高度—背景图片的高度}*y百分比,超出的部分隐藏。
例如: .container{
width:300px;
height:150px;
background:transparent url(bg.jpg) no-repeat scroll 50% 50%;
border:5px solid green;
}
其x=(300-210)*50%=45px;
y=(150-120)*50%=15px;
效果如图5:
、由于超出部分别往两端延伸,所以我们可以先制作一张宽度足够宽图片设置水平值为50%,这样可以用来适应不同的浏览器,使得图片水平充满浏览器窗口并且居中。替代margin:50 auto的功能。
根据50%,50%等同于center,我们可以算出公式。
image高度/(container高度-image高度)=50%;就是居中。
我们就不难理解上面33%和66%了。100/(400-100)=33%.