这是我的CSS
.test {
background-image:url('images/smiley.gif');
background-repeat:repeat;
}
这是我的HTML:
<div class="test" id="xyz">some code which should come background to image</div>
我写的代码设置了背景图片。
但是我想在文本的顶部放置一个图像,而不是在它后面,以便它覆盖文本。 (我也希望它能自动重复填充元素,可以是任何大小。)
我该怎么做?
答案 0 :(得分:4)
这应该可以解决问题。 :before
选择器会使用给定的div
创建一个假content
(这里是一个空格,因为没有内容属性,我认为使用空字符串内容,假div
没有创建),可以设置样式。因此,假冒div
已创建,并使用background-image
,给定height
和width
以及z-index
1
进行样式设置,同时真实div
的z-index为零,显示在下方。
<!DOCTYPE html>
<html>
<head>
<title>Test page</title>
<style>
.test:before {
content: " ";
position: absolute;
width: 100px; height: 100px;
background-image:url('http://upload.wikimedia.org/wikipedia/commons/a/a4/Smiley_transparent.png');
background-repeat:repeat;
z-index: 1;
}
.test {
z-index: 0;
}
</style>
</head>
<body>
<div class="test" id="xyz">some code which should come background to image</div>
</body>
</html>
将此与Paul D. Waite的answer相结合,可避免在代码中显示明确的范围。
我认为:before
必须应用于.test :first-child:before
,因此它将是xyz
div
的孩子,而不是兄弟姐妹,但似乎没有必要(尽管它让我失望)。
您可以实时测试结果on jsfiddle。
<!DOCTYPE html>
<html>
<head>
<title>Test page</title>
<style>
.test {
position: relative;
}
.test:before {
content: " ";
position: absolute;
top: 0;
bottom: 0;
height: auto;
left: 0;
right: 0;
width: auto;
background-image:url('http://upload.wikimedia.org/wikipedia/commons/a/a4/Smiley_transparent.png');
background-repeat:repeat;
}
</style>
</head>
<body>
Some text before.
<div class="test" id="xyz">some code which should come background to image</div>
Some text after.
</body>
</html>
答案 1 :(得分:2)
有趣的任务。如果您愿意添加额外的HTML元素,我认为应该这样做。 (或者,使用.test:before
代替.test .foregroundImage
,例如Georges’ answer)。
<div class="test" id="xyz"><span class="foregroundImage"></span>some code which should come background to image</div>
.test {
position: relative;
}
.test .foregroundImage {
position: absolute;
top: 0;
bottom: 0;
height: auto;
left: 0;
right: 0;
width: auto;
background-image:url('images/smiley.gif');
background-repeat:repeat;
}
有关工作示例,请参阅http://jsfiddle.net/RUJYf/。
答案 2 :(得分:1)
CSS
<style type="text/css">
.test { position: relative; }
.test img, .test p { position: absolute; top: 0; }
.test img { z-index: 10; }
.test p { margin: 0; padding: 0; }
</style>
HTML
<div class="test">
<img src="images/smiley.gif" />
<p>some code which should come background to image</p>
</div>