使用Bootstrap对中下拉菜单

时间:2012-11-25 02:16:16

标签: html css twitter-bootstrap

我正在尝试将我的下拉菜单放在Bootstap中。

 <ul class="dropdown-menu">

默认情况下它向左拉,或者我可以使用如下定义的pull-right使其向右移动:

.dropdown-menu.pull-right {
  right: 0;
  left: auto;
}

我想把它放在中心位置。我是Boostrap的新手,无法弄清楚如何居中。有小费吗?我做对了:50%但是没有用。

注意:我不打算将实际文本置于下拉菜单中心。我希望将实际的下拉菜单和carret置于其下拉的导航菜单项下。

以下是我的模板中的完整代码段:

<ul class="nav">
    <li id="tab_profile">
        <a href="{% url profile_detail user.username %}">{% trans "PROFILE" %}</a>
    </li>
    <li id="product_data">
        <a href="{% url all_models %}">{% trans "PRODUCT DATA" %}</a>
    </li>
    <li id="product_library">
        <a href="{% url library %}">{% trans "LIBRARY" %}</a>
    </li>
  <li id="database">
        <a href="/DATABASE/">{% trans "DATABASE" %}</a>
    </li>
        <li class="dropdown" id = "community">
        <a class="dropdown-toggle" href="#">COMMUNITY</a> 
             <ul class="dropdown-menu pull-right">
                <li> <a href="/profiles">Search</a></li>
                <li><a href="/questions/">Questions and Answers</a></li>
                <li><a href="{% url view_requests %}">Requests</a></li>
              </ul>
        </li>
</ul>

CSS:

.dropdown-menu {
  position: absolute;
  top: 100%;
  left: 0;
  z-index: 1000;
  display: none;
  float: left;
  min-width: 160px;
  padding: 4px 0;
  margin: 1px 0 0;
  list-style: none;
  background-color: #ffffff;
  border: 1px solid #ccc;
  border: 1px solid rgba(0, 0, 0, 0.2);
  *border-right-width: 2px;
  *border-bottom-width: 2px;
  -webkit-border-radius: 5px;
  -moz-border-radius: 5px;
  border-radius: 5px;
  -webkit-border-radius: 5px;
  -moz-border-radius: 5px;
  border-radius: 5px;
  -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
  -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
  box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
  -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
  -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
  box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
  -webkit-background-clip: padding-box;
  -moz-background-clip: padding;
  background-clip: padding-box;
}
.dropdown-menu.pull-right {
  margin-right: auto; 
  margin-left: auto;
}

enter image description here

3 个答案:

答案 0 :(得分:3)

.dropdown-menu {
    left: 50% !important;
    margin-left: -70px;
}

使用默认引导程序下拉菜单时,这对我有用。只需根据菜单的宽度调整左边距即可。

答案 1 :(得分:2)

您可以将以下内容添加为CSS,并将此类添加到标记中,如下所示。

.centerDropdown {
    left: auto !important;
    right: -25% !important;
}
.centerDropdown:after {
   left: auto !important;
   right: 45% !important;
}

在HTML代码中,

<li class="dropdown">
   <a href="/channel/list" data-toggle="dropdown" class="dropdown-toggle">
        <i class="icon-th-list"></i>
           Lists
   </a>
   <ul class="dropdown-menu centerDropdown">
          <li><a href="/list">Find a list</a></li>
          <li><a href="/my">My lists</a></li>
          <li><a href="/create">Create a list</a></li>
   </ul>
 </li>

答案 2 :(得分:1)

这种反应有点晚,但希望有用。要将Bootstrap下拉菜单置于其父级中心,请尝试此操作。

.dropdown-menu {
    left: -40px;
    right: -40px;
}

根据需要调整大小,只需确保数值(本例中为40px)相互匹配。在这里,它分别将下拉菜单40px的左侧和右侧拉向父级/始发链接的左侧和右侧40px。

BONUS ROUND: 如果列表项的文本比菜单扩展得更宽,请考虑添加以下声明。

.dropdown-menu>li>a {
    white-space: normal;
}