0

数か月しかコーディングしていないので、あなたの助けに感謝します:)

左にフローティング ロゴ、右にフローティング コール トゥ アクション (CTA) ボタンを備えた顧客ヘッダーをデザインしました。これらを onclick のドロップダウン メニューに変えたいと考えています。Bootstrap の Dropdown コンポーネントをお借りしています。私はいくつかの問題に遭遇しました:

  1. ボタンの下のドロップダウンを開くには? : ロゴ アイコンをドロップダウン メニューに変更し、Bootstrap がデフォルトとして設定した意図した色ですべてのリンクが表示されるようにしました。Google Chrome でロゴをクリックすると、アイコンのすぐ下にメニューが表示されます (これが必要な場所です)。しかし、Mozilla でロゴをクリックすると、ドロップダウン メニューがアイコンの左側に開き、アイコンが移動します。「プル ライト」クラスを試してみましたが、ドロップダウン メニューがアイコンの下ではなく、アイコンの右側に配置されます。いわば「プルダウン」クラスを作成し、それがブラウザー間で確実に機能するようにするにはどうすればよいですか?
  2. 同じヘッダーの別のボタンのドロップダウン メニューを複製する方法は? : CTA ボタンについては、左に浮いているアイコンのドロップダウンとまったく同じ div 構造を適用したので、理論的には同じように機能するはずです。ただし、オプションの上にマウスを移動しない限り、ドロップダウン メニューのオプションは表示されません。フォントの色を白にし、Bootstrap の属性をオーバーライドするように指示する属性をどこかで継承しているようです。問題は、どのクラスにも「color: 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);
4

1 に答える 1

1

このフィドルをチェックしてください。いくつかのスタイルをコメントアウトしました(最大幅など..)

変更は

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;

}

お役に立てれば

于 2013-06-26T08:20:27.970 に答える