如果不是位置,则Div设置为返回z-index:绝对/固定

时间:2013-09-08 22:18:31

标签: javascript css html

我有一个问题,在我的其他网站上,这一切都适合我,但对于我的新网站,它不是。但这是我的问题,我试图在我的网站上有不同的部分,所以我没有设置任何价值的部分的位置。左上方。我不是在CSS或其他任何东西中给他们postion:absolute,因为我希望他们“堆叠”。

但是现在,他们已经落后于我网站上的所有内容,好像z-index低于其他版本,但绝对不是我玩了多少。

这是我的代码,click here for an UPDATED example on JSFiddle.

HTML

<div id="bg_reg"></div>
<div id="bg_blur"></div>  
<div id="section2">You can't see this div.</div>

的Javascript

$(function() {

    // hide #back-top first
    $("#bg_blur").hide();

    // fade in #back-top
    $(function () {
        $(window).scroll(function () {
            if ($(this).scrollTop() > 70) {
                $('#bg_blur').fadeIn(600);
            } else {
                $('#bg_blur').fadeOut(600);
            }
        });
    });

}); 

CSS

#section2{
    width:100%;
    background:url(../images/white.jpg) #FFF;
    -webkit-box-shadow: 0px 0px 30px rgba(50, 50, 50, 1);
-moz-box-shadow:    0px 0px 30px rgba(50, 50, 50, 1);
box-shadow:         0px 0px 30px rgba(50, 50, 50, 1);
z-index:150;
} 
#bg_reg {
        background: url(../images/bg_reg.jpg) no-repeat right top;
        background-size: cover;
        position: fixed;
        bottom: 0%;
        left: 0%;
        width: 100%;
        height: 100%;
        -webkit-transition: opacity 500ms;
        -moz-transition: opacity 500ms;
        -o-transition: opacity 500ms;
        -ms-transition: opacity 500ms;
        transition: opacity 500ms;
        z-index:0;
    }

    #bg_blur {
        background: url(../images/bg_blur.jpg) no-repeat right top;
        background-size: cover;
        position: fixed;
        bottom: 0%;
        left: 0%;
        width: 100%;
        height: 100%;
        z-index:0;
    }

可能是一个非常愚蠢的问题,有人会轻易地知道答案,但我很难过。提前感谢您的帮助!

**我现在知道z-index不适用于非定位元素,但我怎样才能使这些网站内容有效?我让它在This site上按照我想要的方式工作,我无法找到我做的不同的事情。

2 个答案:

答案 0 :(得分:1)

我不确定您希望#section2出现在哪里,但为了使其在堆叠顺序中可见,只需按以下方式设置position: relative

#section2 {
    position: relative;
    height:100px;
    width:100%;
    background:#FFF;
    -webkit-box-shadow: 0px 0px 30px rgba(50, 50, 50, 1);
    -moz-box-shadow: 0px 0px 30px rgba(50, 50, 50, 1);
    box-shadow: 0px 0px 30px rgba(50, 50, 50, 1);
    z-index:150;
}

请参阅演示:http://jsfiddle.net/audetwebdesign/HM5Ct/

设置position: relative会将元素保留在文档流中,并允许它以新的堆叠顺序以及固定和绝对定位的元素进行渲染。

效果不错,善用CSS3技术!保持良好的工作。

答案 1 :(得分:0)

在规范中,元素必须定位才能拥有z-index。

CSS/Properties/z-index

  

点,注意
  仅适用于定位元素(position:absolute;,position:relative;或position:fixed;)。

如果您不想使用position: relative;,则需要应用position: absolute;


您还可以通过将负z-index应用于背景来归档相同的效果,因此您无需设置任何z-index或定位到其他元素。

http://jsfiddle.net/qSC7N/5/

#bg_blur {
    background: url(http://s7.postimg.org/lyra1ksah/bg_blur.jpg) no-repeat right top;
    background-size: cover;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: -1; <-----
}

来源:


编辑基于评论

在页面darrylhuffman.com上,您使用相同的技术,但#section1仍然不可见。 #section1内的文字会从其父级继承z-index:4,并将position:absolute;应用于#welcome,使其可见。

http://jsfiddle.net/UF9Bf/

<div id="section1">
    NOTICE THAT THIS TEXT IS NOT VISIBLE!
        <div id="welcome">
          THIS IS VISIBLE
            <center><span id="hdh">HELLO, MY NAME IS DARRYL HUFFMAN AND I</span>
            ...

#section1 { /*Still invisible*/
    width: 100%;
    height: 100%;
    z-index: 4;
}

#welcome {
    position: absolute; /* THIS MAKE THE TEXT VISIBLE */
    ...
}