2013-01-10 16 views
29

Używam Bootstrap po raz pierwszy i mam duże problemy z wyrównaniem tego formularza - poziomo w lewo.Jak pozostawić wyrównanie elementów formularza Bootstrap?

Pozycje listy są poziome, tak jak powinny być, ale chcę, aby etykiety kontrolne (klasa Bootstrap dla etykiet formularzy) były w tej samej pozycji uniesione w lewo.

Formularz znajduje się w dziale o rozpiętości 7, ponieważ moja strona to dwie kolumny - 7 i 4 kolumny.

Poniżej znajduje się mój HTML. Jeśli spojrzysz na "Poziome formularze" na tej stronie http://accounts.tao.tw.shuttle.com/examples_bootstrap/basecss/forms, zobaczysz, że etykiety są wyrównane do lewej, ale nie są wyrównane do lewej, tak aby początek etykiet znajdował się w tej samej pozycji w pionie.

<form class="form-horizontal"> 
    <div class="control-group"> 
     <label class="control-label" for="inputSaving">What are you saving for?</label> 
     <div class="controls"> 
      <input class="span4" type="text" id="inputSaving" placeholder="e.g. Swimming Lessons, Birthday Party, College Fund, etc."> 
     </div> 
    </div> 
    <div class="control-group"> 
     <label class="control-label" for="description">Add a short description</label> 
     <div class="controls"> 
      <textarea class="span4" rows="4" placeholder="Describe in your own words the saving goal for this piggybank"></textarea> 
     </div> 
    </div> 
    <div class="control-group"> 
     <label class="control-label" for="categoryselect">Choose a Category</label> 
     <div class="controls"> 
      <select class="span4"> 
       <!-- Add some CSS and JS to make a placeholder value--> 
       <option value="Kittens">Kittens</option> 
       <option value="Keyboard Cat">Keyboard Cat</option> 
       <option value="Twitter Bird">Twitter Bird</option> 
      </select> 
     </div> 
    </div> 
    <div class="control-group"> 
     <label class="control-label" for="goal">Your Saving Goal</label> 
     <div class="controls"> 
      <input type="text" class="span4" id="goal"> 
     </div> 
    </div> 
    <button class="btn btn-large btn-primary" type="button">Submit</button> 
</form> 
+0

Dlaczego nie ma odpowiedzi oznaczonej jako poprawna dla tego pytania? –

Odpowiedz

34

Jeśli mówią, że problemem jest to, jak w lewo wyrównać etykiety formularza, sprawdzić, czy to pomaga:
http://jsfiddle.net/panchroma/8gYPQ/

Spróbuj zmienić text-align lewo/w prawo w CSS

.form-horizontal .control-label{ 
/* text-align:right; */ 
text-align:left; 
background-color:#ffa; 
} 

Powodzenia!

+1

Zaktualizował kod HTML i naprawił wyrównanie przycisku przesyłania: http://jsfiddle.net/n3f25Lkd/ – ganders

+0

Nie polecam modyfikowania bezpośrednio kodu źródłowego ramki, zwłaszcza jeśli chcesz mieć możliwość aktualizowania go - to znaczy, chyba że jesteś gotów rozwidlić repozytorium i połączyć kod źródłowy z powrotem. – djule5

+0

zgodził się, że nie jest dobrym pomysłem modyfikowanie kodu źródłowego frameworków @ djule5, co sugerowałem, aby dodać powyższe do CSS witryny, aby nadpisać styl Bootstrap. Wtedy możesz zaktualizować Bootstrap i nie stracić personalizacji, czy to ma sens? –

5

Zamiast zmieniać oryginalną klasę css programu bootstrap, utwórz nowy plik css, który zastąpi domyślny styl.

Pamiętaj o dołączeniu nowego pliku css po dodaniu pliku bootstrap.css.

W nowym pliku css zrobić

.form-horizontal .control-label{ 
    text-align:left !important; 
} 
+1

Zalecam, aby nigdy nie używać! Ważne, jeśli istnieje alternatywa: http://stackoverflow.com/questions/3706819/what-are-the-implications-of-using-important-in-css – cederlof

+0

Proszę użyć rozwiązania przez Tim B James poniżej. ważny! to jest zła praktyka –

1

„pull-lewo” jest to, czego potrzebujemy, to wygląda używasz Bootstrap 2, nie jestem pewien, czy to jest dostępne, należy rozważyć bootstrap 3, chyba że Oczywiście jest to wielka poprawka! ... dla Bootstrap 3, ale musisz upewnić się, że masz 12 kolumn w każdym rzędzie, w przeciwnym razie będziesz mieć problemy.

+0

"ale musisz upewnić się, że masz 12 kolumn w każdym rzędzie, w przeciwnym razie będziesz mieć problemy" - nie jest prawdą. Jeśli masz zdefiniowane mniej niż 12 kolumn, dane wykorzystają tylko zdefiniowane kolumny, a pozostałe kolumny będą puste. Jeśli więc zdefiniujesz col-x-4, col-x-5, col-x-1, to pozostałe 2 kolumny będą puste i wszystko powinno działać dobrze. (Uwaga: jeśli zdefiniujesz WIĘCEJ niż 12 kolumn, to wszystko po 12 kolumnie zostanie zawinięte do następnej linii) – ganders

36

Po prostu moje dwa centy. Jeśli używasz Bootstrap 3, to po prostu dodaję dodatkowy styl do arkusza stylów twojej witryny, który kontroluje styl text-left z .

Jeśli chcesz dodać text-left do etykiety, domyślnie jest inny styl, który zastępuje ten .form-horizontal .control-label. Więc jeśli dodać:

.form-horizontal .control-label.text-left{ 
    text-align: left; 
} 

Następnie zbudowany w stylu text-left nakłada się na etykiecie poprawnie.

+3

prawidłowa odpowiedź –

+8

lub czy odpowiedziałbyś "lewą" odpowiedzią ... haha –

-1

Miałem dokładnie ten sam problem. Znalazłem problem w bootstrap.min.css. Musisz zmienić etykietę: label {display:inline-block;} na label {display:block;}

2

Po prostu dodaj style="text-align: left" do swojej etykiety.

Powiązane problemy