使用CSS将背景图片从右侧偏移
在CSS3之前,无法直接使用CSS来将背景图片从其元素的右侧偏移一定的像素。目前,有几种常用的解决方法:
1. 设置元素的margin-right
属性来实现偏移。这种方法通过调整元素的外边距来实现背景图片的右侧偏移。
2. 在背景图片本身添加透明像素,并将其定位在top right
位置。通过在图片中添加透明像素,然后将其定位在右上角位置,从而实现背景图片的右侧偏移。
3. 使用jQuery在元素的宽度已知后计算位置。通过使用jQuery,可以在元素的宽度已知后计算出背景图片的正确位置。
不过,好消息是,CSS3中对于扩展的background-position
属性的支持正在不断完善,很快就可以直接使用CSS来实现背景图片的右侧偏移。更多关于CSS3 'background-position'的支持情况可以参考:stackoverflow.com/questions/501375/…
在CSS中通过偏移背景图像从右边进行偏移的功能对我很有帮助。根据我所知,这在IE8中不被支持,在最新版的Chrome和Firefox中可以正常工作。可以在Can I use网站上查看支持该功能的浏览器的详细信息。来源于:http://tanalin.com/en/blog/2011/09/css3-background-position/
更新:
这个功能现在在包括移动浏览器在内的所有主流浏览器中都得到支持。这很棒,但不幸的是,在Safari 5.1.7上不起作用(对于手机用户来说非常重要)。
它现在在移动设备上工作正常(在Android、iOS和WindowsPhone上进行了检查)。但是Safari 5.1.7仍然不支持像这样给出的背景位置。我正在使用这个方法,并为较旧的浏览器提供了一个百分比的回退,例如background-position: 95% center; background-position: right 13px center;
不确定还有多少人在使用不支持这个功能的浏览器。Safari用户现在应该使用更新的版本,尽管仍然有很多旧的Android设备。对于这些设备,使用百分比回退就可以了(尽管不完全相同)。
请注意,这仅在水平和垂直位置上都指定了基本位置(如right、left、top、bottom)时才有效。例如,以下将无法渲染:background-position: right 10px 10px,但应该写成background-position: right 10px top 10px。
感谢你的评论,节省了我很多时间=)
我只是想知道,在2020年,对于这个right、left、top和bottom,我们是否可以使用calc来结合它们?因为我尝试了几次都没有变化,也许有人找到了解决办法?
这里有一个很好的教程解释了这种方法:css-tricks.com/positioning-offset-background-images