0

我知道这里有很多关于 z-index 的问题,但我现在使用 z-index 有一段时间了,它总是工作得很好,但现在我在这个问题上苦苦挣扎,我只是不明白为什么会这样不工作,因为我认为我做了所有必要的步骤。

测试.html

<!DOCTYPE html>
<html>
    <head>
        <meta content="text/html;charset=utf-8" http-equiv="Content-Type">
        <meta content="utf-8" http-equiv="encoding">

        <link href="style.css" rel="stylesheet" type="text/css" />

        <script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.2.min.js " type="text/javascript"></script>
        <script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.9/jquery.validate.min.js" type="text/javascript"></script>
        <script src="http://ajax.aspnetcdn.com/ajax/mvc/3.0/jquery.validate.unobtrusive.js" type="text/javascript"></script>

        <script type="text/javascript">
            $(document).ready(function(){
                $('.boxGrid').hover(function(){
                    $(".boxCaption", this).stop().animate({bottom:'0px'},{queue:false,duration:300});
                }, function() {
                    $(".boxCaption", this).stop().animate({bottom:'-121px'},{queue:false,duration:300});
                });
            });
        </script>
    </head>
    <body>
        <div style="position: relative; width: 226px; height: 246px;">
            <div class="boxGrid">
                <div class="buttonBack blogImg">
                    <div class="boxCaption">
                        <h3>Top-Blog</h3>
                    </div>
                </div>
            </div>
        </div>
    </body>
</html>

样式.css

.boxGrid
{
    width: 226px;
    height: 246px;
    background-image: url(buttonBorder.png);
    position: absolute;
    top: 0px;
    left: 0px;
    z-index: 100;
}

.buttonBack
{
    position: absolute;
    top: 12px;
    left: 13px;
    border: 0px;
    width: 200px;
    height: 223px;
    z-index: 50;
    overflow: hidden;
}

.blogImg
{
    background-image: url(blogButton.png);
}

.boxCaption
{ 
    position: absolute;  
    background: url(caption.png);
    height: 121px;
    width: 100%;
    bottom: -121px;
    text-align: center;
}

.boxCaption h3
{
    font-size: 30px;
    color: #fff;
}

所以我希望这个.boxGrid类在类之上.buttonBack,我position:向所有使用 z-index 的 div 添加了属性。

JsFiddle所以红色盒子需要在蓝色盒子后面。

提前致谢

4

2 回答 2

3

您不能在其父元素下“隐藏”子元素,因为当您为父元素设置 z-index 时,子元素也会受到影响。只是让他们成为兄弟姐妹。

 <div style="position: relative; width: 226px; height: 246px;">
    <div class="boxGrid"></div>
    <div class="buttonBack blogImg">
        <div class="boxCaption">
            <h3>Top-Blog</h3>
        </div>
    </div>
 </div>

看看这个jsfiddle:http: //jsfiddle.net/ZwC9n/

于 2012-12-14T16:59:23.483 回答
2

您将 div.buttonBack 作为 div.boxGrid 的子级。您可能需要重新排序 HTML。

<div style="position: relative; width: 226px; height: 246px;">
    <div class="buttonBack></div>
    <div class="boxGrid">
        <div blogImg">
            <div class="boxCaption">
              <h3>Top-Blog</h3>
         </div>
     </div>
</div>
于 2012-12-14T17:09:07.010 回答