2013-01-02 8 views
13

Mam stronę zbudowaną na Twitter Bootstrap.Wejście do Bootstrap na Twitter Nie dołączaj pełnej szerokości kontenera

Podczas tworzenia formularza z dwiema kolumnami próbuję użyć klasy input-prepend, aby dodać ikonę wiadomości e-mail na lewo od danych formularza. Chcę, aby pole wejściowe wraz z ikoną przedrostka zawsze stanowiło 100% kontenera.

Oto mój kod:

     <div class='row-fluid'> 
         <div class='span6'> 
          <div class='control-group' id='contactEmailControlGroup'> 
          <label for='contactEmail'>Email Address</label> 
           <div class='input-prepend'> <span class='add-on'><i class='icon-envelope'></i></span> 
           <input type='email' name='contactEmail' id='contactEmail' class='span11' placeholder='Your email address...' tabindex='3' required/> 
           <span class='help-inline formAlert' id='contactEmailError'> <i class='icon-edit formAlertIcon'></i> Please enter your email address </span> <span class='help-inline formAlert' id='contactEmailInvalidError'> <i class='icon-exclamation-sign formAlertIcon'></i> Invalid email address </span> 
          </div> 
          </div> 
         </div> 
         <div class='span6'> 
          <div class='control-group'> 
          <label for='contactPhone'>Phone Number</label> 
          <input type='tel' name='contactPhone' id='contactPhone' class='span12' placeholder='Your phone number...' tabindex='4' required/> 
          <span class='help-inline formAlert' id='contactPhoneError'> <i class='icon-edit formAlertIcon'></i> Please enter your phone number </span> <span class='help-inline formAlert' id='contactPhoneInvalidError'> <i class='icon-exclamation-sign formAlertIcon'></i> Invalid phone number </span> </div> 
         </div> 
         </div> 

Używając tego kodu, forma wygląda to zdjęcie: Form correctly displaying on desktop

ale kiedy zmiana rozmiaru przeglądarkę symulować mniejszy ekran, szerokość pola z add-on poprzedzany jest nieprawidłowo wielkości, jak widać tutaj: Form incorrectly displaying on tablet and phone

PYTANIE

  • Czy istnieje inny sposób ta forma powinna być zakodowana tak że pola wprowadzania & ikona w 100% i dopasować pozostałe pola?
  • Czy muszę zmienić CSS w Bootstrap, aby to zmienić?

Odpowiedz

7

Okazuje się, że jest to znany problem i zostaną uwzględnione w wersji 3. [SOURCE]

+1

Co o obejściu na razie? (BS3 może nie być gotowy od pewnego czasu.) –

+0

@DavidJames - czy widziałeś obejście tego problemu? Nie mam. – adamdehaven

+0

JavaScript może to zrobić, ale nie znam przyzwoitego podejścia CSS, które będzie. –

13

Bootstrap 3 nie jest jeszcze na zewnątrz, więc tutaj jest mój prosty i działa rozwiązanie zarówno dla dołączania i przypadki prepend. Zawierać to po Bootstrap CSS/LESS plików:

.input-append.input-block-level, 
.input-prepend.input-block-level { 
    display: table; 
} 

.input-append.input-block-level .add-on, 
.input-prepend.input-block-level .add-on { 
    display: table-cell; 
    width: 1%; /* remove this if you want default bootstrap button width */ 
} 

.input-append.input-block-level > input, 
.input-prepend.input-block-level > input { 
    box-sizing: border-box; /* use bootstrap mixin or include vendor variants */ 
    display: table; /* table-cell is not working well in Chrome for small widths */ 
    min-height: inherit; 
    width: 100%; 
} 

.input-append.input-block-level > input { 
    border-right: 0; 
} 

.input-prepend.input-block-level > input { 
    border-left: 0; 
} 

Użyj go, jak to w kodzie HTML i pamiętać, trzeba użyć a tagów nie button dla przycisków w tym przypadku:

<div class="input-append input-block-level"> 
    <input type="text" /> 
    <a class="btn add-on">click</a> 
</div> 
+0

Po prostu próbowałem twój kod, aby rozwiązać mój problem: http://stackoverflow.com/questions/18255699/resizing-jasnys-bootstrap-fileupload-form Ale to nie działało zgodnie z oczekiwaniami. Problem polega na tym, że istnieją teraz 2 przyciski w rzędzie razem z polem wprowadzania. Jakieś pomysły? – aronadaal

+0

@smajl - to działa idealnie. Słowa nie mogą wyrazić, jak szczęśliwy, że właśnie mnie stworzyłeś. –

+0

Nawet jeśli jest odważne, nie zauważyłem, że musi to być tag "a". – Stone