定位一个CSS背景图像x像素从右侧?
我认为答案是否定的,但是你可以用CSS来定位一个背景图像,所以它是一个固定的像素距离右边?
如果我设置了x和y的background-position
值,似乎只能分别从左边和上边给出固定的像素调整。
background-position: right 30px center;
它适用于大多数浏览器。 请参阅: http : //caniuse.com/#feat=css-background-offsets获取完整列表。
更多信息: http : //www.w3.org/TR/css3-background/#the-background-position
可以使用属性border
作为从右边的长度
background: url('/img.png') no-repeat right center; border-right: 10px solid transparent;
有一种方法,但不支持每个浏览器(请参阅此处的覆盖范围 )
element { background-position : calc(100% - 10px) 0; }
它适用于每个现代浏览器, 但是IE9可能会崩溃 。 也没有覆盖= <IE8。
据我所知,当然, CSS规范并没有提供你正在问什么,除了CSSexpression式。 假设你不想使用expression式或Javascript,我看到了三个骇人的解决scheme:
- 确保背景图像与容器的大小相匹配(至less在宽度上),并设置
background-repeat: repeat
如果仅宽度相同,则background-repeat: repeat
或repeat-x
。 然后,从右边出现x
像素就像background-position: -5px 0px
一样简单。 - 使用
background-position
百分比performance出比这里描述的更好的特殊行为。 试一试。 基本上,background-position: 90% 50%
将使背景图像的右边缘与容器的右边缘alignment10%。 - 创build一个包含图像的div。 显式设置包含元素
position: relative
如果尚未设置)。 设置图像容器的position: absolute; right: 10px; top: 10px;
position: absolute; right: 10px; top: 10px;
,如果你认为合适的话,显然会调整最后两个。 将图像div容器放入包含元素中。
尝试这个:
#myelement { background-position: 100% 50%; margin-right: 5px; }
请注意,上面的代码将从右侧移动整个元素(不是仅背景图像)5px。 这可能是适合你的情况。
你可以在CSS3中做到这一点:
background-position: right 20px bottom 20px;
它适用于Firefox,Chrome,IE9 +
来源: MDN
图像解决方法右侧的透明像素作为右边距。
同样的图像解决方法是创build一个PNG或GIF图像(支持透明度的图像文件格式),在图像的右侧有一个透明的部分,完全等于您要给右边距的像素数例如:5px,10px等)
这在固定的宽度和百分比的宽度上一致地工作。 实际上,在头部右侧有一个加号/减号或上/下箭头图像的手风琴头部的一个很好的解决scheme!
下滑:不幸的是,除非容器的背景部分和CSS背景图像的背景颜色具有相同的平面颜色(没有渐变/晕影),否则不能使用JPG,大多数是白色/黑色等。
如果您碰巧在现代浏览器的这些日子里碰到这个话题,您可以使用伪类:after在后台做任何实际的事情。
.container:after{ content:""; position:absolute; right:20px; background:url(http://lorempixel.com/400/200) no-repeat right bottom; }
这个CSS将把背景放在右边20px空间的“.container”元素的右下angular。
看这个小提琴例如http://jsfiddle.net/h6K9z/226/
最合适的答案是用于背景定位的新的四值语法,但是直到所有的浏览器都支持它,最好的方法是以下顺序的早期响应组合:
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+ */
只需将像素填充到图像中 – 在Photoshop中将图像的canvas大小添加10px或其他内容,然后在CSS中alignment。
我试图做一个类似的任务,得到一个下拉箭头总是在表头的右侧,并提出了这似乎在Chrome和Firefox的工作,但Safari浏览器告诉我,这是一个无效的财产。
background: url(http://goo.gl/P93P5Q) center right 10px no-repeat;
在做了一些检查工作之后,我想出了一个在IE8 +,Chrome,Firefox和Safari中使用的跨浏览器解决scheme,以及响应式devise。
background: url(http://goo.gl/P93P5Q) no-repeat 95% center;
这是一个如何看起来和工作的codepen。 Codepen是用SCSS编写的 – http://cdpn.io/xqGbk
我还没有见到的另一个解决scheme是使用伪元素,我相信这个解决scheme可以与任何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; }
例如 :元素例如。 一个大小为100px的正方形(不考虑边框)有一个10px的填充,背景图像应该显示在正确的填充内。 这意味着伪元素是一个80px大小的正方形。 我们想把它贴在右边的元素的右边:-10px; 。 如果我们希望背景图像5px远离右边框,我们需要将伪元素5px远离元素的右边框:right:-5px; …在这里testing你的自我: http : //jsfiddle.net/yHucT/
如果容器有一个固定的高度: Tweek百分比(背景位置),直到它适合正确。
如果容器具有dynamic高度:如果要在背景和容器之间填充(如自定义样式input,select时),请将填充添加到图像中,并将背景位置设置为右侧或底部。
我偶然发现这个问题,当我试图让一个select框的背景适合从我的select的权利说5 px。 在我的情况下,我的背景是一个向下箭头,将取代基本的下拉图标。 在我的情况下,填充将始终与背景保持相同(从右到左5-10像素),因此可以轻松修改实际的背景图像(使其右侧的图像尺寸增加5-10像素)。
希望这可以帮助!
您可以将您的背景图像放在编辑器中,从右侧开始放置x像素。
background: url(images_url) no-repeat right top;
背景图像将位于右上方,但是会显示为右侧的x像素。
调整从左边的百分比是有点脆我喜欢。 当我需要像这样的东西时,我倾向于将我的容器样式添加到包装元素,然后将内部元素的背景应用于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
类是可选的,如果需要的话,允许你的内容进入填充(负边距值应该与包装填充中的相应值相匹配)。 它有点冗长,但可靠地工作,而不必关心图像相对于其宽度和高度的相对位置。
由于这个问题已经被问到了,所以这个问题已经很大了,但是我碰到了这个问题,我就这样做了:
background-position:95% 50%;
负值的解决scheme。 调整填充右键以移动图像。
<div style='overflow:hidden;'> <div style='width:100% background:url(images.jpg) top right; padding-right:50px;'> </div> </div>
这在Chrome 27中有效,我不知道它是否有效,或者其他的browswers是如何处理的。 我对此感到惊讶。
background: url(../img/icon_file_upload.png) top+3px right+10px no-repeat;
适用于所有真正的浏览器(和IE9 +):
background-position: right 10px top 10px;
我用它来RTL的WordPress主题。 看例子: 临时网站或真实网站即将上线。 看看大DIV右侧的图标。
更好的所有背景:url('../ images / bg-menu-dropdown-top.png')left 20px top no-repeat!important;