z-index的问题

时间:2012-12-14 16:32:32

标签: javascript html css z-index

我知道这里有很多关于z-index的问题,但我现在使用z-index已经有一段时间了,它总是运行良好,但是现在我在这个问题上苦苦挣扎而我只是不这样做理解为什么它不起作用,因为我认为我已经做了所有必要的步骤。

的test.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>

的style.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所以红色框需要落后于蓝色框。

提前致谢

2 个答案:

答案 0 :(得分: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/

答案 1 :(得分: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>