在CSS中分层图像 - 可以将2个图像放在同一个元素中?

15 css layout image z-index

假设我在CSS中为网页设置背景图像,如下所示:

body    {
font-size: 62.5%; /* Resets 1em to 10px */
font-family: Verdana, Arial, Sans-Serif;
background-color: #9D5922;
color: #000;
margin-left: auto;
margin-right: auto;
margin: 0;
padding: 0; 
background: url(images/desk.gif) repeat bottom left;
}
Run Code Online (Sandbox Code Playgroud)

有没有办法在body元素本身的桌面上层叠第二个图像,或者是创建单独的类并使用z轴的唯一方法?

对不起,这是一个简单的问题,但我一直试图解决这个问题,虽然我无法使其发挥作用,但我还没有在网上找到一个明确的想法,所以,是的有办法,还是这只是一个无法做到的?

谢谢!

scr*_*ide 6

分层背景是CSS3工作草案的一部分,但据我所知,对它们的支持仅限于基于WebKit/KHTML的浏览器,如Safari,Chrome,Konqueror和OmniWeb.

使用您的示例代码,这将看起来像:

body    {
    font-size: 62.5%; /* Resets 1em to 10px */
    font-family: Verdana, Arial, Sans-Serif;
    background-color: #9D5922;
    color: #000;
    margin-left: auto;
    margin-right: auto;
    margin: 0;
    padding: 0; 
    background: url("images/top.gif") left bottom repeat,
                url("images/desk.gif") left bottom repeat;
}
Run Code Online (Sandbox Code Playgroud)


Mik*_*e B 5

我已经在一个重复的问题中发布了解决方案,但对于可能需要此信息的任何人,我也会在此处发布.

据我所知,不可能将它放在同一层,但可以将几个图像放在彼此之上的单独div中,并且已经由流行的可用性测试网站Silverback实现(请查看背景信息)看看它是如何分层的).如果查看源代码,您可以看到背景由多个图像组成,彼此叠加.

这篇文章展示了如何在维生素上找到效果.在A List Apart上可以找到用于包裹这些"洋葱皮"层的类似概念.

  • 这是一个比"接受"的答案更有用的答案. (2认同)

小智 4

简而言之,这是不可能的。您可以执行此操作,但需要向页面添加第二个 HTML 对象才能使其正常工作。例如,在身体正下方放置一个 div 块,并将第二个背景分配给该对象。

希望这可以帮助!

  • 实际上,在CSS3中,通过边框图像 - 请参阅http://www.w3.org/TR/2002/WD-css3-border-20021107/(据我所知,只有Safari和FF3.1支持这一点) (2认同)