【问题标题】:Bootstrap navbar centre links and right align othersBootstrap 导航栏中心链接并右对齐其他链接
【发布时间】:2016-03-21 17:09:49
【问题描述】:

我在引导程序中有一个导航栏,我正在尝试将一些链接居中并将另一个链接拉到页面的右侧。我已经添加了navbar-right 类,但它似乎没有任何效果。

nav.navbar.navbar-default.navbar-fixed-top
  .container
    .navbar-header
      button.navbar-toggle[type="button" data-toggle="collapse" data-target=".navbar-collapse"]
        span.sr-only Toggle navigation
        span.icon-bar
        span.icon-bar
        span.icon-bar
      = link_to root_path,class: 'navbar-brand' do
        .img-responsive
          =image_tag "logowhite2.png"
    .collapse.navbar-collapse
      # this part should be centered
      ul.nav.navbar-nav
        li#fat-menu.dropdown.text-center
          a.dropdown-toggle data-toggle="dropdown" href="#"
            | Users
            b.caret
          ul.dropdown-menu
            li = link_to 'Clients', clients_path
            li = link_to 'Trainers', trainers_path
            li = link_to 'Admins', admins_path
            li = link_to 'Companies', companies_path
        li = link_to 'Bookings', bookings_path
        li = link_to 'New Booking', book_user_path
        li = link_to 'Courses', courses_path

        # this part should pull to the right
        - if user_signed_in?
          ul.nav.navbar-nav.navbar-right
            li#fat-menu.dropdown
              a.dropdown-toggle data-toggle="dropdown" href="#"
                =current_user.name.capitalize
                b.caret
              ul.dropdown-menu
                li = link_to 'Sign out', destroy_user_session_path, :method=>'delete'
        - else
          li = link_to 'Sign in', new_user_session_path

我在这里做错了什么?

【问题讨论】:

    标签: css ruby-on-rails twitter-bootstrap ruby-on-rails-4


    【解决方案1】:

    你的缩进太远了。您不希望一个导航栏实际上位于另一个导航栏内。我想你希望它们并排。

    好像只是从 if 语句看

    nav.navbar.navbar-default.navbar-fixed-top
      .container
        .navbar-header
          button.navbar-toggle[type="button" data-toggle="collapse" data-target=".navbar-collapse"]
            span.sr-only Toggle navigation
            span.icon-bar
            span.icon-bar
            span.icon-bar
          = link_to root_path,class: 'navbar-brand' do
            .img-responsive
              =image_tag "logowhite2.png"
        .collapse.navbar-collapse
          # this part should be centered
          ul.nav.navbar-nav
            li#fat-menu.dropdown.text-center
              a.dropdown-toggle data-toggle="dropdown" href="#"
                | Users
                b.caret
              ul.dropdown-menu
                li = link_to 'Clients', clients_path
                li = link_to 'Trainers', trainers_path
                li = link_to 'Admins', admins_path
                li = link_to 'Companies', companies_path
            li = link_to 'Bookings', bookings_path
            li = link_to 'New Booking', book_user_path
            li = link_to 'Courses', courses_path
    
          # this part should pull to the right
          - if user_signed_in?
            ul.nav.navbar-nav.navbar-right
              li#fat-menu.dropdown
                a.dropdown-toggle data-toggle="dropdown" href="#"
                  =current_user.name.capitalize
                  b.caret
                ul.dropdown-menu
                  li = link_to 'Sign out', destroy_user_session_path, :method=>'delete'
          - else
            li = link_to 'Sign in', new_user_session_path
    

    更新 - 使主导航居中

    .nav.navbar.navbar-default.navbar-fixed-top
      .container
        .col-sm-2
          .navbar-header
            button.navbar-toggle{type:"button", "data-toggle"=>"collapse","data-target"=>".navbar-collapse"}
              span.sr-only Toggle navigation
              span.icon-bar
              span.icon-bar
              span.icon-bar
            = link_to root_path,class: 'navbar-brand' do
              .img-responsive
                =image_tag "logowhite2.png"
        .col-sm-10
          .collapse.navbar-collapse
            .row
              .col-sm-9
                ul.nav.navbar-nav
                  li#fat-menu.dropdown.text-center
                    a.dropdown-toggle{"data-toggle"=>"dropdown", href:"#"}
                      | Users
                      b.caret
                    ul.dropdown-menu
                      li = link_to 'Clients', clients_path
                      li = link_to 'Trainers', trainers_path
                      li = link_to 'Admins', admins_path
                      li = link_to 'Companies', companies_path
                  li = link_to 'Bookings', bookings_path
                  li = link_to 'New Booking', book_user_path
                  li = link_to 'Courses', courses_path
    
              - if user_signed_in?
                .col-sm-3
                  ul.nav.navbar-nav
                    li#fat-menu.dropdown
                      a.dropdown-toggle{"data-toggle"=>"dropdown",href:"#"}
                        =current_user.name.capitalize
                        b.caret
                      ul.dropdown-menu
                        li= link_to 'Sign out', destroy_user_session_path, :method=>'delete'
              - else
                .col-sm-3
                  ul.nav.navbar-nav
                    li= link_to 'Sign in', new_user_session_path
    

    基本上不同之处在于,您使用引导程序的网格为徽标设置宽度,然后为导航设置宽度,然后在导航部分内,因为您有 2 个,您将再次为每个设置使用网格位置2 个导航栏。

    然后你需要一点 css 来覆盖向左浮动 nav li 的自然行为。

      .navbar-collapse .col-sm-9 ul.navbar-nav { text-align: center; width: 100%;}
      .navbar-collapse .col-sm-9 ul.navbar-nav li { float: none; display: inline-block;}
    

    【讨论】:

    • 如何将其他链接置于导航栏中间?
    猜你喜欢
    • 2013-11-22
    • 1970-01-01
    • 2013-10-28
    • 1970-01-01
    • 1970-01-01
    • 2014-10-07
    • 1970-01-01
    • 2016-05-11
    • 2017-07-21
    相关资源
    最近更新 更多