Bootstrap Dropdown菜单移动并且没有出现样式

时间:2013-06-25 21:59:49

标签: javascript css twitter-bootstrap drop-down-menu

只编写了几个月,所以感谢您的帮助:)

我设计了一个客户标题,其左侧有一个徽标,右侧是一个号召性用语(CTA)按钮,我希望将这些标题转到下拉菜单中。我正在借用Bootstrap的Dropdown组件。我遇到了一些问题:

  1. 如何打开按钮下方的下拉列表?:我已经转动了徽标图标 进入下拉菜单,所有链接都出现在预期中 Bootstrap默认设置的颜色。单击徽标时 在谷歌浏览器中,菜单直接显示在图标下方(即 我想要的地方)。但是当在Mozilla中点击徽标时, 下拉菜单打开图标左侧并移动图标 过度。我已经尝试了“拉右”课程,但这并没有 下拉菜单低于图标,但在右侧。我该如何创作 一个“拉下来”的课程可以这么说,并确保它可以解决 浏览器?
  2. 如何为同一标题中的其他按钮复制该下拉菜单?: 对于CTA按钮,我应用了完全相同的div结构 从理论上来说,左下角的图标下拉,它应该 工作相同。但是,除非我将鼠标悬停在上方,否则不会显示下拉菜单选项 选项。看起来它在某处继承了一个属性 告诉它使字体颜色变白并覆盖Bootstrap 属性。问题是我的课程都没有任何“颜色: 白色/ #ffffff“在任何地方,所以我不确定它在哪里继承 属性来自。
  3. 对于CTA按钮,下拉菜单也会向左打开 而不是在底部。当我把我的代码粘贴到外面时 任何父div(作为独立),菜单也向左打开 并将按钮向右移动而不是朝向开口 底部。
  4. HTML:

    <div id="header-container">
                <div id="header-wrapper">
                    <div id="header-left">
                        <div class="dropdown">
                            <a class="dropdown-toggle" data-toggle="dropdown" href="#">
                                <img src="" />
                                <span class="caret"></span>
                            </a>
                            <ul class="dropdown-menu">
                                <li><a href="#">Option 1</a></li>
                                <li><a href="#">Option 2</a></li>
                                <li><a href="#">Option 3</a></li>
                                <li><a href="#">Option 4</a></li>
                            </ul>
                        </div>
                    </div>    
                    <div id="header-right">
                        <div class="dropdown">
                            <a class="dropdown-toggle" data-toggle="dropdown" href="#">
                                Take Pledge
                                <b class="caret"></b>
                            </a>
                            <ul class="dropdown-menu" role="menu">
                                <li><a href="#">Option 1</a></li>
                                <li><a href="#">Option 2</a></li>
                                <li><a href="#">Option 3</a></li>
                                <li><a href="#">Option 4</a></li>
                            </ul>
                        </div>
                    </div>
                </div>
            </div>
    

    CSS:

    #header-container {
        /*overflow: auto;*/
        width: 100%;
        background-color: #231F20;
        height: 50px;
    }
    
    #header-wrapper {
        margin-left: auto;
        margin-right: auto;
        width: 80%;
        min-width: 1000px;
        max-width: 1300px;
        overflow: auto;
    }
    
    #header-left {
        float: left;
        margin: 5px 0 0 0;
    }
    
    #header-right {
        float: right;
       margin: 15px 0 0 0;
    }
    .dropup,
    .dropdown {
      position: relative;
    
    }
    
    .dropdown-toggle {
      *margin-bottom: -3px;
    }
    
    .dropdown-toggle:active,
    .open .dropdown-toggle {
      outline: 0;
    }
    
    .caret {
      display: inline-block;
      width: 0;
      height: 0;
      vertical-align: top;
      border-top: 4px solid red;
      border-right: 4px solid transparent;
      border-left: 4px solid transparent;
      content: "";
    
    }
    
    .dropdown .caret {
      margin-top: 8px;
      margin-left: 2px;
    }
    
    .dropdown-menu {
      position: relative;
      top: 100%;
      left: 0;
      z-index: 1000;
      display: none;
      float: left;
      min-width: 160px;
      padding: 5px 0;
      margin: 2px 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: 6px;
         -moz-border-radius: 6px;
              border-radius: 6px;
      -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 {
      right: 0;
      left: auto;
    }
    
    .dropdown-menu .divider {
      *width: 100%;
      height: 1px;
      margin: 9px 1px;
      *margin: -5px 0 5px;
      overflow: hidden;
      background-color: #e5e5e5;
      border-bottom: 1px solid #ffffff;
    }
    
    .dropdown-menu > li > a {
      display: block;
      padding: 3px 20px;
      clear: both;
      font-weight: normal;
      line-height: 20px;
      color: #333333;
      white-space: nowrap;
    }
    
    .dropdown-menu > li > a:hover,
    .dropdown-menu > li > a:focus,
    .dropdown-submenu:hover > a,
    .dropdown-submenu:focus > a {
      color: #ffffff;
      text-decoration: none;
      background-color: #0081c2;
      background-image: -moz-linear-gradient(top, #0088cc, #0077b3);
      background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0077b3));
      background-image: -webkit-linear-gradient(top, #0088cc, #0077b3);
      background-image: -o-linear-gradient(top, #0088cc, #0077b3);
      background-image: linear-gradient(to bottom, #0088cc, #0077b3);
      background-repeat: repeat-x;
      filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0);
    }
    
    .dropdown-menu > .active > a,
    .dropdown-menu > .active > a:hover,
    .dropdown-menu > .active > a:focus {
      color: #ffffff;
      text-decoration: none;
      background-color: #0081c2;
      background-image: -moz-linear-gradient(top, #0088cc, #0077b3);
      background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0077b3));
      background-image: -webkit-linear-gradient(top, #0088cc, #0077b3);
      background-image: -o-linear-gradient(top, #0088cc, #0077b3);
      background-image: linear-gradient(to bottom, #0088cc, #0077b3);
      background-repeat: repeat-x;
      outline: 0;
      filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0);
    }
    
    .dropdown-menu > .disabled > a,
    .dropdown-menu > .disabled > a:hover,
    .dropdown-menu > .disabled > a:focus {
      color: #999999;
    }
    
    .dropdown-menu > .disabled > a:hover,
    .dropdown-menu > .disabled > a:focus {
      text-decoration: none;
      cursor: default;
      background-color: transparent;
      background-image: none;
      filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
    

1 个答案:

答案 0 :(得分:1)

查看此fiddle, 我已经注释掉了一些样式(最大宽度等)。

更改

HTML

<div id="header-right" class="pull-right">

CSS

#header-container {
    /*overflow: auto;*/
    width: 100%;
    background-color: #231F20;
    height: 50px;
}

#header-wrapper {
    /*margin-left: auto;
    margin-right: auto;
    width: 80%;
    min-width: 1000px;
    max-width: 1300px;*/
    overflow: visible;
}

#header-left {
    float: left;
    margin: 5px 0 0 0;
}

#header-right {
    float: right;
    margin: 5px 0 0 20px;
}

.dropup,
.dropdown {
  position: relative;

}

.dropdown-menu {
  position: absolute;
  top: 100%;
  left: 0;
  z-index: 1000;
  display: none;
  float: left;
  min-width: 160px;
  padding: 5px 0;
  margin: 2px 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: 6px;
     -moz-border-radius: 6px;
          border-radius: 6px;
  -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;

}

希望这有帮助