我知道可以使用CSS创建多个背景图层,但是我可以将来自不同类的多个背景分层吗? 假设我有div作为可能有山脉或丘陵的瓷砖,可能属于某个国家。
.mountain {
background: url("mountain.png");
}
.hill {
background: url("hill.png");
}
.bluecountry {
background: url("bluecountry.png");
}
.redcountry {
background: url("redcountry.png");
}
.greencountry {
background: url("greencountry.png");
}
将是我的CSS。但是,这不起作用;当我做像
这样的事情<div class="hill bluecountry">
它不会对背景进行分层,并且只会使用其中一个。 有没有办法让这项工作?实际上我有更多的东西,为每种可能的组合单独编写CSS多个背景将是一个巨大的浪费时间。
答案 0 :(得分:4)
无法使用多个类合并background
属性 - 它只能设置一次。你能做的是:
position: relative
)position: absolute
)top: 0px; left: 0px;
和background-position
将图像放置在容器中。这是我的意思的一个例子:
<强> HTML 强>
<div class="container">
<div class="first"></div>
<div class="second"></div>
</div>
<强> CSS 强>
html, body { height: 100%; }
div {
display: inline-block;
width: 400px;
height: 100px;
}
.container {
position: relative;
}
.first, .second {
position: absolute;
left: 0;
top: 0;
}
.first {
background: url(http://lorempixel.com/200/100/sports/1) no-repeat;
}
.second {
background: url(http://lorempixel.com/200/100/sports/2) no-repeat;
background-position: right center;
}
答案 1 :(得分:0)
如果使用jQuery,则:
$(".mountain, .hill, .bluecountry").each(function () {
var backgrounds = [];
if ($(this).hasClass("mountain"))
backgrounds.push("url('mountain.png')");
if ($(this).hasClass("hill"))
backgrounds.push("url('hill.png')");
if ($(this).hasClass("bluecountry"))
backgrounds.push("url('bluecountry.png')");
$(this).css("background", backgrounds.join(", "));
});