2016-12-10 2 views
3

Я использую Bootstrap 3.3.7. У меня есть горизонтальный вид с этикеткой менее флажком, как это:Bootstrap left align checkbox в горизонтальной форме

<div class="container-fluid" style="max-width:600px"> 
    <form class="form-horizontal"> 
    <div class="form-group"> 
     <label class="control-label col-sm-2" for="field1">Field 1:</label> 
     <div class="col-sm-8"> 
     <input class="form-control" type="text" id="field1"/> 
     </div> 
    </div> 
    <div class="form-group"> 
     <label class="control-label col-sm-2" for="field2">Field 2:</label> 
     <div class="col-sm-8"> 
     <input class="form-control" type="text" id="field2"/> 
     </div> 
    </div> 
    <div class="form-group"> 
     <label class="control-label col-sm-2" for="field3">Field 3:</label> 
     <div class="col-sm-8"> 
     <!-- HERE IS THE CHECKBOX: --> 
     <input class="form-control" type="checkbox" id="field3"/> 
     </div> 
    </div> 
    <div class="form-group"> 
     <div class="col-sm-offset-2 col-sm-8"> 
     <button class="btn btn-default btn-primary" type="submit">Apply Changes</button> 
     </div> 
    </div> 
    </form> 
</div> 

Я создал Bootply demo here.

Проблема заключается в том, что флажок находится по центру. Я хотел, чтобы он был выровнен по левому краю, поэтому левый край выравнивается с левым краем текстовых входов над ним.

Как это сделать?

Я пробовал:

  • Добавление класса text-left в DIV, который содержит флажок (результат: нет эффекта).
  • Удаление спецификаторов ширины сетки из флажка div (результат: он просто заканчивается на следующей строке).
  • Включая ввод флажка в теге label, дикая догадка после чтения this post (результат: он исчезает).
  • Случайные ручные перестановки дивов (результат: сокрушение духа, git checkout для возврата изменений).

У меня нет идей.

ответ

5

Вы можете добавить класс флажком? Попробуйте это:

<input class="form-control move-left" type="checkbox" id="field3"> 

.move-left { 
    width: auto; 
    box-shadow: none; 
    } 

Демо: http://www.bootply.com/At8YVfnm5F

Обновлено согласно комментарий круговорота в.

+0

Отлично.Наверное, я бы обнаружил, что ширина была виновницей, если бы я подошел ближе к инспектору. Это также избавляет от теневой границы, которая на самом деле беспокоила меня, хотя я не спрашивал об этом. –

+0

Также (благодарность gyre), [добавление класса 'checkbox-inline'] (http://stackoverflow.com/questions/41081275/bootstrap-left-align-checkbox-in-horizontal-form/41081354#comment69368941_41081343) сверху Это также фиксирует вертикальное выравнивание. –

+0

отлично, рад, что это помогло. Не знал о флажке-inline, это удобно – sol

3

Попробуйте изменить класс div, в котором установлен ваш флажок с col-sm-8 по номеру col-sm-1, а затем добавлен класс checkbox-inline к вашему элементу ввода.

Демо:http://www.bootply.com/kjF1gVtWDC

<div class="col-sm-1"> 
    <!-- HERE IS THE CHECKBOX: --> 
    <input class="form-control checkbox-inline" type="checkbox" id="field3" /> 
</div> 
+0

О, я вижу. Я думаю, что это работает в течение 1/12-го, ширина контейнера меньше высоты строки формы, что верно в моем случае с разрешением 600 пикселей. Я сожалею, добавив max-width к моему примеру, но слишком поздно, хе-хе. Интересно, есть ли решение для более широких форм? Также вертикальное выравнивание немного выключено (это немного меньше пикселей), но я полагаю, что теперь я смогу жить с этим. –

+2

@JasonC Выравнивание по вертикали вызвано 'margin: 4px 0 0;' - в игре с вашей скрипкой можно изменить свои свойства css в консоли разработчика. и высоту линии. –

+0

@ Fred-ii- Cool, установка 'margin: 0' исправляет это. Это выполняет свою работу. Я собираюсь дать ему еще несколько минут, чтобы узнать, есть ли у кого-нибудь предложения по поводу случаев с более крупными родительскими контейнерами, прежде чем я его приму. –

3

Вы можете изменить ширину первоначальной или авто для ввода идентификатора LiveOnBootplay

input#field3 { 
    width: auto; 
    } 
Смежные вопросы