2013-12-10 30 views
38

Wie bekomme ich die Bootstrap-Marke und den begleitenden Text zusammen als Marke behandelt?Text neben der Marke

Ich habe dies versucht:

<nav class="navbar navbar-default"> 
    <div class="navbar-header"> 
     <div class="navbar-brand"> 
      <a href="..." ><img class="img-responsive" src="/brand.png")?>"></a> 
      <h3>Ultimate Trade Sizer</h3> 
     </div> 
    </div> 
</nav> 

Allerdings kann ich ihnen (das heißt nebeneinander) ausgerichtet werden, nicht erreichen. Es produziert die folgenden Effekt:

Title and logo should be side-by-side

Bitte beachten Sie, dass ich bin mit Bootstrap 3.

+0

Ihr H3 wird standardmäßig immer als Block angezeigt. Fügen Sie einfach CSS-Stile hinzu, um sie als Inline zu behandeln. – Lee

Antwort

91

Wrap das Bild

.navbar-Marke Klasse hinzufügen
+0

Fantastisch! Wunderbar! Vielen Dank! –

+1

Scheint in Ordnung zu sein, aber ... Text und Bild sind nicht korrekt ausgerichtet. Es gibt Regeln, die bei der richtigen Positionierung helfen .navbar-text class auf p tag (bootstrap 3.3.5) – przemcio

+0

Der Text sollte idealerweise in einem geeigneten Tag sein .. wie eine Überschrift, wenn es als Überschrift klassifiziert ist .. Obwohl Vorsicht vor Ihrer Hierarchie . Sie sollten kein H2 oder niedrigeres Tag zuerst auf der Seite haben, bevor ein H1 – Lee

1

Dies geschieht, weil die img-responsive Klasse display:block hat. In diesem Fall bin ich mir nicht sicher, ob Sie diese Klasse für das Bild benötigen, das Sie anzeigen, da es bereits recht klein ist und es nicht wahrscheinlich ist, dass Probleme auftreten, die reaktionsschnell sein müssen.

Alternativ können Sie img-responsive in diesem Fall zu display:inline-block außer Kraft setzen und Ihr auch haben h3display:inline-block auch haben werden.

12

Nicht sicher, ob das html korrekt ist, aber ich wickelte das Bild und den Text in eine neue Div-Klasse und Floated das links. Außerdem änderte der img die neue Klasse mit etwas Polsterung auf der rechten Seite, um es vom Text zu trennen. Schien für mich zu arbeiten, aber ich bin ziemlich neu zu Bootstrap, so dass es nicht genau richtig sein könnte. Ihr Code würde so aussehen.

html

<nav class="navbar navbar-default"> 
    <div class="navbar-header"> 
     <a class="navbar-brand" href="#"> 
      <div class="navbar-brand-name"> 
       <img src="#"/> 
        Ultimate Trade Sizer 
      </div> 
     </a> 
    </div> 
</nav> 

die neue CSS-Klasse unter der in einem zu display: inline

span

<nav class="navbar navbar-default"> 
    <div class="navbar-header"> 
     <a class="navbar-brand" href="#"> 
      <span><img src="#"/></span> 
      Ultimate Trade Sizer 
     </a> 
    </div> 
</nav> 

span defaults

.navbar-brand-name > { 

    display: inline-block; 
    float: left; 

} 

.navbar-brand-name > img { 
    display: inline-block; 
    float: left; 
    padding: 0 15px 0 0; 
} 
+0

Diese Lösung hat am besten für mich funktioniert. War der einzige, bei dem der Markentext korrekt mit den übrigen nav-Elementen abgestimmt war. Aber 'Padding' Nähte um das Bild zu strecken,' Margin' Nähte funktionieren besser: 'margin: -5px 10px;' –

13

Die richtige Lösung wäre navbar-text auf der h3 zu verwenden und keine zusätzlichen div oder span Elemente zu verwenden:

<nav class="navbar navbar-default"> 
    <div class="navbar-header"> 
     <div class="navbar-brand"> 
      <a href="..."> 
       <img class="img-responsive" src="/brand.png">"> 
      </a> 
      <h3 class="navbar-text">Ultimate Trade Sizer</h3> 
     </div> 
    </div> 
</nav> 

http://getbootstrap.com/components/#navbar-text für die ordnungsgemäße Dokumentation von navbar-text See.

+2

Wenn Sie p anstelle von h3 verwenden, erhalten Sie ein richtiges Layout. Siehe die Beschreibung, die du erwähnt hast. – przemcio

+0

'p' scheint vernünftiger und stimmt auch mit der Bootstrap-Dokumentation überein. Leider kann ich mich nicht erinnern, warum ich 'h3' in meiner Antwort verwendet habe. – lanoxx