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

查看:79
本文介绍了javascript - 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>

解决方案

因为你的.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兼容性以外)。

这篇关于javascript - css样式不出现在该出现的位置?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