有没有办法阻止背景图像在特定(虽然动态)点之后重复?
目前我有以下html
<ul>
<li>variable</li>
<li>amount</li>
<li>of</li>
<li>items</li>
</ul>
和css:
ul {
background-image: url('./imgs/gridlines.png');
background-repeat: y-repeat;
}
现在,上面重复了ul
元素整个长度的图像。我的问题是我需要重复从ul
的底部停止8px。
我已尝试使用background-position
,但这只会改变背景,同时仍将其重复到ul
元素的末尾。
我也尝试过使用background-size: 1 calc(100% - 8px);
,但这对Chrome来说失败了。
答案 0 :(得分:2)
你可以在CSS中做到这一点......有点儿。你不能告诉background-repeat
重复指定的次数;它不起作用。所以我的想法是在列表的底部粘贴一个8px的白色块,这应该可以达到非常接近预期效果的效果:
ul {
background-image: url('http://i.imgur.com/B5k8FTP.png');
background-repeat: y-repeat;
padding-left:0;
color:black;
width:200px;
position:relative;
}
li:last-child{
position:relative;
z-index:10;
}
ul::after{
display:block;
background-color:white;
position:absolute;
bottom:0px;
height:8px;
width:100%;
content:"";
z-index:1;
}
<ul>
<li>variable</li>
<li>amount</li>
<li>of</li>
<li>items</li>
</ul>
ul
样式为演示设置宽度。 padding-left:0
从<ul>
的左侧删除边距,也是可选的。该位置设置为相对位置,因为after
内容将相对于<ul>
/
ul::after
样式会在列表后插入白色块。 position:absolute
和bottom:0px
将其放在列表底部,相对于<ul>
。 z-index
设置为确保它位于底部<li>
li:last-child
确保它位于ul::after
内容之上。
答案 1 :(得分:0)
您可以将所需内容包装在设置为从父级继承大小的帧中 - 您想要的8 px。
如果我误解了什么,jsfiddle会很好。
编辑: Like this?
.wrapper{
position: relative;
left: 20px;
height: 46px;
background-image: url('http://i.imgur.com/qIaw9Lc.png');
background-repeat: repeat-y;
}