我们在研究其他的网站的样式的时候经常会发现一种情况,就是在很多background属性里都调用同一张图片,来满足网页各个部分的使用。打开这种图片看一下,会发现这张图片上包含了很多小图片,比如:
又如:
这些小图片就是整图分割后的各个部分,把各个部分放在一张图片上,而不是是分别存储成单独的图片,其目的我们都知道,就是减少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)。
第一张,背景图片和容的左上对齐,0px 0px 也可以写成left top
第二张,背景图在容器中间,定点坐标为正值
第三张,背景图部分在容器左上,定点坐标为负值
---------------------------------------------------------------------------
到此我们可能就明白了如何用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%)
如下图:
来源:中国教程网
更多参考:
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
分享到:
相关推荐
可以通过百分比或像素值进一步精确定位背景图片的位置,例如`background-position: 50% 25%;`。 #### 六、综合样式:`background` **语法**: ```css {background: 颜色值 | 图片URL | 重复方式 | 固定或滚动 | ...
当涉及到多个背景图片时,CSS3引入了背景图层的概念,可以使用逗号分隔的值设置多个背景,并通过`background-size`控制每层图片的大小,`background-origin`指定背景图像的原点,`background-clip`定义背景的绘制...
那么这篇文章将详细介绍了这几种背景图片的处理方法。 正如前面所说,仅仅依靠CSS现有的属性,我们无法实现背景裁切、背景透明度、背景变换和复杂背景定位等效果.为了实现这些效果,我们需要借助CSS的其他方法来实现...
综上所述,CSS3的`background-position`属性及其相关属性提供了强大的背景图片定位功能,让开发者能够创造出富有创意和个性化的网页设计。在实际工作中,熟练掌握这些知识点将极大地提高网页设计和开发的效率和质量...
2. **背景图片**:在本实例中,"风景.jpg"可能被用作背景图片。我们可以使用`background-image`属性添加背景图片,例如`body { background-image: url('风景.jpg'); }`。若想让图片平铺,可使用`background-repeat`...
1. **CSS3选择器**:为了选择和控制全屏背景图片,我们需要使用CSS3的选择器,如`body`或`#fullscreen-bg`等ID选择器,以便精确地定位到需要应用样式的元素。 2. **背景图片属性**:使用`background-image`属性设置...
对于独立背景浮动,我们可以使用CSS定位(如`position: absolute`或`fixed`)或者`z-index`来实现。例如,如果希望背景图片相对于一个固定位置浮动,可以这样做: ```css .background { position: fixed; /* 或 ...
在CSS(层叠样式表)中,背景图片的定位是一个重要的设计元素,它允许开发者将图像设置为元素的背景,并精确控制其显示位置。`background-position`属性是实现这一目标的关键,它允许我们通过坐标系统来调整背景图像...
在网页设计中,CSS Sprite(CSS精灵)是一种常见的优化网页加载速度的方法,通过将多个小图像合并成一个大图,然后利用CSS的背景定位属性来显示需要的部分,以此减少HTTP请求次数,加快页面加载速度。CST CSS图片...
background-image: url("你的背景图片路径.jpg"); /* 背景图片路径 */ background-size: cover; /* 自动调整背景图片大小以填满容器 */ opacity: 0; /* 默认隐藏背景 */ transition: opacity 0.5s; /* 添加过渡...
### CSS定位详解:绝对定位与相对定位 #### 相对定位(Relative Positioning) 相对定位是一种常见的CSS定位方式,它允许元素相对于其正常位置进行偏移。这种定位不会影响其他元素的位置。 - **定义**: 当元素...
标题“利用CSS定位背景图片background-position”指出的是如何通过CSS属性来控制背景图片的定位问题。以下内容将详细阐述如何使用CSS中的background-position属性来精确控制背景图片的显示位置,以及相关的知识点。 ...
在本文中,我们将深入探讨如何使用CSS3来创建一个炫酷的iPhoneX手机屏幕背景与页面背景图片同时切换的特效。这个特效适用于网页设计,能够为用户带来更加沉浸式的浏览体验,尤其对于展示产品或模拟真实设备场景时...
本文将深入探讨如何运用百分比来定位背景图片,以及这种方法的优势。 首先,让我们了解基本的`background-position`属性。这个属性用于定义背景图像在元素内的位置。当使用百分比时,它会相对于元素的宽度和高度...
`background-image`用于设置元素的背景图像,可以是一个URL指向的图片或使用CSS渐变。例如: ```css div { background-image: url('image.png'); } ``` `background-repeat`决定图像是否以及如何重复。它可以是`...
CSS Sprites 样式生成工具(bg2css) 3.2.1 (需要AIR环境,可到 Adobe站点 下载安装。)
前段时间在开发中,遇到需要给背景层加颜色遮罩的项目,现在特定总结一下给背景图层加颜色遮罩的方法。 方法一:通过定位叠加(注意层级) <div class=inner> .wrap1 { position: relative; width: 1200px; ...
在`css`文件夹中的样式表中,定义了圆形图片的样式,包括尺寸、边框、背景图片等。利用伪类`:hover`和`:active`,可以为鼠标悬停和点击状态添加不同的样式。此外,还定义了3D翻转的关键帧动画,以实现平滑的翻转效果...
总的来说,CSS提供了多种方式来定位背景图片,开发者可以根据实际需求选择最适合的方法。无论是使用`position: absolute`配合`margin`,还是利用`background-position`和`background-origin`的扩展功能,都能帮助...