CSS中background-position的纠结

1,之前一直在用这个属性,没发现什么大问题,感觉还挺好用的,一般都是设置一个容器,大小和要显示的背景图像大小一致,然后用雪碧图定位到要显示图案的左上角(一般都是X正值,Y负值)
2,今天看《精通CSS》上面写到,百分比和单位值是不一样的定位规则的,包括关键字也是。因为之前一直也没怎么用到百分比定位背景,所以感触不深。
3,刚好看一个网站源码,看到给li加背景,定位代码是background-position:left 14px; ,这一下我就表示看不懂了。

问题从这里开始,文档描述如下:
这里写图片描述

目前我的理解是:
1,关键字。如果是关键字, [top|center|bottom][left|center|right] ,前者指定背景和容器的纵向定位,也就是说,top即背景的上方与容器的上方重合,center水平中线重合,bottom下方重合。
2,带单位的数值(一般用px)。如果是带单位的数值,那就是在背景图像左上角与容器左上角的相对位移,具体看正负值决定移动方向,这时,显示效果会出现下图情况,所以一般我们都设置容器大小和要显示的图案同样大小。
这里写图片描述

3,百分比。如果是百分比,就不再对图像及容器的左上角定位了,而是换成了图像上相应比例的点和容器相应比例的点的重合。如下图所示:
这里写图片描述

规范指出,不要将像素与百分数等单位与关键字混合使用。者似乎是一个没有意义的的规则,而且许多现代浏览器故意忽略了这个规则。但是混合使用单位和关键字在某些浏览器上会导致错误,而且可能使CSS失效。因此,最好不要混合使用单位和关键字。——《精通CSS》

更新:再加一句。虽然规范指出不要混合使用单位和关键字,但是现代浏览器基本上都忽略了这条规则,而且是实际应用中,混合使用有时更容易理解和书写。所以,作者Andy也认为这条规则是规范错了。

最后,我贴点大牛的分享:

1.原点位置,即外层块元素的左上角
2.background-position 位置设定是指图片与坐标原点的偏移量
3.原点是不会动的,移动的是图片 X坐标为正则图片左上角向右平移,为负则图片左上角向左平移
4.Y坐标为正则图片左上角向下平移,为负则左上角向上平移
5.百分比的计算是有公式的:X轴( container宽度 – 图片宽度 )*含符号百分比
6.Y轴( container高度 – 图片高度)*含符号百分比

大家也别太纠结,在工作中慢慢用,慢慢理解,自然而然就明白了,我今天晚上纠结在这上面都睡不着了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值