12

TwitterのブートストラップとRailsを使用していますが、ナビゲーションバーのアイテムを右側にフロートさせることができないようです。

私はこのようなものを使ってみました:

<li class="whoami pull-right"> <%= link_to ("Logged in as: " + current_user.name), edit_user_registration_path , :id=>"Edit account"%> </li>

...しかし、リンクは左に留まり、firebugが表示されました"float:left;"

だから私はcssフロートをオーバーライドしようとしましたbootstrap_and_overrides.css.lesshome.html.erb、どちらも機能しませんでした。Firebugは、2つのcss floatステートメントが見つかったことを示しましたが、私のものよりもブートストラップオプションを選択しました。だから私は立ち往生していて、ナビゲーションバーをカスタマイズする方法を考えています。私はおそらくここで何か間違ったことをしているのですが、私はそれを見ていません。

これが私のコードです:

application.html.erb:

<!DOCTYPE html>
<html>
  <head>
  ... removed to shorten the length of this post
  </head>
  <body>
    <header>
          <%= render 'layouts/navigation' %>
    </header>
    <div id="main" role="main">
      <div class="container">
        <div class="content">
           <div class="row">
            <div class="span12">
              <%= render 'layouts/messages' %>
              <%= yield %>
            </div>
          </div>
          <footer>
          </footer>
        </div>
      </div> <!--! end of .container -->
    </div> <!--! end of #main -->
  </body>
</html> 

_navigation.html.erb:

<div class="container span12">
  <div class="navbar navbar-fixed-top">
    <div class="navbar-inner">
      <div class="container">
        <ul class="nav">
        <%= link_to "Cases", root_path, :class=>"brand"%>
          <% if user_signed_in? %>
              <li> <%= link_to "My Cases", cases_path %> </li> 
              <li> <%= link_to 'Dash', dash_path %> </li> 
            <% if current_user.has_role? :admin %>
              <li> <%= link_to 'Admin', users_path, :id=>"Admin" %> </li>
            <% end %>
            <li> <%= link_to 'Logout', destroy_user_session_path, :method=>'delete', :id => "Logout" %> </li>
            <li class="whoami"> <%= link_to ("Logged in as: " + current_user.name), edit_user_registration_path , :id=>"Edit account"%> </li>
          <% else %>
              <li> <%= link_to 'Login', new_user_session_path %> </li>
              <li> <%= link_to 'Sign up', new_user_registration_path %> </li>
          <% end %>
        </ul>
      </div>
    </div>
  </div>
</div>

bootstrap_and_overrides.css.less:

@import "twitter/bootstrap/bootstrap";
body { 
    padding-top: 60px;
}
@import "twitter/bootstrap/responsive";

// Set the correct sprite paths
// ...REMOVED to shorten the length of this post
// Your custom LESS stylesheets goes here
//
// Since bootstrap was imported above you have access to its mixins which
// you may use and inherit here
//
// If you'd like to override bootstrap's own variables, you can do so here as well
// See http://twitter.github.com/bootstrap/less.html for their names and documentation
//
// Example:
// @linkColor: #ff0000;

.whoami {
    float:right;
}

ページをロードすると、ナビゲーションバーが表示されますが、最後のアイテムが右にフロートしていません。

このように見えます:
Firebug情報を表示するスクリーンキャプチャ

そして、ここにもう少し情報を表示する別のスクリーンキャップがあります。

ご覧のとおり、firebugは"float:right;"オプションを見つけましたが、代わりにオプションが使用されたことを示してい"float:left;"ます。

ここでは理解にギャップがありますが、どこにあるのかわかりません。

次の回答に対応してください。

  • プルライトおよびツイッターブートストラップナビゲーションバーフォーマットの使用
  • cssをオーバーライドする
  • ファイアバグ出力の解釈

    編集:私はここに私の最初のjsfiddleを投稿しました:http://jsfiddle.net/uCHQs/2/これ はブラウザの「ソースの表示」のコピー/貼り付けを表し、私が収集するのは関連するcssロードであり、レールによって提供されます。

前もって感謝します!

4

6 に答える 6

21

とった。

それを機能させるには、navbar-innerにネストされたコンテナに複数の順序付けられていないnav要素のリストを入力する必要がありました。このjsfiddleは私に方法を示しましたhttp://jsfiddle.net/N6vGZ/4/

このコードは機能します:

<div class="container span12">
  <div class="navbar navbar-fixed-top">
    <div class="navbar-inner">
      <div class="container">
        <%= link_to "Cases", root_path, :class=>"brand"%>
          <ul class="nav">
          <% if user_signed_in? %>
              <li> <%= link_to "My Cases", cases_path %> </li> 
              <li> <%= link_to 'Dash', dash_path %> </li> 
            <% if current_user.has_role? :admin %>
              <li> <%= link_to 'Admin', users_path, :id=>"Admin" %> </li>
            <% end %>
            <li> <%= link_to 'Logout', destroy_user_session_path, :method=>'delete', :id => "Logout" %> </li>
          </ul>
           <ul class="nav pull-right"> <li> <%= link_to ("Logged in as: " + current_user.name), edit_user_registration_path , :id=>"Edit account"%> </li></ul>
          <% else %>
            <ul class="nav">
              <li> <%= link_to 'Login', new_user_session_path %> </li>
              <li> <%= link_to 'Sign up', new_user_registration_path %> </li>
            </ul>
          <% end %>
        </ul>
      </div>
    </div>
  </div>
</div>
于 2012-10-20T22:35:11.293 に答える
3

CSSをより具体的にしようとしましたか?

.navbar ul.nav li.whoami {
    float:right;
}

以前のCSS(この場合はブートストラップ)が非常に具体的である場合、それをオーバーライドするために同じレベル(またはそれ以上)の特異性が必要になることがあります。

jsfiddleを投稿するのに役立つかもしれません。スクリーンショットのデバッグは困難です;)

于 2012-10-20T20:57:17.743 に答える
1

uが書いたコードは

 class="nav navbar-nav" col-12

上記のコードは次のように置き換えることができます

class="nav navbar-nav col-12" 

そして次の挿入でも

class pull-right in your li button
于 2014-06-24T10:44:42.697 に答える
0

行をコメントアウトしてみてください

//...削除されました

于 2012-10-20T20:58:16.103 に答える
0
<li><a href="#examples"><span class="glyphicon glyphicon-chevron-right" style="float:right;"></span> Examples</a></li>
于 2013-12-05T17:23:42.060 に答える
0

新しいクラスを追加="行"

あなたのコードで何が起こったのか。それがモバイルデバイスに入ってくると、divは他のdivに追加されます。これは簡単な解決策です。

于 2015-12-03T10:34:45.233 に答える