【问题标题】:HTML5 / CSS - Expand Horizontal MenuHTML5 / CSS - 展开水平菜单
【发布时间】:2019-04-05 12:56:52
【问题描述】:

我花了大约 1 天的时间来解决这个问题,但我没有得到任何结果。 我需要创建一个带有一些链接的菜单,当我将鼠标悬停在父 <li> 上时,它们会出现在它旁边。类似于下拉菜单,但在水平方向。

编辑: *“Uscite”和“指南”链接出现在“博客”附近,其他链接 当我移出鼠标时需要向右滑动并返回*

我尝试使用display: nonedisplay: block,这似乎可行,但使用此方法我无法应用任何类型的过渡,因此结果有点难看。 我也尝试使用 google,但找到的每个线程都对我没有帮助。

谁能帮帮我? 在这个链接中你可以找到我的代码:Codepen Link

.mpx_nav {
    background-color: rgba(98, 98, 98, 1);
    width: 100%;
    height: 40px;
}
.nav_menu a{
    display: inline-block;
    padding: 0 1em;
    text-decoration: none;
    list-style: none;
    color: #eee;
    line-height: 40px;
    -webkit-transition: all .3s ease-in-out;
    -moz-transition: all .3s ease-in-out;
    -o-transition: all .3s ease-in-out;
    transition: all .3s ease-in-out;
}
.nav_menu a:hover {
    background-color: #eee;
    color: #333;
    font-weight: 700;
}
.dropdown {
    position: relative;
    display: inline-block;
}
.dropdown-content {
    display: none;
    position: absolute;
/*    background-color: rgba(98, 98, 98, 1);*/
    background-color: #eee;
    min-width: 160px;
    box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
    z-index: 5;
}
.dropdown-content a {
    color: rgb(98, 98, 98);
    padding: 12px 16px;
    text-decoration: none;
    display: block;
}
.dropdown-content a:hover {
    background-color: rgb(98, 98, 98);
    color: #eee;
}
.dropdown:hover .dropdown-content {
    display: block;
}
<div class="mpx_nav">
			<ul class="nav_menu container">
				<a href="index.html"><li class="menu_item">Home</li></a>
				<a href="portfolio.html"><li class="menu_item">Portfolio</li></a>
                <div class="dropdown">
                    <a href="#"><li class="menu_item dropdown">Blog</li></a>
                    <div class="dropdown-content">
                        <a href="#">Uscite</a>
                        <a href="#">Guide</a>
                    </div>
                </div>   
				<a href="#"><li class="menu_item">Su di Me</li></a>
				<a href="contact.html"><li class="menu_item">Contatti</li></a>
			</ul>
		</div>

非常感谢您

