我可以使用CSS拥有多个背景图像吗?

我可以使用CSS拥有多个背景图像吗?,css,background-image,Css,Background Image,有可能有两个背景图像吗?例如,我希望在顶部重复一个图像(repeat-x),在整个页面重复另一个图像(repeat),其中在整个页面上重复的图像位于在顶部重复的图像后面 我发现,通过设置html和body的背景,我可以为两个背景图像实现所需的效果: html{ 背景:url(images/bg.png); } 身体{ 背景:url(images/bgtop.png)repeat-x; } 这是“好”的CSS吗?有更好的方法吗?如果我想要三个或更多的背景图像呢?你可以在顶部有一个div,其中一个

有可能有两个背景图像吗?例如,我希望在顶部重复一个图像(repeat-x),在整个页面重复另一个图像(repeat),其中在整个页面上重复的图像位于在顶部重复的图像后面

我发现,通过设置html和body的背景,我可以为两个背景图像实现所需的效果:

html{
背景:url(images/bg.png);
}
身体{
背景:url(images/bgtop.png)repeat-x;
}

这是“好”的CSS吗?有更好的方法吗?如果我想要三个或更多的背景图像呢?

你可以在顶部有一个div,其中一个背景,另一个用于主页,然后将页面内容在它们之间分开,或者将内容放在另一个z级的浮动div中。您这样做可能会奏效,但我怀疑它是否能在您遇到的每个浏览器中都起作用。

CSS3允许这样做,它看起来是这样的:

正文{
背景图片:url(images/bgtop.png),url(images/bg.png);
背景重复:重复-x,重复;
}
但是,如果您需要支持IE8或以下版本,那么解决这一问题的最佳方法是使用额外的div:

<body>
    <div id="bgTopDiv">
        content here
    </div>
</body>

是的,这是可能的,并且已经被流行的可用性测试网站实现了。如果您仔细查看源代码,您可以看到背景是由几个图像组成的,它们相互重叠


下面是一篇文章,演示如何在上找到效果。可以在上找到包装这些“洋葱皮”层的类似概念。

当前版本的FF和IE以及一些其他浏览器在单个CSS2声明中支持多个背景图像。看看这儿,这儿,这儿


对于伊江,你可以考虑添加一个行为。查看此处:

如果您想要多个背景图像,但不希望它们重叠,可以使用以下CSS:

body {
  font-size: 13px;
  font-family:Century Gothic, Helvetica, sans-serif;
  color: #333;
  text-align: center;
  margin:0px;
  padding: 25px;
}

#topshadow {
  height: 62px
  width:1030px;
  margin: -62px
  background-image: url(images/top-shadow.png);
}

#pageborders {
width:1030px;
min-height:100%;
margin:auto;        
    background:url(images/mid-shadow.png);
}

#bottomshadow {
    margin:0px;
height:66px;
width:1030px;
background:url(images/bottom-shadow.png);
}

#page {
  text-align: left;
  margin:62px, 0px, 20px;
  background-color: white;
  margin:auto;
  padding:0px;
  width:1000px;
}
使用此HTML结构:

<body 

<?php body_class(); ?>>

  <div id="topshadow">
  </div>

  <div id="pageborders">

    <div id="page">
    </div>
  </div>
</body>

我发现在一个div中使用两个不同背景图像的最简单方法是使用以下代码行:

body {
    background:url(image1.png) repeat-x, url(image2.png) repeat;
}
显然,这不一定只针对网站的主体,你可以将其用于任何你想要的div

希望有帮助!如果有人需要进一步的指导或帮助,我的博客上有一篇文章会更深入地讨论这一点

body {
background: url(images/image-1.png), url(images/image-2.png),url(images/image-3.png);
background-repeat: no-repeat, repeat-x, repeat-y;
background-position:10px 20px , 20px 30px ,15px 25px;
}
一种简单的方法,可以使用背景位置调整每个图像位置:并使用背景重复设置重复属性:分别为每个图像设置重复属性

#示例1{
背景:url(http://www.w3schools.com/css/img_flwr.gif)左上角不重复,url(http://www.w3schools.com/css/img_flwr.gif)右下角无重复,url(http://www.w3schools.com/css/paper.gif)左上重复;
填充:15px;
背景尺寸:150px,130px,自动;
背景位置:50px 30px,430px 30px,130px 130px;
}

同侧阴唇
这是一位杰出的领袖,他是一位伟大的领袖

但是,在最低限度的利益下,我们必须在公共消费品的基础上,继续履行我们的义务


最新版本的Firefox、Chrome、Safari和Opera支持多种背景。IE9也将支持它。如果您希望有不同的重复/位置设置,您可以这样做:对于IE8-IE6,您可以使用PIE.js。背景大小是否遵循相同的规则?我希望我的所有背景图像都是全高的,除了其中一个(我希望是图像高度)。是的,背景大小遵循相同的规则(与所有其他背景属性一样)。背景属性(通常以前缀background开始,然后是背景的特定属性)实际上可以在背景属性本身中指定,因此,由于支持多个背景图像,因此也支持多个列出的属性。这适用于大小、位置、重复等。请注意,这仅适用于背景,而不适用于背景图像