引导程序下拉菜单四处移动,样式不显示

Bootstrap Dropdown menu shifting around and styling not appearing

本文关键字:移动 样式 显示 四处 下拉菜单 引导程序      更新时间:2023-09-26

只编写了几个月的代码,非常感谢您的帮助:)

我设计了一个向左浮动的徽标和向右浮动的行动呼吁(CTA)按钮的客户标题,我想在点击后将其变成下拉菜单。我借用Bootstrap的Dropdown组件。我遇到了一些问题:

  1. 如何打开按钮下方的下拉列表:我已转动徽标图标进入下拉菜单,所有链接都显示在Bootstrap已设置为默认颜色。单击徽标时在Google Chrome中,菜单直接显示在图标(即在我想要的地方)。但是当在Mozilla中点击徽标时下拉菜单在图标左侧打开并移动图标结束我试过"向右拉"类,但这并不能让下拉菜单在图标下方但在其右侧。如何创建可以说是一门"拉低"课程,并确保它能在浏览器
  2. 如何为同一标题中的另一个按钮复制该下拉菜单:对于CTA按钮,我应用了与左浮动图标的下拉列表,所以理论上,它应该工作方式相同。但是,下拉菜单选项不会显示,除非我将鼠标悬停在选项。看起来它在某个地方继承了一个属性告诉它将字体设为白色并覆盖Bootstrap的属性。问题是,我的课都没有"颜色:white/#ffffff"在任何地方,所以我不确定它是从哪里继承的属性
  3. 对于CTA按钮,下拉菜单也会向左打开而不是在底部。当我把代码粘贴到外面时对于任何父div(作为独立的),菜单也会向左打开并将按钮向右移动,而不是朝底部

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);

看看这个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;
}

希望这能帮助