我认为答案是否定的,但是你可以用CSS定位一个背景图像,这样它就离右边有一个固定数量的像素?
如果我设置x和y的background-position值,似乎它们只分别从左边和上面给出固定的像素调整。
background-position
据我所知,CSS规范并没有提供你所要求的确切内容,当然是在CSS表达式之外。除去你不想使用表达式或Javascript的假设,我看到了三个hack的解决方案:
background-repeat: repeat
repeat-x
x
background-position: -5px 0px
background-position: 90% 50%
position: relative
position: absolute; right: 10px; top: 10px;
试试这个:
#myelement { background-position: 100% 50%; margin-right: 5px; }
注意上面的代码会将整个元素(不仅仅是背景图像)向右移动5px。这对你的案子来说可能没问题。
如果容器有固定高度: 微调百分比(背景-位置),直到它正确匹配
如果容器有动态高度: 如果你想在你的背景和容器之间填充(比如当自定义样式输入时,选择),将你的填充添加到你的图像,并将背景位置设置为右侧或底部。< / p >
当我试图让一个选择框的背景适合我选择的右边5像素时,我偶然发现了这个问题。在我的例子中,我的背景是一个箭头,它将取代基本的下拉图标。在我的例子中,背景的填充将始终保持不变(右边5-10个像素),所以对实际的背景图像进行修改是很容易的(使右侧的尺寸宽5-10个像素)。
希望这能有所帮助!
background-position: right 30px center;
它适用于大多数浏览器。完整列表参见:http://caniuse.com/#feat=css-background-offsets。
更多信息:http://www.w3.org/TR/css3-background/#the-background-position
图像工作与透明像素在右边作为右边缘。
图像的变通方法是创建一个PNG或GIF图像(支持透明度的图像文件格式),在图像的右侧有一个透明的部分,恰好等于你想要给予右边距的像素数(例如:5px, 10px等)。
这在固定宽度和百分比宽度上一致地工作。 实际上,这是一个很好的解决方案,手风琴头有一个加/减或向上/向下箭头图像在头的右边!< / p >
缺点:不幸的是,你不能使用JPG,除非容器的背景部分和CSS背景图像的背景颜色是相同的平面颜色(没有渐变/小插图),主要是白色/黑色等。
求负值的解。调整右填充来移动图像。
<div style='overflow:hidden;'> <div style='width:100% background:url(images.jpg) top right; padding-right:50px;'> </div> </div>
只需将像素填充到图像中-在photohop中添加10px或任何图像的画布大小,并在CSS中对齐它。
可以使用属性border作为右起长度
border
background: url('/img.png') no-repeat right center; border-right: 10px solid transparent;
您可以在编辑器中将背景图像定位为距离右侧x像素。
background: url(images_url) no-repeat right top;
背景图像将位于右上方,但将显示为距离右侧x个像素。
从左边调整百分比对我来说有点脆弱。当我需要这样的东西时,我倾向于将我的容器样式添加到包装器元素,然后用background-position: right bottom在内部元素上应用背景
background-position: right bottom
<style> .wrapper { background-color: #333; border: solid 3px #222; padding: 20px; } .bg-img { background-image: url(path/to/img.png); background-position: right bottom; background-repeat: no-repeat; } .content-breakout { margin: -20px } </style> <div class="wrapper"> <div class="bg-img"> <div class="content-breakout"></div> </div> </div>
.content-breakout类是可选的,如果需要,将允许您的内容进入填充(负边距值应匹配包装器填充中的相应值)。这有点冗长,但工作可靠,无需考虑图像相对于其宽度和高度的相对位置。
.content-breakout
有一种方法,但不是每个浏览器都支持(参见覆盖在这里)
element { background-position : calc(100% - 10px) 0; }
它适用于每一个现代浏览器,但IE9可能会崩溃。也不包括=<IE8。
这个问题已经被问到很久了,但我刚刚遇到了这个问题,我是这样做的:
background-position:95% 50%;
如果你碰巧在现代浏览器中碰到这个话题,你可以使用伪类:after来做任何与后台相关的事情。
.container:after{ content:""; position:absolute; right:20px; background:url(http://lorempixel.com/400/200) no-repeat right bottom; }
这个CSS会把背景放在“”的右下角。元素的右侧有20px的空间。
请看这个小提琴,例如http://jsfiddle.net/h6K9z/226/
这在Chrome 27中工作,我不知道它是否有效,也不知道其他浏览器能做什么。我对此感到很惊讶。
background: url(../img/icon_file_upload.png) top+3px right+10px no-repeat;
适用于所有真正的浏览器(以及IE9+):
background-position: right 10px top 10px;
最恰当的回答是用于后台位置的新的四值语法,但在所有浏览器支持它之前,您的最佳方法是按照以下顺序组合先前的响应:
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+ */
你可以在CSS3中这样做:
background-position: right 20px bottom 20px;
它适用于Firefox, Chrome, IE9+
来源:中数
我试图做一个类似的任务,让一个下拉箭头总是在表头的右侧,并提出了这个似乎在Chrome和Firefox中工作,但safari告诉我这是一个无效的属性。
background: url(http://goo.gl/P93P5Q) center right 10px no-repeat;
在检查器中折腾了一番之后,我想出了这个跨浏览器的解决方案,它适用于IE8+、Chrome、Firefox和Safari,以及响应式设计。
background: url(http://goo.gl/P93P5Q) no-repeat 95% center;
这里是它的外观和工作方式的代码依赖。Codepen是用SCSS - http://cdpn.io/xqGbk编写的
对大家都好
background: url('../images/bg-menu-dropdown-top.png') left 20px top no-repeat !important;
另一个我没有看到提到的解决方案是使用伪元素,我相信这个解决方案将适用于任何CSS 2.1兼容的浏览器(≥IE8,≥Safari 2,…),它也应该是响应:
element::after { content:' '; position:relative; display:block; width:100%; height:100%; bottom:0; right:-5px; /* 10 px from the right of element inner-margin (padding) see example */ background:url() right center no-repeat; }
例子:元素eg。一个100px大小的正方形(不考虑边界)有10px的填充,背景图像应该显示在右边的填充中。这意味着伪元素是一个80px大小的正方形。我们想把它放在右:-10 px;元素的右边界上。如果我们想让背景图像距离右边界5px,我们需要将伪元素与右:5 px;元素的右边界5px… 在这里自己测试:http://jsfiddle.net/yHucT/
如果你只想指定x轴,你可以这样做:
background-position-x: right 100px;