我正在尝试在导航栏中的按钮下创建一个下拉菜单,但我无法让它正常工作。
正如你在小提琴中看到的那样,我有一个带有"设置的工作导航栏"按钮(锤子+扳手),显示"黑暗主题"选项。
问题在于:我无法想出一种方法来制作黑暗的主题"选项属于"设置"按钮因为它在导航栏内部,并且将浮动按钮添加到导航栏会导致一些难看的效果(例如边框和背景颜色不再适合)。
Link to the fiddle我正在谈论。 下面是导航栏的HTML和下面的问题按钮:
MailAddress.Address
这是有问题的CSS:
<ul class="navBar">
<div class="divLiLeft">
<li>
<a>
<button class="navButton">Button 1</button>
</a>
</li>
</div>
<div class="divLiLeft">
<li>
<a>
<button class="navButton">Button 2</button>
</a>
</li>
</div>
<div class="divLiLeft">
<li>
<a>
<button class="navButton">Button 3</button>
</a>
</li>
</div>
<div>
<div class="divLiRight">
<li>
<button id="dropButton" class="dropButton"></button>
</li>
</div>
</div>
</ul>
<div id="dropContent" class="dropContent">
<button id="change" class="navButton"></button>
</div>
PS:您可能需要展开窗口才能显示设置按钮。
答案 0 :(得分:1)
您应该将[{1}}添加到您的div [{1}}并添加position:relative;
到.divLiRight
答案 1 :(得分:0)
.dropdown
课程使用position:relative
,当我们希望将下拉内容放在下拉按钮正下方时(使用position:absolute
),这是必需的。
.dropdown-content
类包含实际的下拉菜单。它默认是隐藏的,并将在悬停时显示(见下文)。请注意,min-width
设置为160px
。随意改变这一点。提示:如果您希望下拉内容的宽度与下拉按钮一样宽,请将宽度设置为100%(并overflow:auto
以启用在小屏幕上滚动)。
我们使用box-shadow
属性使下拉菜单看起来像“卡片”,而不是使用边框。我们还使用z-index
将下拉列表放在其他元素的前面。
当用户将鼠标移到下拉按钮上时,:hover
选择器用于显示下拉菜单。
.body,
.bodyNew {
background-color: #EEEEEE;
padding-top: 40px;
transition-duration: 0.4s;
width:100%;
height:100%;
overflow: hidden;
}
.bodyNew {
background-color: #202225;
}
.navBar,
.navBarNew {
list-style-type: none;
overflow: hidden;
position: fixed;
top: 0;
left: 0;
padding: 0;
margin: 0px;
border-bottom: solid 1px #3E3D3D;
width: 100%;
background-color: #747474;
transition-duration: 0.4s;
min-width: 500px;
}
.navBarNew {
border-bottom: solid 1px #44474C;
width: 100%;
background-color: #101217;
}
.divLiLeft {
display: inline-block;
float: left;
}
.divLiRight {
display: inline-block;
float: right;
}
.navButton,
.navButtonNew {
padding: 5px;
font-size: 25px;
background-color: #747474;
color: #CCCCCC;
border-right: solid 1px #3E3D3D;
border-top: none;
border-left: none;
border-bottom: none;
transition-duration: 0.4s;
cursor: pointer;
}
.navButton:hover {
background-color: #CCCCCC;
color: #747474;
}
.navButton::-moz-focus-inner {
border: none;
}
.navButtonNew {
background-color: #101217;
color: #44474C;
border-right: solid 1px #44474C;
}
.navButtonNew:hover {
background-color: #63666E;
color: #0C1018;
}
.navButtonNew::-moz-focus-inner {
border: none;
}
.dropdown {
top: -48px;
position: relative;
display: inline-block;
right:9px;
}
.dropdown-content {
display: none;
position: absolute;
background-color: #f9f9f9;
min-width: 140px;
box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2);
z-index: 1;
}
.dropdown-content a {
color: black;
padding: 12px 16px;
text-decoration: none;
display: block;
}
.dropdown:hover .dropdown-content {
display: block;
}
.dropdown:hover .dropbtn {
background-color: #CCCCCC;
color: #747474;
}
.dropbtn{
border-left:solid 1px #3E3D3D;
}
<!DOCTYPE html>
<html>
<head>
</head>
<body class="body">
<ul class="navBar">
<div class="divLiLeft">
<li>
<a>
<button class="navButton">Button 1</button>
</a>
</li>
</div>
<div class="divLiLeft">
<li>
<a>
<button class="navButton">Button 2</button>
</a>
</li>
</div>
<div class="divLiLeft">
<li>
<a>
<button class="navButton">Button 3</button>
</a>
</li>
</div>
</ul>
<div class="divLiRight">
<div class="dropdown">
<button class="dropbtn navButton">Dropdown</button>
<div class="dropdown-content">
<a href="#">Link 1</a>
<a href="#">Link 2</a>
<a href="#">Link 3</a>
</div>
</div>
</div>
</body>
</html>