web-dev-qa-db-ja.com

bootstrap navbarに独自のアイコンを追加する方法

Navbarから始めたプロジェクトに取り組んでいます。各メニューバーのすぐ横に独自のアイコンを追加することは可能ですか?たとえば、次のアイコン: https://www.dropbox.com/sh/0be3c7ub4245kd6/zNMrvFi6Wq

このような:

enter image description here

コード:

<!-- Fixed navbar -->
    <div class="navbar navbar-default navbar-fixed-top" role="navigation">
      <div class="container">
        <div class="navbar-header">
          <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-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="navbar-brand" href="#">Project name</a>
        </div>
        <div class="navbar-collapse collapse">
          <ul class="nav navbar-nav">
            <li class="active"><a href="#">Home</a></li>
            <li><a href="#about">About</a></li>
            <li><a href="#contact">Contact</a></li>

          </ul>

        </div><!--/.nav-collapse -->
      </div>
    </div>

    <div class="container">

      <!-- Main component for a primary marketing message or call to action -->
      <div class="jumbotron">
        <h1>Navbar example</h1>
        <p>This example is a quick exercise to illustrate how the default, static and fixed to top navbar work. It includes the responsive CSS and HTML, so it also adapts to your viewport and device.</p>
        <p>To see the difference between static and fixed top navbars, just scroll.</p>
        <p>
          <a class="btn btn-lg btn-primary" href="../../components/#navbar" role="button">View navbar docs &raquo;</a>
        </p>
      </div>

    </div> <!-- /container -->
7
user3270211

追加のマークアップを追加せずにこれを行う方法は次のとおりですが、各アンカーリンクに一意のクラスを追加する必要があります。

CSS:

.navbar-default .navbar-nav>.active>a:before,
.navbar-nav>li>a:before {
    background-repeat: no-repeat;
    background-position: 0 top;
    content: "";
    display: inline-block;
    height: 29px;
    margin-right: 10px;
    vertical-align: middle;
    width: 29px;
}

.navbar-default .navbar-nav>.active>a.home:before,
.navbar-nav>li>a.home:before { background-image: url('https://dl.dropboxusercontent.com/sh/0be3c7ub4245kd6/18Xnfucw14/home.png'); }

.navbar-default .navbar-nav>.active>a.about:before,
.navbar-nav>li>a.about:before {  background-image: url('https://dl.dropboxusercontent.com/sh/0be3c7ub4245kd6/DhXiON5YiL/kveld.png'); }

.navbar-default .navbar-nav>.active>a.contact:before,
.navbar-nav>li>a.contact:before {  background-image: url('https://dl.dropboxusercontent.com/sh/0be3c7ub4245kd6/_fidqgglaS/sol.png'); }

結果はここで確認できます: http://jsfiddle.net/2WvpV/

マージンとパディングをいじる必要があります。また、ピクセルではなく相対サイズを使用する必要があるため、これは完璧ではありません。

7
Darren

Font awesomeまたはbootstrap glyph iconsのいずれかを使用できます。グリフィコンのテキストの前に次のようなものを追加するだけです。

<span class="glyphicon glyphicon-search"></span>

またはこれは素晴らしいフォント

<span class="fa fa-search"></span>

または、画像アイコンを作成して、アイコンのcssクラスを作成することもできます。

更新されたデモ

13
Trevor Orr

Bootstrap標準のグリフに対する@TrevorOrrの回答ですが、<span>タグ内に<a>タグを含めることを忘れないでください。例:

<nav class="navbar navbar-inverse navbar-fixed-top" role="navigation">
  <div class="navbar-collapse collapse">
    <ul class="nav navbar-nav navbar-left">
      <li><a href="#">Envelope icon: <span class="glyphicon glyphicon-envelope"></span></a></li> 
    </ul>
  </div>
</nav>    

アンカー内に<span>を含めない場合、グリフは表示されません。

2

同様の問題がありましたが、ここで選択した解決策は機能しませんでした。それが機能するためには、2つの回答をまとめる必要があります。つまり、<span class="icone icone-custom pull-right">内にネストされた<a>にバックグラウンド属性を適用しました。いいえ:before

0
Sassinak