2016-07-14 5 views
2

Navbarからドロップダウンメニューがあり、右揃え(css class pull-right)グリフコンがあります。メニュー項目の一つが他のものより少し長く、それがハーフライン下に移動させる、glyphiconに実行されます:私は明らかにして手動でこのドロップダウンの幅を設定することができ右揃えのグリフコンを使用したブートストラップドロップダウンメニューの幅

enter image description here

をCSSクラスとハードコーディングされた幅がありますが、私はむしろ、グリフコン幅を適切に組み込むためにブートストラップを取得したいと思います。どのように私のHTMLを構造化する必要がありますか、またはこの変更を行うために何を変更する必要がありますか?

は、ここで全体のナビゲーションバーのためのHTMLです:

<div class="container"> 
    <div class="navbar-header"> 
     <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse"> 
      <span class="icon-bar"></span> 
      <span class="icon-bar"></span> 
      <span class="icon-bar"></span> 
     </button> 
     <a class="navbar-brand" href="/"> 
      <span> 
       <img id="XXX-brand-logo" alt="Brand" src="/Content/Images/XXX.png" width="20" height="20"></span> 
      Home 
     </a> 
    </div> 
    <div class="navbar-collapse collapse"> 
     <ul class="nav navbar-nav navbar-left"> 
      <li> 
       <a href="/XXX">XXX</a> 
      </li> 

      <li class="dropdown"> 
       <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">XXX<span class="caret"></span></a> 
       <ul class="dropdown-menu"> 
        <li><a href="/XXX">XXX</a></li> 
        <li><a href="/XXX">XXX</a></li> 
       </ul> 
      </li> 

      <li class="dropdown"> 
       <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">XXX<span class="caret"></span></a> 
       <ul class="dropdown-menu"> 
        <li><a href="/XXX/XXX">XXX</a></li> 
        <li><a href="/XXX/XXX">XXX</a></li> 
       </ul> 
      </li> 
     </ul> 
     <ul class="nav navbar-nav navbar-right"> 
      <li class="dropdown"> 
       <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Admin<span class="caret"></span></a> 
       <ul class="dropdown-menu"> 
        <li><a href="/Admin/Role/ManageRoles">Manage Roles</a></li> 
        <li><a href="/Admin/Group/ManageGroups">Manage Groups</a></li> 
        <li><a href="/Admin/User/ManageUsers">Manage Users</a></li> 
       </ul> 
      </li> 

      <li class="dropdown"> 
       <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false"><span class="glyphicon glyphicon-user"></span> Administrator<span class="caret"></span></a> 
       <ul class="dropdown-menu"> 
        <li><a href="/Account/Account/Settings">Settings <span class="glyphicon glyphicon-wrench pull-right"></span></a></li> 
        <li><a href="/Account/Account/ChangePassword">Change Password <span class="glyphicon glyphicon-lock pull-right"></span></a></li> 
        <li role="separator" class="divider"></li> 
        <li><a href="/Account/Login/Logout">Logout <span class="glyphicon glyphicon-log-out pull-right"></span></a></li> 
       </ul> 
      </li> 
     </ul> 
    </div> 
</div> 

そして、ここでの可能なこのページを修正することができる任意のCSSです:私はjqueryの-ui.cssを使用してい

body { 
    padding-top: 50px; 
    padding-bottom: 20px; 
} 

/* Set padding to keep content from hitting the edges */ 
.body-content { 
    padding-left: 15px; 
    padding-right: 15px; 
} 

.glyphicon-hover { 
    border-radius: 25px; 
    border: 1px solid transparent; 
    padding: 2px; 
} 

.glyphicon-hover:hover, .glyphicon:focus { 
    border-radius: 5px; 
    border: 1px solid black; 
    color: red; 
} 

(バージョン1.11。 4経由でNugetのjQuery.UI.Combined)とbootstrap.css(バージョン3.3.6.1、Nuget経由)。

+0

'' '.dropdown'''の幅をCSS経由で100%のように設定しようとしましたか? – jonmrich

+1

http://www.bootply.comでコードを複製すると問題が再現されないようですが、リスト項目のテキストの長さに合わせてメニューが展開されます。しかし、あなたはそのメニューに適用されるある種の幅制限があり、幅を 'auto'に設定するとこれを解決するはずです。 – UncaughtTypeError

+0

@UncaughtTypeError:質問本体にナビゲーションバー用のHTML全体を追加しました。私はまたいくつかのCSSとバージョン番号を入れました。それがあなたの診断に役立つことを願っています。私はメニューの幅を設定する必要のあるCSSを見ることができず、クロムのインスペクタはメニューのLIと含まれているULに対して自動的に表示されます。ナビゲーションバーのLIには幅が小さくなりますが、これはメニューのヘッダーです。 – siride

答えて

1

より多くのスタイリングを適用すると、手元にある問題を解決するのに役立ちます。

HTML

<ul class="dropdown-menu "> 
    <li><a href="/Account/Account/Settings "><span class="glyphicon glyphicon-wrench pull-right "></span><span class="dropdown-link-text ">Settings</span></a> 
    </li> 
    <li><a href="/Account/Account/ChangePassword "><span class="glyphicon glyphicon-lock pull-right "></span><span class="dropdown-link-text ">Change Password</span></a> 
    </li> 
    <li role="separator " class="divider "></li> 
    <li><a href="/Account/Login/Logout "><span class="glyphicon glyphicon-log-out pull-right "></span><span class="dropdown-link-text ">Logout</span></a> 
    </li> 
