Twitter-Bootstrap-2 logo image on top of navbar

前端 未结 5 1284
野性不改
野性不改 2020-12-22 18:12

Can someone suggest how I can place a logo image on the top of the navbar? My markup:

  
     

        
相关标签:
5条回答
  • 2020-12-22 18:14

    You have to also add the "navbar-brand" class to your image a container, also you have to include it inside the .navbar-inner container, like so:

     <div class="navbar navbar-fixed-top">
       <div class="navbar-inner">
         <div class="container">
            <a class="navbar-brand" href="index.html"> <img src="images/57x57x300.jpg"></a>
         </div>
       </div>
     </div>
    
    0 讨论(0)
  • 2020-12-22 18:16

    Overwrite the brand class, either in the bootstrap.css or a new CSS file, as below -

    .brand
    {
      background: url(images/logo.png) no-repeat left center;
      height: 20px;
      width: 100px;
    }
    

    and your html should look like -

    <div class="container-fluid">
      <a class="brand" href="index.html"></a>
    </div>
    
    0 讨论(0)
  • 2020-12-22 18:26

    You should remove navbar-fixed-top class otherwise navbar stays fixed on top of page where you want logo.


    If you want to place logo inside navbar:

    Navbar height (set in @navbarHeight LESS variable) is 40px by default. Your logo has to fit inside or you have to make navbar higher first.

    Then use brand class:

    <div class="navbar navbar-fixed-top">
      <div class="navbar-inner">
        <div class="container">
          <a href="/" class="brand"><img alt="" src="/logo.gif" /></a>
        </div>
      </div>
    </div>
    

    If your logo is higher than 20px, you have to fix stylesheets as well.

    If you do that in LESS:

    .navbar .brand {
      @elementHeight: 32px;
      padding: ((@navbarHeight - @elementHeight) / 2 - 2) 20px ((@navbarHeight - @elementHeight) / 2 + 2);
    }
    

    @elementHeight should be set to your image height.

    Padding calculation is taken from Twitter Bootstrap LESS - https://github.com/twitter/bootstrap/blob/v2.0.4/less/navbar.less#L51-52

    Alternatively you can calculate padding values yourself and use pure CSS.

    This works for Twitter Bootstrap versions 2.0.x, should work in 2.1 as well, but padding calculation was changed a bit: https://github.com/twitter/bootstrap/blob/v2.1.0/less/navbar.less#L50

    0 讨论(0)
  • 2020-12-22 18:30

    If you do not increase the height of navbar..

     .navbar .brand {
     position: fixed;    
     overflow: visible;
     padding-left: 0;    
     padding-top: 0;
     }
    

    see http://jsfiddle.net/petrfox/S84wP/

    0 讨论(0)
  • 2020-12-22 18:34

    i use this code for navbar on bootstrap 3.2.0, the image should be at most 50px high, or else it will bleed the standard bs navbar.

    Notice that i purposely do not use the class='navbar-brand' as that introduces padding on the image

    <div class="navbar navbar-default navbar-fixed-top" role="navigation">
        <div class="container">
        <!-- Brand and toggle get grouped for better mobile display -->
        <div class="navbar-header">
          <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse">
            <span class="sr-only">Toggle navigation</span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </button>
          <a class="" href="/"><img src='img/anyWidthx50.png'/></a>
        </div>
    
        <!-- Collect the nav links, forms, and other content for toggling -->
        <div class="collapse navbar-collapse navbar-ex1-collapse">
           <ul class="nav navbar-nav">
            <li class="active"><a href="#">Active Link</a></li>
            <li><a href="#">More Links</a></li>
          </ul>
        </div><!-- /.navbar-collapse -->
      </div>
    </div>
    
    0 讨论(0)
提交回复
热议问题