gpt4 book ai didi

html - 如何使用 flexbox 在下拉菜单中定位子菜单

转载 作者:行者123 更新时间:2023-11-28 02:20:08 25 4
gpt4 key购买 nike

我想编写一个下拉菜单。我使用的代码只是 css,我使用 flexbox 制作下拉菜单。但是,我的问题是将我的子菜单放置在我的主菜单的正下方。我该怎么做?

我一直在寻找答案,但没有找到能准确描述我的问题的讨论帖。

Dropdown menu overlapping it's container inside flexbox

html,
body {
margin: 0;
padding: 0;
width: 100%;
height: 100%;
font-family: Arial, sans-serif;
font-size: 62.5%;
}

* {
box-sizing: border-box;
}

.content {
margin: 0 15%;
}


/* ########################################################################## */


/* Dropdownmenu */


/* ########################################################################## */

nav {
background-color: #F0F0F0;
font-size: 1.8rem;
}

nav ul {
list-style: none;
margin: 0;
padding: 0;
}

nav a {
text-decoration: none;
color: #666;
}

nav ul {
display: flex;
}

nav>ul li {
padding: 10px;
}

nav>ul>li>ul {
position: absolute;
display: flex;
flex-direction: column;
}

nav ul li ul li {
display: none;
}

.align-menu-right {
margin-left: auto;
}

.active {
background-color: #999;
}

.current-menu>a {
color: #E95D0F;
}

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

nav>ul>li:hover,
nav>ul>li>ul li:hover {
background-color: #CCC;
}

nav>ul>li:hover>a,
nav>ul>li>ul li:hover>a {
color: #FFF;
}

.current-menu:hover>a {
color: #E95D0F;
}
<!DOCTYPE html>
<html lang="de">

<head>
<meta charset="utf-8">
<title>Dropdownmenü</title>
<link rel="stylesheet" type="text/css" href="src/css/styles.css">
</head>

<body>

<div class="content">

<!-- ########################################################################## -->
<!-- Dropdownmenu -->
<!-- ########################################################################## -->

<div class="nav-container">
<nav>
<ul class="flex-container">

<li class="current-menu"><a href="#">Menü 1</a>
<ul>
<li class="current-menu"><a href="#">Untermenü 1-1</li></a>
<li><a href="#">Untermenü 1-2</li></a>
<li><a href="#">Untermenü 1-3</li></a>
</ul>
</li>

<li><a href="#">Menü 2</a>
<ul>
<li><a href="#">Untermenü 2-1</li></a>
<li><a href="#">Untermenü 2-2</li></a>
<li><a href="#">Untermenü 2-3</li></a>
</ul>
</li>

<li class="align-menu-right"><a href="#">Menü 3</a>
<ul>
<li><a href="#">Untermenü 3-1</li></a>
<li><a href="#">Untermenü 3-2</li></a>
<li><a href="#">Untermenü 3-3</li></a>
</ul>
</li>

<li><a href="#">Menü 4</a>
<ul>
<li><a href="#">Untermenü 4-1</li></a>
<li><a href="#">Untermenü 4-2</li></a>
<li><a href="#">Untermenü 4-3</li></a>
</ul>
</li>

</ul>
</nav>

</div>
</div>
</body>

</html>

最佳答案

您的问题是设置 padding:10px对于所有 <ul><li> .

nav > ul li{
padding: 10px;
}

尝试将它们与不同的类分开,然后进行样式设置。在下面的示例中,我添加了 .li-padding类,以便风格不同。

html, body{
margin: 0;
padding: 0;
width: 100%;
height:100%;
font-family: Arial, sans-serif;
font-size: 62.5%;
}

*{
box-sizing: border-box;
}

.content{
margin: 0 15%;
}

/* ########################################################################## */
/* Dropdownmenu */
/* ########################################################################## */

nav{
background-color: #F0F0F0;
font-size: 1.8rem;
}

nav ul{
list-style: none;
margin: 0;
padding: 0;
}

nav a{
text-decoration: none;
color: #666;
}

nav ul{
display: flex;
}

nav > ul{
padding: 10px;
}

.li-padding{
padding-right:10px
}

nav > ul > li > ul{
position: absolute;
display: flex;
flex-direction: column;
}

nav ul li ul li{
padding-top: 10px;
display: none;
}

.align-menu-right{
margin-left: auto;
}

.active{
background-color: #999;
}

.current-menu > a{
color:#E95D0F;
}

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

nav > ul > li:hover, nav > ul > li > ul li:hover{
background-color: #CCC;
}

nav > ul > li:hover > a, nav > ul > li > ul li:hover > a{
color: #FFF;
}

.current-menu:hover > a{
color:#E95D0F;
}
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="utf-8">
<title>Dropdownmenü</title>
<link rel="stylesheet" type="text/css" href="src/css/styles.css">
</head>
<body>

<div class="content">

<!-- ########################################################################## -->
<!-- Dropdownmenu -->
<!-- ########################################################################## -->

<div class="nav-container">
<nav>
<ul class="flex-container">

<li class="current-menu li-padding"><a href="#" >Menü 1</a>
<ul>
<li class="current-menu"><a href="#">Untermenü 1-1</li></a>
<li><a href="#">Untermenü 1-2</li></a>
<li><a href="#">Untermenü 1-3</li></a>
</ul>
</li>

<li><a href="#">Menü 2</a>
<ul>
<li><a href="#">Untermenü 2-1</li></a>
<li><a href="#">Untermenü 2-2</li></a>
<li><a href="#">Untermenü 2-3</li></a>
</ul>
</li>

<li class="align-menu-right li-padding"><a href="#">Menü 3</a>
<ul>
<li><a href="#">Untermenü 3-1</li></a>
<li><a href="#">Untermenü 3-2</li></a>
<li><a href="#">Untermenü 3-3</li></a>
</ul>
</li>

<li><a href="#">Menü 4</a>
<ul>
<li><a href="#">Untermenü 4-1</li></a>
<li><a href="#">Untermenü 4-2</li></a>
<li><a href="#">Untermenü 4-3</li></a>
</ul>
</li>

</ul>
</nav>

</div>
</div>
</body>
</html>

关于html - 如何使用 flexbox 在下拉菜单中定位子菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48256262/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com