css样式不出现在该出现的位置?

1.鼠标移入时候样式显示了,控制台和Element也显示,但是Element显示的和页面中该出现的现象不一致,求解
代码如下
<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <title></title>
    <style type="text/css">
        ul,li{
            list-style: none;
        }
        .top{
            position: absolute;
            z-index: 1;
        }
        .top li{
            height: 20px;
            width: 80px;
            display: inline-block;
            margin: 0 10px;
            border-bottom: 2px solid darkgray;
        }
        .boder{
            position: absolute;
            top: 0;
            z-index: 0;
        }
        .boder li{
            height: 28px;
            width: 80px;
            display: inline-block;
            margin: 0 10px;
            background: yellowgreen;
            display: none;
        }
    </style>
</head>
<body>
    <ul class="top">
        <li>Airline</li>
        <li>Schedule</li>
        <li>Deals</li>
        <li>Arinks</li>
        <li>Settings</li>
    </ul>
    <ul class="boder">
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
    </ul>
    <div></div>
</body>
<script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
<script type="text/javascript">
    $(".top li").mouseover(function () {
        $(this).css({color:"yellowgreen",borderBottom:"2px solid yellowgreen"}).siblings().css({color:"black",borderBottom:"2px solid darkgray"});
        var x = $(this).index();
        console.log(x);
        $(".boder li").eq(x).slideDown(500).siblings().css("display","none");
    })
</script>

</html>

阅读 2.7k
2 个回答

因为你的.boder li的整个定位都不对,也不应该通过display属性去控制,因为display: none的元素是不占据文档空间的。
其实想要实现类似效果。。纯css足以。

补充:css3的版本,比较粗糙。

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title></title>
    <style type="text/css">
        ul,li{
            list-style: none;
        }
        .top{
            position: absolute;
            z-index: 1;
        }
        .top li{
            display: relative;
            height: 20px;
            width: 80px;
            display: inline-block;
            margin: 0 10px;
            border-bottom: 2px solid darkgray;
        }
        .top li:hover {
            color: yellowgreen;
            border-bottom: 2px solid yellowgreen;
        }
        .top li:hover::before {
            display: block;
            top: 0;
            background-color: red;
        }
        .top li:before {
            display: block;
            content: ' ';
            z-index: -1;
            width: 80px;
            height: 26px;
            position: absolute;
            top: -20px;
            transition: top 500ms linear;
        }
    </style>
</head>
<body>
    <ul class="top">
        <li>Airline</li>
        <li>Schedule</li>
        <li>Deals</li>
        <li>Arinks</li>
        <li>Settings</li>
    </ul>
</body>
</html>

jquery虽然动画库比较方便易用,但是现在css3动画在很多方面都更加优秀一点(除了IE兼容性以外)。

因为display: none的元素是不占据文档空间的。因为display: none的元素是不占据文档空间的。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题