我知道我可以在背景图像上设置负左位置,如下所示:
#element {
background: url(image.png) -20px 0 no-repeat;
}
这会将背景图像定位到左边缘左侧 20px#element
, 不管#element
的宽度。
但是有什么办法可以设置负数吗?right位置,without giving #element
固定宽度(然后设置一个高的正左值)?
说通过简单的 CSS 不可能获得这种效果是不正确的。无需使用不必要的伪元素或多个 div 让标记变得复杂。
您可以使用 CSS 中的“calc”函数让浏览器计算 100% 的容器宽度,然后像这样添加负边距(记住将负边距添加到 100%not减去它):
background-position: calc(100% + 20px) 0;
或者,如果您更喜欢速记格式的标记:
background: url("image.png") calc(100% + 20px) 0 no-repeat;
这将使您的背景图像 100% 定位(从而获得与使用相同的效果背景位置:右)从其容器的左侧开始,并添加 20px,您将获得负的右边距。
您可以在此 jsFiddle 中查看该函数的行为方式的演示:http://jsfiddle.net/58u665fe/ http://jsfiddle.net/58u665fe/
大多数主要浏览器都支持“calc”功能,但在某些情况下缺乏对 IE9http://caniuse.com/#feat=calc.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)