導航欄右側:登錄狀態顯示「用戶名 + 下拉箭頭」;未登錄顯示「用戶圖標」。兩者垂直對齊不一致,視覺別扭。
原始 JSP 片段(Struts2 標簽):
<s:if test="userName!=null">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">${user.userName}<strong class="caret"></strong></a>
</s:if>
<s:else>
<a href="..."><img src="..." alt="登錄/註冊"></a>
</s:else>
.navbar-right .dropdown-toggle {
margin-left: 12px; /* 與左側項目拉開距離 */
font-weight: 600; /* 字體加粗,視覺權重提升 */
vertical-align: middle; /* 與圖標基線對齊 */
line-height: 34px; /* 與 navbar 高度一致 */
}
.navbar-right > a > img {
vertical-align: middle;
margin-top: -2px; // 微調圖標垂直居中
}
<ul class="nav navbar-nav navbar-right user-area">
<li class="dropdown">
<a class="dropdown-toggle" href="#" data-toggle="dropdown">
<span class="username">${user.userName}</span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu">...</ul>
</li>
</ul>
.user-area {
display: flex;
align-items: center; /* 垂直居中 */
height: 100%;
}
.username {
margin-right: 6px;
font-weight: 500;
}
.caret { margin-left: 4px; }