【发布时间】:2016-07-15 12:34:54
【问题描述】:
我有一个来自导航栏的下拉菜单,它有右对齐(css 类拉右)字形图标。其中一个菜单项比其他菜单项长一点,它会碰到字形图标,导致它向下移动半行:
显然,我可以使用 CSS 类和硬编码宽度手动设置此下拉列表的宽度,但我宁愿让 Bootstrap 适当地合并字形图标宽度。我需要如何构建我的 HTML 或者我需要对 CSS 进行哪些更改才能使其正常工作?
这是整个导航栏的 HTML:
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="/">
<span>
<img id="XXX-brand-logo" alt="Brand" src="/Content/Images/XXX.png" width="20" height="20"></span>
Home
</a>
</div>
<div class="navbar-collapse collapse">
<ul class="nav navbar-nav navbar-left">
<li>
<a href="/XXX">XXX</a>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">XXX<span class="caret"></span></a>
<ul class="dropdown-menu">
<li><a href="/XXX">XXX</a></li>
<li><a href="/XXX">XXX</a></li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">XXX<span class="caret"></span></a>
<ul class="dropdown-menu">
<li><a href="/XXX/XXX">XXX</a></li>
<li><a href="/XXX/XXX">XXX</a></li>
</ul>
</li>
</ul>
<ul class="nav navbar-nav navbar-right">
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Admin<span class="caret"></span></a>
<ul class="dropdown-menu">
<li><a href="/Admin/Role/ManageRoles">Manage Roles</a></li>
<li><a href="/Admin/Group/ManageGroups">Manage Groups</a></li>
<li><a href="/Admin/User/ManageUsers">Manage Users</a></li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false"><span class="glyphicon glyphicon-user"></span> Administrator<span class="caret"></span></a>
<ul class="dropdown-menu">
<li><a href="/Account/Account/Settings">Settings <span class="glyphicon glyphicon-wrench pull-right"></span></a></li>
<li><a href="/Account/Account/ChangePassword">Change Password <span class="glyphicon glyphicon-lock pull-right"></span></a></li>
<li role="separator" class="divider"></li>
<li><a href="/Account/Login/Logout">Logout <span class="glyphicon glyphicon-log-out pull-right"></span></a></li>
</ul>
</li>
</ul>
</div>
</div>
以下是任何可能修改此页面的 CSS:
body {
padding-top: 50px;
padding-bottom: 20px;
}
/* Set padding to keep content from hitting the edges */
.body-content {
padding-left: 15px;
padding-right: 15px;
}
.glyphicon-hover {
border-radius: 25px;
border: 1px solid transparent;
padding: 2px;
}
.glyphicon-hover:hover, .glyphicon:focus {
border-radius: 5px;
border: 1px solid black;
color: red;
}
我正在使用 jquery-ui.css(版本 1.11.4,通过 jQuery.UI.Combined in Nuget)和 bootstrap.css(版本 3.3.6.1,通过 Nuget)。
【问题讨论】:
-
您是否尝试过通过 CSS 将
.dropdown的宽度设置为 100%? -
当我在bootply.com 上复制您的代码时,我似乎无法重现该问题,菜单会扩展以适应列表项文本的长度。在我看来,您对该菜单应用了某种宽度限制,并且将宽度设置为
auto应该可以解决此问题。 -
@UncaughtTypeError:我在问题正文中添加了导航栏的整个 HTML。我还输入了一些 CSS 和版本号。希望对您的诊断有所帮助。我看不到任何应该设置菜单宽度的 CSS,并且 chrome 的检查器为菜单的 LI 和包含的 UL 显示自动。导航栏中包含 LI 的宽度确实较小,但那是菜单标题。
-
@siride 谢谢!这有很大帮助。如果您可以移动元素并将链接文本包装在标签中,我相信以下示例对您有用:bootply.com/wMD9IaHs4R 或者,您也可以尝试将图标添加为链接标签的伪元素本身,然后定位它们
absolute并使用top、right等相应地设置它们 -
@UncaughtTypeError:回答这个问题,你会得到一些因果报应。
标签: html css twitter-bootstrap