这应该可以解决问题。选择:before
器div
使用给定的content
(这里是空格,因为没有内容属性,并且我认为使用空字符串内容,div
不会创建假),并且可以设置样式。因此,假货div
被创建,并使用 a background-image
、给定的height
andwidth
和 a z-index
of 进行样式设置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的答案结合起来,避免了代码中的显式跨度。
我认为:before
必须将 应用于.test :first-child:before
,因此它将是 的孩子xyz
div
,而不是兄弟姐妹,但似乎没有必要(尽管我不知道为什么)。
您可以在 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>