2013-07-12 15 views
11

Ich versuche, ein Label des Eingabefeldes neben es statt mit Bootstrap setzen. Das Wrapping in form-horizontal funktioniert, aber es ist nicht wirklich in einer Form (nur ein Ajax-Aufruf, der den Wert liest). Gibt es eine Möglichkeit, das Label einfach auf die linke Seite des Inputs zu verschieben?Bootstrap-Label neben Eingabe

<div class="controls-row"> 
     <div class="control-group"> 
      <label class="control-label" for="my-number">ALabel</label> 

      <div class="controls"> 
       <input id="my-number" type="number"/> 
      </div> 
     </div> 
    </div>  

die Geige ist http://jsfiddle.net/7VmR9/

+1

ich hier geantwortet: http://stackoverflow.com/questions/18404003/label-on-the-left-side -inserhalb eines Eingabefeldes/33974788 grüße! –

Antwort

4

Die div ein block Element ist, das bedeutet, es so viel wie möglich Breite nehmen und das input Element darin.

Wenn Sie wollen, dass die label zum input Element neben sein: entweder setzen die label im div oder div ein inline-block Element zu machen.

+0

Inline zu machen scheint zu funktionieren. Ich werde noch zögern, zu akzeptieren, ob es eine eingebaute Möglichkeit gibt, dies mit Bootstrap-Konstrukten zu tun. –

+0

Wenn es eine Möglichkeit gibt, dies im Bootstrap zu tun, dann ist es wahrscheinlich nicht so einfach wie diese 2 Lösungen. Und @wikijames schlug vor, das Label zu schweben, zuerst würde man generell Floating-Elemente vermeiden und zweitens würde das Floaten des Labels wahrscheinlich nicht funktionieren, wenn man das Div nicht float. – zoran404

1

Sie können Hilfe direkt von der Website nehmen, die sie zur Verfügung gestellt, gut dokumentiert.

Hier ist die Fiddle with Bootstrap css.

<div class="control-group"> 
<label class="control-label" for="inputEmail">Email</label> 
<div class="controls"> 
    <input type="text" id="inputEmail" placeholder="Email"> 
</div> 

+0

Ich möchte es nicht in eine Form-horizontale Klasse bringen, wenn ich es vermeiden kann. Es ist nicht wirklich in einer Form wie in der Frage beschrieben. Wenn Sie es in die horizontale Form bringen, wird ein großer Versatz auf der linken Seite hinzugefügt. Am Beispiel Ihrer Geige möchte ich die Formularfelder und Beschriftungen ganz nach links auf das Fenster verschieben. –

+0

Sie müssen die .form-horizontale Klasse nicht entfernen. Tauchen Sie in den Code ein und nehmen Sie zwei kleine Änderungen vor. .form-horizontal .control-label (Breite entfernen) und dann den Wert von (Margin-left) in "form-horizontal .controls" ändern. In Zeile Nummer 1962, 1969 auf Bootstrap CSS-Datei können Sie es finden. –

11

Ja, Sie können dies tun, indem Bootstrap-Säulenstruktur.

<div class="form-group"> 
    <label for="name" class="col-lg-4">Name:</label> 
    <div class="col-lg-8"> 
     <input type="text" class="form-control" name="name" id="name"> 
    </div> 
</div> 

ist hier ein Bootply Demo

+0

Eine Sache, die über diese Technik zu beachten ist, ist, dass col- * als float definiert ist: left, was bewirkt, dass das innere div aus dem form-group div ausbricht. Um dies zu berücksichtigen, können Sie den Überlauf verwenden: versteckt in der Formulargruppe. Ich würde empfehlen, einen semantischen Container wie folgt zu erstellen: .col-container { overflow: hidden; } –