`

CSS背景图片定位(background-position,css sprit,背景定位,background-imag

 
阅读更多
转:http://blog.sina.com.cn/s/blog_a2f610440100x84o.html

在CSS中,背景图片的定位方位有3种:

1)关键字:
background-position: top right;

2)像素:
background-position: 0px 0px;

3)百分比:
background-position: 0% 0%;



上面这三句语句,都将图片定位在背景的左上角,表面上看效果是一样的,实际上第三种定位机制与前两种完全不同。

前两种定位,都是将背景图片左上角的原点,放置在规定的位置。请看下面这张图,规定的位置是“20px 10px”和"60px 50px",都是图片的原点在那个位置上,图中用X表示。



但是第三种定位,也就是百分比定位,不是这样。它的放置规则是,图片本身(x%,y%)的那个点,与背景区域的(x%,y%)的那个点重合。比如,如果放置位置是“20% 10%”,实际结果如下图,可以看到这个点是在图片本身的“20% 10%”的位置上。



下面是一个有趣的例子。

背景图片是四个边长为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%”。

--------------------------------------------比较实质性的东西在这里-------------------------------------------------

我们知道在用图片作为背景的时候,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%)

如下图:




补充:
也就是说,如果你用background-position:0px 160px;无效的时候,确认一下是不是Y轴方向反了,也就是说要改成background-position:0px -160px;才是正确的。
  • 大小: 8.4 KB
  • 大小: 6.4 KB
  • 大小: 2.3 KB
  • 大小: 2.7 KB
  • 大小: 28 KB
  • 大小: 31.8 KB
  • 大小: 36.9 KB
  • 大小: 22.3 KB
分享到:
评论

相关推荐

    吸附薄液膜下PCB-ImAg和PCB-HASL电化学迁移腐蚀行为与机理(英文).pdf

    因此,对PCB-ImAg(浸银处理电路板)和PCB-HASL(热风整平电路板)在吸附薄液膜下的电化学迁移腐蚀行为与机理的研究具有重要的理论和实际意义。 在提到的研究中,作者利用立体显微镜和扫描电子显微镜(Scanning ...

    imag-popupmenu.zip

    "imag-popupmenu.zip"这个压缩包显然包含了一个关于如何在Android应用中绘制多个PopupMenus的示例。下面我们将深入探讨PopupMenus的相关知识。 首先,PopupMenus通常用于在用户点击某个图标或按钮时显示一系列可选...

    PyPI 官网下载 | imag3-1.1.0.tar.gz

    例如,使用`imag3.load()`函数加载图片,`imag3.save()`函数保存处理后的图片,通过`imag3.rotate()`或`imag3.crop()`进行图像旋转和裁剪。 4. **开发与进阶**: 对于开发者来说,imag3库的源代码提供了一个学习...

    blr-imag-vector.fig.zip_彩色图像 模糊_模糊图像还原

    在提供的文件"blr imag vector.fig"中,可能包含了原彩色图像(lenat彩色图像)的模糊版本和经过某种恢复算法处理后的图像。通过比较这两者,我们可以直观地看到模糊处理对图像的影响,以及恢复技术的有效性。通常,...

    jQuery点击改变class并toggle及toggleClass()方法定义用法

    我滴古老风格,废话不多说,贴代码了。 &lt;html&gt; &lt;head&gt; &lt;meta charset=utf-8&gt; &lt;title&gt;... background-image:url(images/21.jpg);... background-repeat:no-repeat;... background-imag

    python 定位 照片精确位置 完整代码脚本

    完整流程+文章链接:https://blog.csdn.net/weixin_42350212/article/details/116568510 有问题,请留言+或者主页联系方式加我,确保帮你调试好。

    漂亮imag图片

    在这个“漂亮imag图片”主题中,我们可以深入探讨图像处理的一些关键知识点。 首先,我们需要理解“imag”可能是指图像或者图片的简称。在计算机科学中,图像通常以数字形式存储,由像素组成,每个像素代表一个颜色...

    imag推送程序

    "imag推送程序"是针对iOS平台的一个特定应用组件,它主要负责处理应用程序内部的消息推送功能。在iOS系统中,消息推送通常通过Apple Push Notification Service (APNS)来实现,但开发者可能需要定制化推送服务或者...

    cpp_implementation_for_algorithms_in_the_book_dig_digital-imag

    cpp_implementation_for_algorithms_in_the_book_dig_digital-image-processing-cpp

    响应卡:带有HTMLCSS的响应卡

    HTML和CSS的感应卡设计在这种响应式卡设计中,DOM结构... background-size CSS属性设置元素的背景图像的大小。 图像可以保留其自然大小,可以拉伸或约束以适合可用空间。 媒体查询用于将两列更改为768像素以下的一行。

    blr-imag.fig.zip_去模糊_去模糊MATLAB_模糊图像恢复

    图像被模糊以后的模糊图像和去模糊后的恢复图像的对比

    imag:imag-基于文本的个人信息管理套件

    **imag:基于文本的个人信息管理套件** `imag` 是一个用 Rust 语言编写的命令行界面(CLI)工具,专为个人项目和个人信息管理设计。这个开源项目旨在提供一个高效、灵活且易于使用的文本基础解决方案,以满足用户对...

    SMPTEMot.Imag.J-2014--1-60.pdf

    本文讨论了在视频编码和显示设备领域内,如何通过新的标准和进展来改善色彩表示的范围和质量。文章主要聚焦在两个视频色彩标准上:BT.709和BT.2020,探讨了与之相关的新技术和应用前景。 首先,BT.709标准是长期...

    imag.js|教你如何智做原生APP

    【压缩包子文件的文件名称列表】"imag-mh0808"很可能包含了imag.js的源代码文件,或者是与教程相关的示例项目。"mh0808"可能是版本号或者作者的标识,用于区分不同的发布或修订。下载并解压这个文件后,开发者可以...

    matlab正态曲线拟合代码-Region-Filling-and-Object-Removal-by-Exemplar-Based-Imag

    matlab正态曲线拟合代码通过基于示例的图像修复进行区域填充和对象去除 该存储库包含MATLAB中的实现。 这是在IITKGP的E&ECE数字图像处理课程中进行评估的一部分。 团队成员: 西里斯·甘比拉(Sirish ...

    Automatic Non-Perfused Choriocapillaris Area Calculator for OCT-Angiography Imag

    Automatic Non-Perfused Choriocapillaris Area Calculator for OCT-Angiography Images With 1.52 edition, the bugs were fixed. With 1.50 edition, choriocapillary flow voids measured with Phansalkar ...

    Survey of Visual-Semantic Embedding Methods for Zero-Shot Imag

    在计算机视觉和自然语言处理领域,"Survey of Visual-Semantic Embedding Methods for Zero-Shot Image Retrieval" 是一篇深入探讨视觉语义嵌入技术应用于零样本图像检索的综述论文。这篇论文由Meisei大学信息科学系...

    生成对抗网络的项目代码

    生成对抗网络(Generative Adversarial Networks,GANs)是由Ian Goodfellow等人在2014年提出的深度学习模型,它由两部分组成:生成器(Generator)和判别器(Discriminator)。生成器的任务是创建逼真的新数据,而...

    wordsbaking-editor:为文字烘焙工作

    网站开发 关于 宣言 这部分(编辑器)可能适用于。 由设计。 由。 网页目录结构 wordsbaking-editor | ...+---css/ ...+---imag/ | | | +---ico.png | +---js/ | +---editor.js | +---jquery-1.8.3.min.js

Global site tag (gtag.js) - Google Analytics