如何在css中从右侧设置固定的背景位置?

Jit*_*yas 43 css

在这种情况下

li {background: url("../img/grey-arrow-next.png") no-repeat right center;
    border-bottom: 1px solid #D4E8EB}
Run Code Online (Sandbox Code Playgroud)

我想20px在背景图像之前的右侧空间,我不能给边距,li因为border应该触摸边缘.

所以我需要设置,20px但它需要20px从左侧而不是右侧.

li {background: url("../img/grey-arrow-next.png") no-repeat 20px center;
        border-bottom: 1px solid #D4E8EB}
Run Code Online (Sandbox Code Playgroud)

Niz*_*azi 83

在你的css提到位置然后"间距值(50px)"然后其他位置(中心/顶部)

li {background: url("../img/grey-arrow-next.png") no-repeat right 50px center;
border-bottom: 1px solid #D4E8EB}
Run Code Online (Sandbox Code Playgroud)

较旧的浏览器和IE8以及旧版本的IE不支持此代码.最新更新的浏览器与此方法没有冲突,希望未来的更新也支持它.

如果您使用的是现代浏览器,请尝试background-position: calc(100% - 50px) center;另一个答案中的建议.calc还有很长的路要走,因为它在逻辑上和数学上都能够产生更准确的结果.

  • 那真是太棒了.我不知道你可以复合这样的价值观. (6认同)

Dan*_*mbe 41

您可以使用CSS3"calc"函数:

例:

background-position: calc(100% - 10px) center;
Run Code Online (Sandbox Code Playgroud)

  • 这适用于所有现代浏览器 - IE8及以下版本不受支持(http://caniuse.com/calc).请注意,在CSS预处理器中使用calc可能会得到不需要的结果,而不会逃避计算.例如`Less`将`calc(100% - 10px)`作为`calc(90%)`处理,除非写成`〜"calc(100% - 10%)"`. (9认同)

A. *_* Z. 9

只需在图形编辑器中向图像右侧添加20px空白区域即可.

  • 这是一个非常难看的方法. (18认同)
  • @MarvinRabe建议更好的东西. (6认同)

Mil*_*uzz -1

在 中放置一个跨度标签<li>并为其添加边距,这样您<li>仍然应该沿着边框拉伸到边缘。