【问题讨论】:

    标签: css html menu collapse expand


    【解决方案1】:

    添加white-space:nowrap 使所有链接在一行中。看看下面的sn-p。

    .mpx_nav {
        background-color: rgba(98, 98, 98, 1);
        width: 100%;
        height: 40px;
    }
    .nav_menu li{
      display:inline-block;
      vertical-align : top
    }
    .nav_menu a{
        display: inline-block;
        padding: 0 1em;
        text-decoration: none;
        list-style: none;
        color: #eee;
        line-height: 40px;
        -webkit-transition: all .3s ease-in-out;
        -moz-transition: all .3s ease-in-out;
        -o-transition: all .3s ease-in-out;
        transition: all .3s ease-in-out;
        vertical-align : top
    }
    .nav_menu a:hover {
        background-color: #eee;
        color: #333;
        font-weight: 700;
    }
    .dropdown {
        /*position: relative;*/
        /*display: inline-block;*/
        white-space:nowrap;
    }
    .dropdown-content {
        display: inline-block;
        vertical-align : top
        /*position: absolute;*/
    /*    background-color: rgba(98, 98, 98, 1);*/
        /*background-color: #eee;*/
        /*min-width: 160px;*/
        /*box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);*/
        z-index: 5;
        width:0;
        overflow:hidden;
        -webkit-transition: all .3s ease-in-out;
        -moz-transition: all .3s ease-in-out;
        -o-transition: all .3s ease-in-out;
        transition: all .3s ease-in-out;
    }
    .dropdown-content a {
        /*color: rgb(98, 98, 98);*/
        /*padding: 12px 16px;*/
        text-decoration: none;
        
    }
    .dropdown-content a:hover {
        background-color: rgb(98, 98, 98);
        color: #eee;
    }
    .dropdown:hover .dropdown-content {
        /*display: inline-block;*/
        width:100%
    }
    <div class="mpx_nav">
    			<ul class="nav_menu container">
            <li class="menu_item"><a href="index.html">Home</a></li>
    				<li class="menu_item"><a href="portfolio.html">Portfolio</a></li>
                    <li class=" menu_item dropdown">
                        <a href="#">Blog</a>
                        <div class="dropdown-content">
                            <a href="#">Uscite</a>
                            <a href="#">Guide</a>
                        </div>
                    </li>  
            
    				<li class="menu_item"><a href="#">Su di Me</a></li>
    				<li class="menu_item"><a href="contact.html">Contatti</a></li>
    			</ul>
    		</div>

    【讨论】:

    • 非常感谢您的回复,但可能是因为我的英语不好,我没有以正确的方式提出问题。我的目标是让“博客”'
    • ' 附近的“uscite | Guide”链接,菜单中的其他链接向右滑动,当您移出鼠标时,2 个链接消失,其他链接返回左边。
  • @MikeAlFaverFavro 我已经改变了我的答案,看看它是否接近你的要求。你的HTML 标记无效,所以我做了一点改动。
  • 非常感谢!!那是我需要的!!
  • 【解决方案2】:

    .mpx_nav {
        background-color: rgba(98, 98, 98, 1);
        width: 100%;
        height: 40px;
    }
    .nav_menu a{
        display: inline-block;
        padding: 0 1em;
        text-decoration: none;
        list-style: none;
        color: #eee;
        line-height: 40px;
        -webkit-transition: all .3s ease-in-out;
        -moz-transition: all .3s ease-in-out;
        -o-transition: all .3s ease-in-out;
        transition: all .3s ease-in-out;
    }
    .nav_menu a:hover {
        background-color: #eee;
        color: #333;
        font-weight: 700;
    }
    .dropdown {
        position: relative;
        display: inline-block;
    }
    .dropdown-content {
        display: none;
        position: absolute;
    /*    background-color: rgba(98, 98, 98, 1);*/
        background-color: #eee;
        min-width: 160px;
        box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
        z-index: 5;
        white-space:nowrap
    }
    .dropdown-content a {
        color: rgb(98, 98, 98);
        padding: 12px 16px;
        text-decoration: none;
        
    }
    .dropdown-content a:hover {
        background-color: rgb(98, 98, 98);
        color: #eee;
    }
    .dropdown:hover .dropdown-content {
        display: inline-block;
    }
    <div class="mpx_nav">
    			<ul class="nav_menu container">
    				<a href="index.html"><li class="menu_item">Home</li></a>
    				<a href="portfolio.html"><li class="menu_item">Portfolio</li></a>
                    <div class="dropdown">
                        <a href="#"><li class="menu_item dropdown">Blog</li></a>
                        <div class="dropdown-content">
                            <a href="#">blog one</a>
                            <a href="#">blog two</a>
                        </div>
                    </div>   
    				<a href="#"><li class="menu_item">Su di Me</li></a>
    				<a href="contact.html"><li class="menu_item">Contatti</li></a>
    			</ul>
    		</div>
    你需要添加
    white-space:nowrap
    

    到您的 css 以在一行中对齐内容 如果您遇到任何困难,也可以使用此代码,请随时询问

    【讨论】:

    • 也谢谢你,但正如我之前回复的人一样,我问错了问题。对不起!我编辑主帖。如果无法满足我的要求,我将使用此解决方案。
    猜你喜欢
    相关资源
    最近更新 更多
    热门标签