2012-10-20 51 views
12

我正在使用Twitter bootstrap和Rails,我似乎無法將導航欄項目浮動到右側。無法使用class = pull-right或float漂浮twitter bootstrap navbar項目:right

我試圖用這樣的:

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

...但鏈接留左,螢火顯示"float:left;"

於是,我就在此改變CSS的float在bootstrap_and_overrides.css.lesshome.html.erb,但也工作。 Firebug表示它找到了兩個css浮點語句,但選擇了我的bootstrap選項。所以我被困住了,想知道如何自定義導航欄。我可能在這裏做錯了什麼,但我只是沒有看到它。

這裏是我的代碼:

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

何時我加載一個頁面,我看到了導航欄,但最後一個項目沒有浮動到右側。

是這樣的:
Screen capture showing firebug info

而且這裏還有另外一個屏幕帽,顯示some more info

如您所見,螢火蟲發現"float:right;"選項,但表示使用"float:left;"選項。

我在這裏有一個理解上的差距,但我不知道在哪裏。

請寄來回應:

  • 使用的右拉式和Twitter的引導導航欄格式化
  • 重寫CSS
  • 解釋螢火輸出

    編輯: 我已經張貼了我的第一次在這裏jsfiddle:http://jsfiddle.net/uCHQs/2/ 它代表一個瀏覽器'show source'的複製/粘貼,我收集的是相關的CSS加載和se由鐵軌保存。

在此先感謝!

回答

21

明白了。

讓它開始工作需要使用多個nav元素的無序列表來填充嵌套在navbar-inner中的容器。這的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> 
+0

我有與navbar搜索相同的問題。多謝! – Bendim

3

你有沒有試過對你的CSS更具體?

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

有時,如果事先CSS(引導在這種情況下)是非常具體的,它需要的特異性(或更大)來覆蓋它的同一水平。

可能會有助於發佈jsfiddle。截圖難以調試;)

+0

嗯,這確實讓我重寫和螢火蟲顯示浮法:正確。瀏覽器仍然會將導航欄放置在我們的項目不浮動的位置。我很樂意發佈一個jsfiddle,但不知道如何從多個路徑複製好像很多js,css和html。有沒有一個漂亮的導軌方式來做到這一點? –

+0

感謝您的幫助。我到了上面的答案。我將我的問題描述爲「我對CSS開發人員的思維方式的理解不足」。現在我看着工作代碼,我想知道爲什麼花了我這麼長時間,並且CSS佈局更有意義。謝謝你讓我知道jsfiddle。 –

0

嘗試註釋掉行

//...REMOVED

+0

謝謝傑森。我實際上刪除了一個已經註釋掉的代碼塊,以縮短我的(冗長)帖子。 –

0
<li><a href="#examples"><span class="glyphicon glyphicon-chevron-right" style="float:right;"></span> Examples</a></li> 
1

u必須編寫的代碼是

class="nav navbar-nav" col-12 

上面的代碼可以被替換這樣

class="nav navbar-nav col-12" 

也在nex牛逼插入

class pull-right in your li button 
0

添加新的類= 「行」

發生了什麼..in你的代碼。當它進入移動設備時,div會附加在其他div上。 這是簡單的解決方案。