我有一个可变大小的容器,它有一个重复的背景图块,可以拉伸以任何宽度填充容器。我需要容器的高度,使其始终是1个瓷砖高度的倍数 - 这样我就可以将容器的底部与一个端部无缝对齐' tile是以下容器的bg图像。 我试图用jQuery做,但我的代码不起作用......
注意:重复的背景必须从TOP开始,因为它上面有另一块它连接起来(所以在这种情况下,设置背景块从底部重复的解决方案不适用 - 那就是' ll只是在顶部打破它) 我需要javascript才能正常工作,而不是只改变CSS。
小提琴:http://jsfiddle.net/nRe7R/1/
这是JS:
function seamlessBottomBg() {
var container = $('#container1');
var bgTileAspectRatio = 65/1163;
var tileWidth = container.outerWidth();
var tileHeight = tileWidth * bgTileAspectRatio;
//calculate how many px high the 'cutoff' last bg tile is, if there is a cutoff part
var cutOffTileHeight = container.outerHeight() % tileHeight;
if(cutOffTileHeight !== 0) {
container.css('padding-bottom', tileHeight-cutOffTileHeight+1+'px');
}
}
seamlessBottomBg();
和CSS:
#container1 {
background-size: contain;
background-image: url(http://img.photobucket.com/albums/v488/fishygirl/paper-repeating_zps52e98fe2.jpg);
background-repeat: repeat-y;
width: 80%;
margin: 0 auto;
padding: 3em 10% 0;
max-width: 1200px;
}
#container2 {
background-size: contain;
background-image: url(http://img.photobucket.com/albums/v488/fishygirl/paper-bg-bottom_zps441e1bc3.jpg);
background-repeat: no-repeat;
width: 80%;
margin: 0 auto;
padding: 3em 10% 0;
max-width: 1200px;
}
答案 0 :(得分:1)
我相信如果您将背景图片设置为bottom
,它会向上重复。不确定这是不是你想要的,但这里是fiddle
#container1 {
background-size: contain;
background-image: url(http://img.photobucket.com/albums/v488/fishygirl/paper-repeating_zps52e98fe2.jpg);
background-repeat: repeat-y;
background-position: bottom;
width: 80%;
margin: 0 auto;
padding: 3em 10% 0;
max-width: 1200px;
}
答案 1 :(得分:1)
DEMO (尝试调整大小)
添加以下规则:
#container1 {
background-size:center bottom;
}
#container2 {
background-size:center top;
}
@media (min-width:1024px) { /* 1024px is based on the image's width */
#container2 {
background-size: cover;
}
}