导航栏下拉菜单不能正常显示

问题描述:

我希望导航栏上的下拉菜单足够宽,其中的文本可以正常显示,但它受限于鼠标悬停的按钮的大小以激活它。我希望下拉宽度大于按钮的宽度。导航栏下拉菜单不能正常显示

标题在浏览器中显示得很好,所以不太确定为什么它在小提琴中没有对齐。

#center-title { 
 
    width: 200px; 
 
    font-size: 30px; 
 
    color: white; 
 
    position: fixed; 
 
    left: 50%; 
 
    transform: translateX(-50%); 
 
    text-align: center; 
 
} 
 
#cog { 
 
    width: 20px; 
 
    height: 20px; 
 
    margin-right: 50px; 
 
    margin-top: 15px; 
 
} 
 
#dropdown { 
 
    float: right; 
 
    position: relative; 
 
    display: inline-block; 
 
} 
 
#dropdown-content { 
 
    display: none; 
 
    position: absolute; 
 
    background-color: #f9f9f9; 
 
    min-width: 160px; 
 
    box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0#2); 
 
} 
 
#dropdown-content a { 
 
    color: black; 
 
    padding: 12px 16px; 
 
    text-decoration: none; 
 
    display: block; 
 
} 
 
#dropdown-content a:hover { 
 
    background-color: #f1f1f1 
 
} 
 
#dropdown:hover #dropdown-content { 
 
    display: block; 
 
} 
 
nav { 
 
    background-color: #2b569a; 
 
    width: 100%; 
 
    height: 50px; 
 
    margin-top: 0; 
 
}
<nav> 
 
    <div class="center"> 
 
    <h1 id="center-title"> Blocs </h1> 
 
    </div> 
 
    <div id="dropdown"> 
 
    <img id="cog" src="/static/images/cog2.png" alt="" /> 
 
    <div id="dropdown-content"> 
 
     <a href="profile.html"> Profile </a> 
 
     <a href="settings.html"> Settings </a> 
 
     <a href="logs.html"> Logs </a> 
 
     <a href="emails.html"> Email list </a> 
 
    </div> 
 
    </div> 
 
</nav>

+0

你不必为你的'center'类的任何CSS? –

+0

@BviLLe_Kid给出了这个问题的描述,我不会担心'.center'类缺失。 JSFiddle和粘贴代码不一样更有趣。 – hungerstar

+0

@hungerstar你在哪里看到他们不一样? –

添加right: 0;#dropdown-content

#center-title { 
 
    width: 200px; 
 
    font-size: 30px; 
 
    color: white; 
 
    position: fixed; 
 
    left: 50%; 
 
    transform: translateX(-50%); 
 
    text-align: center; 
 
} 
 
#cog { 
 
    width: 20px; 
 
    height: 20px; 
 
    margin-right: 50px; 
 
    margin-top: 15px; 
 
} 
 
#dropdown { 
 
    float: right; 
 
    position: relative; 
 
    display: inline-block; 
 
} 
 
#dropdown-content { 
 
    display: none; 
 
    position: absolute; 
 
    right: 0; 
 
    background-color: #f9f9f9; 
 
    min-width: 160px; 
 
    box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0#2); 
 
} 
 
#dropdown-content a { 
 
    color: black; 
 
    padding: 12px 16px; 
 
    text-decoration: none; 
 
    display: block; 
 
} 
 
#dropdown-content a:hover { 
 
    background-color: #f1f1f1 
 
} 
 
#dropdown:hover #dropdown-content { 
 
    display: block; 
 
} 
 
nav { 
 
    background-color: #2b569a; 
 
    width: 100%; 
 
    height: 50px; 
 
    margin-top: 0; 
 
}
<nav> 
 
    <div class="center"> 
 
    <h1 id="center-title"> Blocs </h1> 
 
    </div> 
 
    <div id="dropdown"> 
 
    <img id="cog" src="/static/images/cog2.png" alt="" /> 
 
    <div id="dropdown-content"> 
 
     <a href="profile.html"> Profile </a> 
 
     <a href="settings.html"> Settings </a> 
 
     <a href="logs.html"> Logs </a> 
 
     <a href="emails.html"> Email list </a> 
 
    </div> 
 
    </div> 
 
</nav>

您可以使用显示:而不是使用浮动的和显示器挠性,:inline-block的对于布局。

检查这个片段

. #center-title { 
 
    width: 200px; 
 
    font-size: 30px; 
 
    color: white; 
 
    position: fixed; 
 
    left: 50%; 
 
    transform: translateX(-50%); 
 
    text-align: center; 
 
} 
 
#cog { 
 
    width: 20px; 
 
    height: 20px; 
 
    margin-right: 50px; 
 
    margin-top: 15px; 
 
} 
 
.center { 
 
    margin: auto; 
 
} 
 
#dropdown-content { 
 
    display: none; 
 
    position: absolute; 
 
    background-color: #f9f9f9; 
 
    min-width: 160px; 
 
    right: 20px; 
 
    box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0#2); 
 
} 
 
#dropdown-content a { 
 
    color: black; 
 
    padding: 12px 16px; 
 
    text-decoration: none; 
 
    display: block; 
 
} 
 
#dropdown-content a:hover { 
 
    background-color: #f1f1f1 
 
} 
 
#dropdown:hover #dropdown-content { 
 
    display: block; 
 
} 
 
nav { 
 
    background-color: #2b569a; 
 
    width: 100%; 
 
    height: 50px; 
 
    margin-top: 0; 
 
    display: flex; 
 
    justify-content: flex-end; 
 
    align-content: center; 
 
}
<nav> 
 
    <div class="center"> 
 
    <h1 id="center-title"> Blocs </h1> 
 
    </div> 
 
    <div id="dropdown"> 
 
    <img id="cog" src="/static/images/cog2.png" alt="" /> 
 
    <div id="dropdown-content"> 
 
     <a href="profile.html"> Profile </a> 
 
     <a href="settings.html"> Settings </a> 
 
     <a href="logs.html"> Logs </a> 
 
     <a href="emails.html"> Email list </a> 
 
    </div> 
 
    </div> 
 
</nav> 
 
</div>

希望它可以帮助