</ul> 

CSS

.dropdown-link-text { 
    display: inline-block; 
    margin-right: 20px; 
} 

の作業例:またhttp://www.bootply.com/wMD9IaHs4R

、あなたはまた、リンクタグ自体の擬似要素としてのアイコンを追加してみてください、それらを配置するabsoluteそれに応じてtop,rightの値を調整します。

+0

それはトリックでした!私はおそらく、より多くのスペースのために少し右の余白を調整するでしょう。 – siride

-1

最も簡単な解決策は、テキスト

Change<br>Password 

これは水平にすべての要素とメニューと同じ大きさの葉破る行目にあります。二簡単な解決策は、幅

.glyphicon { 
    padding-left: 10px;  
} 
+0

最初の変更は望ましくなく、2番目の変更は違いはありません。 – siride

1

を変更することです私の代わりに.pull-rightクラスのこのCSSを使用しました:

@media (min-width: 768px) { 
    .navbar-right .dropdown-menu > li > a { 
    padding-right: 46px; 
    position: relative; 
    } 
    .navbar-right .dropdown-menu > li > a > .glyphicon { 
    display: block; 
    position: absolute; 
    right: 20px; 
    top: 5px; 
    } 
} 

結果を確認してください。それはあなたが達成したいものですか?あなたがターゲットにすることができ、他のネストされたタグにアンカーテキストをラップし、その後、(これは、「ステップダウン」効果を回避します)アンカーテキストの前にアイコンを配置するために、あなたのマークアップを整理する

@import url('https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css'); 
 

 
body { 
 
    padding-top: 50px; 
 
    padding-bottom: 20px; 
 
} 
 

 
/* Set padding to keep content from hitting the edges */ 
 
.body-content { 
 
    padding-left: 15px; 
 
    padding-right: 15px; 
 
} 
 

 
.glyphicon-hover { 
 
    border-radius: 25px; 
 
    border: 1px solid transparent; 
 
    padding: 2px; 
 
} 
 

 
.glyphicon-hover:hover, .glyphicon:focus { 
 
    border-radius: 5px; 
 
    border: 1px solid black; 
 
    color: red; 
 
} 
 

 
@media (min-width: 768px) { 
 
    .navbar-right .dropdown-menu > li > a { 
 
    padding-right: 46px; 
 
    position: relative; 
 
    } 
 
    .navbar-right .dropdown-menu > li > a > .glyphicon { 
 
    display: block; 
 
    position: absolute; 
 
    right: 20px; 
 
    top: 5px; 
 
    } 
 
}
<div class="container"> 
 
    <div class="navbar-header"> 
 
     <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse"> 
 
      <span class="icon-bar"></span> 
 
      <span class="icon-bar"></span> 
 
      <span class="icon-bar"></span> 
 
     </button> 
 
     <a class="navbar-brand" href="/"> 
 
      <span> 
 
       <img id="XXX-brand-logo" alt="Brand" src="/Content/Images/XXX.png" width="20" height="20"></span> 
 
      Home 
 
     </a> 
 
    </div> 
 
    <div class="navbar-collapse collapse"> 
 
     <ul class="nav navbar-nav navbar-left"> 
 
      <li> 
 
       <a href="/XXX">XXX</a> 
 
      </li> 
 

 
      <li class="dropdown"> 
 
       <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">XXX<span class="caret"></span></a> 
 
       <ul class="dropdown-menu"> 
 
        <li><a href="/XXX">XXX</a></li> 
 
        <li><a href="/XXX">XXX</a></li> 
 
       </ul> 
 
      </li> 
 

 
      <li class="dropdown"> 
 
       <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">XXX<span class="caret"></span></a> 
 
       <ul class="dropdown-menu"> 
 
        <li><a href="/XXX/XXX">XXX</a></li> 
 
        <li><a href="/XXX/XXX">XXX</a></li> 
 
       </ul> 
 
      </li> 
 
     </ul> 
 
     <ul class="nav navbar-nav navbar-right"> 
 
      <li class="dropdown"> 
 
       <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Admin<span class="caret"></span></a> 
 
       <ul class="dropdown-menu"> 
 
        <li><a href="/Admin/Role/ManageRoles">Manage Roles</a></li> 
 
        <li><a href="/Admin/Group/ManageGroups">Manage Groups</a></li> 
 
        <li><a href="/Admin/User/ManageUsers">Manage Users</a></li> 
 
       </ul> 
 
      </li> 
 

 
      <li class="dropdown"> 
 
       <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false"><span class="glyphicon glyphicon-user"></span> Administrator<span class="caret"></span></a> 
 
       <ul class="dropdown-menu"> 
 
        <li><a href="/Account/Account/Settings"><span class="glyphicon glyphicon-wrench"></span>Settings</a></li> 
 
        <li><a href="/Account/Account/ChangePassword"><span class="glyphicon glyphicon-lock"></span>Change Password</a></li> 
 
        <li role="separator" class="divider"></li> 
 
        <li><a href="/Account/Login/Logout"><span class="glyphicon glyphicon-log-out"></span>Logout</a></li> 
 
       </ul> 
 
      </li> 
 
     </ul> 
 
    </div> 
 
</div> 
 

 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> 
 
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>