html - 使用 CSS3 和 HTML5 向下滑动菜单栏

标签 html css

我有一个我一直在开发的 HTML5 和 CSS3 菜单栏,我试图让它在悬停在 div 上时可见。对我做错的任何帮助将不胜感激。

这是我的代码,提前谢谢你:

HTML

<!DOCTYPE html>
<html>
    <head>
        <title>
            Navigation
        </title>
        <link rel="stylesheet" type="text/css" href="Navigation.css"/>
    </head>
    <body>
        <nav>
            <ul>
                <li><a href="#">Home</a></li>
                <li><a href="#">Menu 1</a>
                    <ul>
                        <li><a href="#">SubMenu 1</a></li>
                        <li><a href="#">SubMenu 2</a></li>
                        <li><a href="#">SubMenu 3</a></li>
                    </ul>
                </li>
                <li><a href="#">Menu 2</a>
                    <ul>
                        <li><a href="#">SubMenu 4</a></li>
                        <li><a href="#">SubMenu 5</a></li>
                    </ul>
                </li>
                <li><a href="#">Menu 3</a></li>
            </ul>
        </nav>
        <div id="hideshow">
            <center>
                <p style="font-size: 25px">
                    .&nbsp.&nbsp.
                </p>
            </center>
        </div>
    </body>
</html>

CSS

nav ul ul 
{
    display: none;
}

nav
{
    display: none;
}

nav ul li:hover > ul 
{
    display: block;
}

nav ul 
{
    margin-right: 1em;
    display: inline-table;
    margin-left: 0;
    padding-left: 0;
    opacity: 0.6;
    margin: 0;
    width: 100%;
    background: #C6E2FF; 
    box-shadow: 0px 0px 9px rgba(0,0,0,0.15);
    padding: 0 20px;
    border-radius: 10px;  
    list-style: none;
    position: relative;
}

nav ul li 
{
    float: left;
    background-color: #ff5050;
    border-right: 20px solid #ff0000;
    border-left: 20px solid #ff0000;
}

nav ul li:hover 
{
    border-radius: 10px;
    background: #ffa000;
    border-right: 40px solid #ff0000;
    -webkit-transition: all 1s ease;
}

nav ul li:hover a
{
    color: #fff;
}

nav ul li a 
{
    display: block; padding: 25px 40px;
    color: #e0e0e0; text-decoration: none;
}

nav ul ul 
{
    border-radius: 0px;
    background: #C6E2FF; border-radius: 0px; padding: 0;
    position: absolute; top: 100%;
}

nav ul ul li 
{
    float: none; 
    border-top: 3px solid #C6E2FF;
    border-bottom: 3px solid #C6E2FF;
    position: relative;     
}

nav ul ul li a 
{
    padding: 15px 40px;
    color: #fff;
}

nav ul ul li a:hover 
{
    background: #ff5050;
    border-left: 12px solid #ffa000;
    -webkit-transition: all 1s;
}

nav ul li:hover > ul ul li
{
    background: #ff5050;
    border-left: 12px solid #ffa000;
    -webkit-transition: all 1s;
}

nav ul ul li:hover
{
    background: #ff5050;
    border-left: 12px solid #ffa000;
    -webkit-transition: all 1s;
    background-color: #ff5050;
}

nav ul:hover
{
    opacity: 1;
    -webkit-transition: all 1s;
}

#hideshow
{
    border: 2px dashed #e0e0ee;
    box-shadow: 0px 0px 9px rgba(0,0,0,0.15);
    width: 100%;
    background-color: #e0e0e0;
}

#hideshow:hover  nav  ul
{
    display: inline-table;
    border: 2px dashed #e0e0ee;
    box-shadow: 0px 0px 9px rgba(0,0,0,0.15);
}

#hideshow  p
{
    color: #9C9C78;
}

最佳答案

你可以通过使用“相邻兄弟组合器”来做到这一点

#hideshow:hover + nav {
    display: block;
}

这是一个 jsfiddle:example

但是这样你就不能用了。如果你想使用它,你必须重组你的标记。例如,将 nav 元素放入 div 元素中。 这是另一个 jsfiddle:Another example

关于html - 使用 CSS3 和 HTML5 向下滑动菜单栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22563715/

相关文章:

css - LESS css : trying to use the red, green, and blue函数获取rgb值然后插入渐变

html - 以 CSS 为中心的 div 在 Firefox 中不居中

javascript - 使用 JSON 填充 DataTable,需要在一个列中呈现一个超链接,其中包含在不同 JSON 字段中找到的值

php - 图像 DIV 覆盖子 DIV

javascript - 如何让多次点击按钮做不同的事情

html - 如何删除伪 `after` 内容中我丑陋的箭头标记的底部

php - 如何选择一个类的多个对象进行 css 操作

html - 表格中的行间距

javascript - 隐藏一个 <div> 并在同一位置显示一个新的?

javascript - 当子链接处于事件状态时,将事件类添加到父 li