我认为答案是否定的,但是您可以使用CSS定位背景图像,以使其距右侧固定像素数量吗?
如果我设置background-position
x和y的值,似乎这些值只能分别从左侧和顶部进行固定的像素调整。
我认为答案是否定的,但是您可以使用CSS定位背景图像,以使其距右侧固定像素数量吗?
如果我设置background-position
x和y的值,似乎这些值只能分别从左侧和顶部进行固定的像素调整。
Answers:
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。
background-position-x: calc(90%);
-即它只是从100%中减去了10%
据我所知,CSS规范当然不能完全满足您在CSS表达式之外的要求。在您不想使用表达式或Javascript的假设下,我看到了三种不可靠的解决方案:
background-repeat: repeat
或者确保repeat-x
仅宽度相等。然后,让某些东西出现x
在右边的像素就和一样简单background-position: -5px 0px
。background-position
表现出比此处描述更好的特殊行为。试一试。本质上,background-position: 90% 50%
将使背景图像的右边缘与容器的右边缘对齐10%。position: relative
如果尚未设置,则明确设置包含元素的位置。将图像容器设置为position: absolute; right: 10px; top: 10px;
,显然可以根据需要调整最后两个。将image div容器放入包含元素。使用右侧透明像素作为右侧边距的图像解决方法。
图像的解决方法是创建一个PNG或GIF图像(支持透明性的图像文件格式),该图像的透明部分在图像的右侧与您要给其右边空白的像素数完全相等。例如:5px,10px等)
这在固定宽度以及百分比宽度上都可以很好地一致地工作。对于在标题右侧具有正/负或向上/向下箭头图像的手风琴标头,实际上是一个很好的解决方案!
缺点:不幸的是,除非容器的背景部分和CSS背景图像的背景颜色具有相同的纯色(没有渐变/渐晕),大部分是白色/黑色等,否则不能使用JPG。
如果您在当今的现代浏览器中偶然发现了这个主题,则可以使用伪类:after在背景上进行任何实际操作。
.container:after{
content:"";
position:absolute;
right:20px;
background:url(http://lorempixel.com/400/200) no-repeat right bottom;
}
这个CSS会将背景放在“ .container”元素的右下角,在右边有20px的间距。
参见此小提琴,例如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+ */
我正在尝试执行类似的任务,以始终在表格标题的右侧获得一个下拉箭头,并提出了一个在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
我没有提到的另一个解决方案是使用伪元素,我相信该解决方案可以与任何符合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;
}
示例:元素例如 正方形大小100像素(不考虑边框)的填充为10像素,背景图片应显示在右侧填充内。这意味着伪元素是一个80像素大小的正方形。我们要使用right:-10px;将其粘贴到元素的右边框;。如果我们想使背景图像离右边界5px,我们需要使用right:-5px将伪元素与元素的右边界5px粘在一起。...在这里进行自我测试:http://jsfiddle.net/yHucT/
您可以在编辑器中将背景图像放置在从右侧开始为x像素的位置。
background: url(images_url) no-repeat right top;
背景图像将位于右上角,但看起来将是右x像素。
从我的角度来看,从左侧调整百分比有些微弱。当我需要这样的东西时,我倾向于将容器样式添加到wrapper元素,然后使用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
班是可选的,可以让你的内容吃进填充如果需要的话(阴性切缘值应在包装填充匹配相应的值)。它有点冗长,但是可以可靠地工作,而不必担心图像相对于其宽度和高度的相对位置。
更适合所有背景:url('../ images / bg-menu-dropdown-top.png')左20px顶部不重复!