0

我正在尝试为整个页面制作一个半透明的背景图像,其余内容分层(不透明)。但是,当我尝试对 div 进行分层时,页面内容也是半透明的。我试过切换 z-indexes 并没有改变任何东西。

这是两种相关的样式

#backgroundImage
{
    background-image: url('/Images/background.jpg');
    background-size: 100%;
    opacity: 0.5;
    height: 100%;
    width: 100%;
    position: absolute;
    z-index: 1;
}

#PageWrapper
{
    z-index: 2;
}

这是页面标记

<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Frontend.master.cs" Inherits="PTMS.MasterPages.Frontend" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">
    <title></title>
    <asp:ContentPlaceHolder ID="head" runat="server">
    </asp:ContentPlaceHolder>
    <link href="../Styles/Styles.css" rel="stylesheet" type="text/css" />
</head>

<body>    
    <form id="form1" runat="server">
        <asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="True">
            <Scripts>
                <asp:ScriptReference runat="server" Path="~/Scripts/jquery-1.4.1.min.js"/>
            </Scripts>
        </asp:ScriptManager>
        <div id="backgroundImage">
        <div id="PageWrapper" >
            <div id="Header">
                <asp:SiteMapPath ID="MainMenuSiteMapPath" runat="server"></asp:SiteMapPath>
            </div>
            <div id="RightSide">
                <UserControls:Sidebar ID="RightSidebar" runat="server" />
            </div>
            <div id="LeftSide">
                <UserControls:Navbar ID="LeftSidebar" runat="server" />
            </div>
            <div id="MainContent">                
                <asp:ContentPlaceHolder ID="cpMainContent" runat="server">        
                </asp:ContentPlaceHolder>
            </div>

            <div id="Footer">
                <asp:LoginName ID="LoginName1" runat="server" FormatString="Logged in as {0}" />
                <LoggedInTemplate>
                    (<asp:LoginStatus ID="LoginStatus1" runat="server" />)
                </LoggedInTemplate>
            </div>
        </div>
        </div>
    </form>
</body>

</html>
4

2 回答 2

0

要使z-index工作,您还需要拥有position: absolute, relative, or fixed.

所以你的PageWrapper风格没有任何这个位置值,所以它不起作用。

此外 backgroundImage 层必须是单独的,并且 pageWrapper 不能在他里面。

查看最终结果:http: //jsfiddle.net/EnUaK/

于 2013-02-20T02:22:12.113 回答
0

解决了这个问题。我移动了 backgroundImage div 的结束标记,因此它不再包装 PageWrapper div,然后设置 backgroundImage div 的不透明度并添加 position: absolute; 到我的 PageWrapper。

于 2013-02-20T02:33:10.120 回答