有一种方法来定位背景图像从其元素的右边一定数量的像素?
例如,要将某个东西从左边定位一定数量的像素(比如10),我是这样做的:
#myElement {
background-position: 10px 0;
}
有一种方法来定位背景图像从其元素的右边一定数量的像素?
例如,要将某个东西从左边定位一定数量的像素(比如10),我是这样做的:
#myElement {
background-position: 10px 0;
}
当前回答
CSS3规范允许背景位置的不同来源现在在Firefox 14中得到支持,但在Chrome 21中仍然不支持(显然IE9部分支持它们,但我自己没有测试过)
除了@MattyF提到的Chrome问题之外,这里还有一个更简洁的总结: http://code.google.com/p/chromium/issues/detail?id=95085
其他回答
是的!好吧,把背景图片从浏览器的右边定位成0px,而不是左边-我使用:
background-position: 100% 0px;
最简单的解决方案是使用百分比。这并不是您想要的答案,因为您要求的是像素精度,但如果您只是需要在右边缘和图像之间有一些填充,那么给出99%的位置通常就足够了。
代码:
/* aligns image to the vertical center and horizontal right of its container with a small amount of padding between the right edge */
div.middleleft {
background: url("/images/source.jpg") 99% center no-repeat;
}
如果你想使用这个添加箭头/其他图标到一个按钮,那么你可以使用css伪元素?
如果它真的是整个按钮的背景图像,我倾向于将间距合并到图像中,并使用
background-position: right 0;
但如果我必须添加一个设计的箭头到一个按钮,我倾向于有这样的html:
<a href="[url]" class="read-more">Read more</a>
并倾向于用CSS做以下事情:
.read-more{
position: relative;
padding: 6px 15px 6px 35px;//to create space on the right
font-size: 13px;
font-family: Arial;
}
.read-more:after{
content: '';
display: block;
width: 10px;
height: 15px;
background-image: url('../images/btn-white-arrow-right.png');
position: absolute;
right: 12px;
top: 10px;
}
通过使用:after选择器,我使用CSS添加了一个元素来包含这个小图标。您可以通过在a元素中添加span或<i>元素来实现同样的目的。但我认为这是一种向按钮添加图标的更简洁的方式,而且它是跨浏览器支持的。
你可以在这里查看小提琴: http://codepen.io/anon/pen/PNzYzZ
!! 过时的答案,因为CSS3带来了这个功能
有一种方法来定位背景图像从其元素的右边一定数量的像素?
不。
流行的变通方法包括
改为在元素上设置右边距 为图像本身添加透明像素,并将其定位在右上方 或者在元素宽度已知后使用jQuery计算位置。
最合适的答案是background-position的新四值语法,但在所有浏览器都支持它之前,最好的方法是按照以下顺序组合之前的响应:
background: url(image.png) no-repeat 97% center; /* default, Android, Sf < 6 */
background-position: -webkit-calc(100% - 10px) center; /* Sf 6 */
background-position: right 10px center; /* Cr 25+, FF 13+, IE 9+, Op 10.5+ */