Html 带有纯CSS的垂直弹出式菜单

Html 带有纯CSS的垂直弹出式菜单,html,css,Html,Css,请检查下面的代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <title>hover-navigation</title>

请检查下面的代码

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">      
        <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
        <title>hover-navigation</title>

        <meta name="description" content="">
        <meta name="author" content="yesvin">
        <meta name="viewport" content="width=device-width; initial-scale=1.0">

        <link rel="shortcut icon" href="/favicon.ico">
        <link rel="apple-touch-icon" href="/apple-touch-icon.png">

        <style>
            html, body {
                height: 100%;
                margin: 0;
                padding: 0;
            }
            .menuContainer{
                width:100px;
                height:100vh;
                background:#ccc;
                z-index:1;                  
            }
            .menuContainer ul {
                padding:20px 0 0 0;
                margin:0;   
            }
            .menuContainer ul li {
                padding:10px;
                margin:0;
                list-style: none;               
                border-bottom:solid 1px #000;
                font-family:'Arial';
                font-size:16px;
                background:#00ACD6;
                position: relative;
            }
            .menuContainer ul li:hover{             
                background:#00A65A;
                cursor:pointer;
            }
            .menuContainer ul li a{
                text-decoration:none;               
                color:#000;             
            }
            .menuContainer ul li:hover a{
                text-decoration:none;               
                color:#fff;
            }
            .menuContainer ul li a:after{
                content:' •'    
            }

            .menuContainer ul li ul {               
                position: absolute;             
                top:-20px;
                left:-100px;
                height:100vh;
                width:0px;
                z-index:-1;

                -webkit-transition: width 0.4s, left 0.4s;
                -o-transition: width 0.4s, left 0.4s;
                transition: width 0.4s, left 0.4s;
            }
            .menuContainer ul li:hover ul {             
                left:100px;
                width:100px;    
            }
        </style>

    </head>

    <body>
        <div class="menuContainer">
            <ul>
                <li><a href="#">Frontend</a>
                    <ul>
                        <li>HTML</li>
                        <li>CSS</li>
                        <li>Javascript</li>
                    </ul>                   
                </li>                                   
                <li><a href="#">Backend</a>
                    <ul>
                        <li>PHP</li>
                        <li>MYSQL</li>
                        <li>ASP</li>
                        <li>JSP</li>                        
                    </ul>
                </li>
            </ul>
        </div>
    </body>
</html>

悬停导航
html,正文{
身高:100%;
保证金:0;
填充:0;
}
梅努康塔纳先生{
宽度:100px;
高度:100vh;
背景:#ccc;
z指数:1;
}
梅努康塔纳{
填充:20px0;
保证金:0;
}
梅努康塔纳·乌利先生{
填充:10px;
保证金:0;
列表样式:无;
边框底部:实心1px#000;
字体系列:'Arial';
字体大小:16px;
背景:#00ACD6;
位置:相对位置;
}
menuContainer ul li先生:悬停{
背景:#00A65A;
光标:指针;
}
梅努康塔纳先生{
文字装饰:无;
颜色:#000;
}
.menuContainer ul li:将鼠标悬停在a上{
文字装饰:无;
颜色:#fff;
}
梅努康塔纳·乌尔·李a:之后{
内容:“•”
}
梅努康塔纳先生
位置:绝对位置;
顶部:-20px;
左:-100px;
高度:100vh;
宽度:0px;
z指数:-1;
-webkit过渡:宽度0.4s,左侧0.4s;
-o型过渡:宽度0.4s,左侧0.4s;
过渡:宽度0.4s,左侧0.4s;
}
menuContainer ul li:悬停ul{
左:100px;
宽度:100px;
}
    • HTML
    • CSS
    • Javascript
    • PHP
    • MYSQL
    • ASP
    • JSP
这里的问题是“z-index”。因此,当我将鼠标悬停在“li”上时,子菜单会打开,但当我将鼠标悬停在下一个“li”上时,子菜单会隐藏

但删除“z-index”或为“container”和“ul-li-ul”保留相同的“z-index”效果很好。但子菜单在主菜单上设置动画

我需要子菜单应该在容器后面。这方面的解决办法是什么

检查小提琴以进行演示

提前感谢…

查看以下内容:

.menuContainer ul li ul {
    position: absolute;
    overflow: hidden;
    top:-20px;
    left:100px;
    height:100vh;
    width:0px;
    z-index:0;
    -webkit-transition: width 0.4s;
    -o-transition: width 0.4s;
    transition: width 0.4s;
}
.menuContainer ul li:hover ul {
    width:100px;
    z-index:1;
}

只需将这些代码行与您的代码一起更改,它就可以按照您的需要工作。为了便于解释:我们没有设置左侧位置的动画(我们无论如何都看不到),而是设置宽度的动画。为了使文本在整个时间内都能很好地显示,我们使用“
溢出:隐藏”
,这样文本就不会被固定。另外,由于我们现在只是设置宽度的动画,左位置最初设置为100px。我做的最后一个更改是更改悬停时的z索引,这样“旧”下拉列表就不会在“新”下拉列表上设置动画了。

这些弹出式菜单是2000年代早期的菜单,你不觉得吗?是的……我知道它的旧菜单。但是需要修复现有的项目。所以我不想改变整个代码。嗨,弗雷德里克,它按预期工作。谢谢你的帮助。没问题:-)很高兴我能帮忙