我有一个容器DIV,可以根据它的高度进行扩展。它有一个背景图像,重复制作图案。
问题是重复的背景图像在div的底部被截断。
有没有办法告诉背景图片没有被切断?
以下是代码:http://jsfiddle.net/WkEKD/7/
由于
答案 0 :(得分:5)
如果div的高度(如果高度为自动计算)不是背景图像高度的倍数,它将被切断(overflow: visible
不适用于背景图像)。两种可能的解决方案是:
background-size
属性(仅限CSS3)缩放背景图像以填充DIV(如果适用)选项#3的代码
演示:http://jsfiddle.net/h6tUs/2/
var img = new Image();
img.onload = function() {
adjustHeight(img.height);
};
img.src = 'http://www.jamfactory.co.za/left.png';
if(img.complete) {
adjustHeight(img.height);
}
function adjustHeight(_imgHeight) {
var ht = $('#container').outerHeight(false);
ht = ht + (ht % _imgHeight);
$('#container').height(ht);
}
上述代码应该放在$(document).ready(...)
答案 1 :(得分:0)
如果您的div的内容仅为文本,也许您可以将css中的line-height参数调整为平铺背景图像高度的某个部分?
答案 2 :(得分:0)
您的问题有很多可能的解决方案。
正如Tom C所说,你可以改变线条高度以匹配背景的高度。
例如:http://jsfiddle.net/Nr2ca/1/
更好的解决方案是将每一行作为子元素并将背景应用于其中每一行。 (如果您使用无序列表进行导航)
答案 3 :(得分:0)
解决此问题的一个解决方案是将行高设置为与line-height: 20px;
的背景图像高度相同
小提琴 - http://jsfiddle.net/WkEKD/10/
#container {
margin:0 auto;
width:20px;
background:url('http://www.jamfactory.co.za/left.png') 0 0;
line-height: 20px;
}
答案 4 :(得分:0)
您可以通过简单的CSS
轻松获得所需的结果,如下所示: -
<强> CSS 强>
body {background-color:#000}
#container {
margin:0 auto;
width:20px;
background:url('http://www.jamfactory.co.za/left.png') repeat-y 0 0;
}
<强> HTML 强>
<div id="container">
<p><br/></p>
<p><br/></p>
<p><br/></p>
<p><br/></p>
<p><br/></p>
<p><br/></p>
<p><br/></p>
</div>
您应该始终定义background-repeat
值,以便像x-axis
或y-axis
那样重复图像。如果您要定义这些值,我希望图像将根据您的要求完美重复。
请参阅演示: - http://tinkerbin.com/1kg6u3PW