在html中雪碧图的坐标怎么看,CSS技巧篇(三):
background-position。。。
background-position属性使⽤频率⾮常⾼,⼤量的⽹站为了减少http请求数,会将⼤量的图⽚图⽚合成⼀张雪碧图(Sprite)来使⽤。雪碧图的使⽤就是通过控制background-position属性值来确定图⽚呈现的位置,不得不说它的作⽤⾮常重要,当然除了在使⽤雪碧图的场景外,别的某些场景也常常会使⽤到这个属性,这次就总结下它的⽤法。
⼀、background-position属性
1、background-position属性的定义
margin属性值可以为百分比background-position 属性设置背景图像的起始位置。这个属性设置背景原图像(由 background-image 定义)的位置。
2、background-position的属性值
background-position有两个属性值, background-position:x | y,⽤法上可以对其⼀个属性单独使⽤ background-position-x 和background-position-y。
background-position属性值有三种情况:
background-position两个属性值可以混⽤,例如:⽅向值和数值、数值和百分⽐,并⾮x轴和y轴需要设置为同⼀类型的属性值,这点也正是说明了background-position属性可以衍⽣单独设置background-position-x 或 background-position-y。
3、background-position的属性值分析
我们都知道background-position 属性的作⽤:设置背景图像的起始位置。这⾥的起始位置是相对于⾃⾝容器⽽⾔,如果属性值为数值,⼤家可能很好理解,例如:background-position:100px 50px 这个
属性值意味着图⽚在距离⾃⾝容器x轴为100px、y轴为50px的位
置作为图⽚显⽰的起点位置。
然⽽使⽤百分⽐来设置属性值,是以⾃⾝容器的长宽 减去 图⽚的长宽 乘以 百分⽐所得的数值来确定图⽚的起始位置。
公式:
(容器⾃⾝的宽度/⾼度 - 图⽚⾃⾝的宽度/⾼度) x 百分⽐
复制代码
例如:background-position:50% 50%
提⽰:
1)、background-position属性值如果是数值,那么指相对于容器⾃⾝数值的距离作为起始位置;如果是百分⽐或者是⽅向,那么指的是相对于容器⾃⾝(容器⾃⾝的宽度/⾼度 - 图⽚⾃⾝的宽度/⾼度) x 百分⽐ 所得的数值作为起始位置。
2)、如果不设置background-position属性值,那么默认起始位置为background-position:0% 0%。
3)、⽅向值和百分⽐的计算⽅式是⼀样的,它们可以相互转换,left:0%,right:100%,center:50%。
4)、如果background-position属性值只设置⼀个,那么另⼀个默认为center。
⼆、雪碧图
CSS雪碧图即CSS Sprites,也有⼈叫它CSS精灵,是⼀种CSS图像合并技术,该⽅法是将⼩图标和背景图像合并到⼀张图⽚上,然后利
⽤CSS的背景定位来显⽰需要显⽰的图⽚部分。
上⾯这张图⽚是由多个⼩图⽚合成的,前端成它为CSS雪碧图。
1、background-position属性在雪碧图中的⽤法
了解了background-position属性的⽤法,那么对于如何使⽤雪碧图的学习就相对简单了很多。使⽤雪碧图之前,我们需要知道雪碧图中各
个图标的位置。
从上⾯的图⽚不难看出雪碧图中各个⼩图标(icon)在整张雪碧图的起始位置,例如第⼀个图标(裙⼦)在雪碧图的起始位置为 x:0,y:0,第⼆个图标(鞋⼦)在雪碧图的起始位置为 x:0,y:50px,第三个图标(⾜球)在雪碧图的起始位置为x:0,y:100px,依次类推可以得出各个图⽚相对于雪碧图的起始位置。
以上⾯的雪碧图为例,⽤⼀个Demo来阐述它的使⽤⽅法。
.box{width: 600px; height:300px; border: 3px solid #ccc; background-color: #8064A2; }
span{display: inline-block; width: 25px; height: 25px; border: 3px solid #ccc;
background-image: url(css/img/sidebar.png); background-repeat: no-repeat; margin: 5px;}
.icon1{background-position: 0 0;}
.icon2{background-position: -50px 0;}
.icon3{background-position: 0 -50px;}
.
icon4{background-position: -50px -50px;}
复制代码
复制代码
2、为什么使⽤雪碧图时background-position属性值为负数
上⾯的例⼦已经阐述了如何使⽤雪碧图,只不过初学者可能会对雪碧图中的background-position属性值为负值有所疑惑。这个问题其实不难回答,如果细⼼的⼈应该很早就发现了使⽤负数的根源所在。这边⽤上⾯的Demo为例,来分析这个问题。上⾯的span标签是⼀个50px 长宽的容器,在使⽤背景图时,背景图的初始位置会从容器的左上⾓的开始铺满整个容器,然⽽容器的⼤⼩限制了背景图呈现的
⼤⼩,超出容器部分被隐藏起来。假如设置background-position: 0 0 那么意味着,背景图相对于容器(span标签)x轴=0;y轴=0的位置作为背景图的起始位置来显⽰图⽚。所以如果需要在容器中显⽰第⼆个图标,意味着雪碧图x轴⽅向要左移动,左移动雪碧图即它的值会设置为负数,
同理y轴⽅向也⼀样。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论