繁体   English   中英

Bootstrap下拉菜单四处移动且样式不出现

[英]Bootstrap Dropdown menu shifting around and styling not appearing

仅编码了几个月,所以您的帮助不胜感激:)

我设计了一个带有标题的客户标头,标题浮动在左边,而号召性用语(CTA)按钮则浮动在右边,我希望将它们变成onclick的下拉菜单。 我正在借用Bootstrap的Dropdown组件。 我遇到了一些问题:

  1. 如何打开按钮下方的下拉菜单? :我已经将徽标图标变成了一个下拉菜单,并且所有链接都以Bootstrap设置为默认颜色的预期颜色显示。 在Google Chrome浏览器中单击徽标后,菜单直接出现在图标下方(我想要的位置)。 但是在Mozilla中单击徽标时,下拉菜单将在图标左侧打开并将图标移到上方。 我已经尝试了“向右拉”类,但是没有将下拉菜单放在图标的下方,而是放在图标的右侧。 我该如何创建一个“下拉式”类,这样可以确保在所有浏览器中都能正常工作?
  2. 如何将下拉菜单复制到同一标题中的另一个按钮? :对于CTA按钮,我为浮动的图标应用了与下拉菜单完全相同的div结构,因此从理论上讲,它应该起作用。 但是,除非我将鼠标悬停在这些选项上,否则不会显示下拉菜单选项。 好像它在某个地方继承了一个属性,告诉它使字体颜色变为白色,并覆盖了Bootstrap的属性。 问题是我的课程在任何地方都没有任何“颜色:白色/#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);

看看这个小提琴 ,我已经注释了一些样式(最大宽度等)。

变化是

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;

}

希望这可以帮助

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM