Идеальная 100% -ная ширина родительского контейнера для ввода Bootstrap?

Как создать поле ввода Bootstrap на 100% больше его родительского?

Как сказал Стив-Оббриен в Bootstrap Issue # 1058:

Настройка на 100% не работает, если применяется непосредственно к полю ввода, так как она не принимает для учета заполнения. Таким образом, вы получаете 100% контейнера плюс заполнение в поле ввода, поэтому поле ввода обычно выходит за пределы его контейнера.

Этот билет предлагает различные решения, но я ищу лучший способ сделать это - предпочтительно класс CSS, уже предоставленный Bootstrap.

Ответ 1

Применение класса input-block-level отлично подходит для меня, используя различные ширины экрана. Он определяется Bootstrap в mixins.less следующим образом:

// Block level inputs
.input-block-level {
  display: block;
  width: 100%;
  min-height: 28px;        // Make inputs at least the height of their button counterpart
  .box-sizing(border-box); // Makes inputs behave like true block-level elements
}

Это очень похоже на стиль, предложенный 'ассемблером' в его комментарий к вопросу # 1058.

Ответ 2

Просто добавьте размер окна:

input[type="text"] {
    box-sizing: border-box;
}

Ответ 3

Для всех, кто использует Google, одно предложение - удалить все экземпляры класса input-group. Работала для меня в аналогичной ситуации. Исходный код:   

<form>
  <div class="bs-callout">
    <div class="row">
      <div class="col-md-4">
        <div class="form-group">
          <div class="input-group">
            <input type="text" class="form-control" name="time" placeholder="Time">
          </div>
        </div>
      </div>
      <div class="col-md-8">
        <div class="form-group">
          <div class="input-group">
            <select name="dtarea" class="form-control">
              <option value="1">Option value 1</option>
            </select>
          </div>
        </div>
      </div>
    </div>
    <div class="row">
      <div class="input-group">
        <input type="text" name="reason" class="form-control" placeholder="Reason">
      </div>
    </div>
  </div>
</form>

Ответ 4

Если вы используете шаблон С# ASP.NET MVC по умолчанию, вы можете обнаружить, что site.css переопределяет некоторые стили Bootstraps. Если вы хотите использовать Bootstrap, как я сделал, M $ override this (без вашего ведома) может стать источником большого разочарования! Не стесняйтесь удалить любой из нежелательных стилей...

/* Set width on the form input elements since they're 100% wide by default */
input,
select,
textarea {
    max-width: 280px;
}

Ответ 5

Я нашел решение, которое сработало в моем случае:

<input class="form-control" style="min-width: 100%!important;" type="text" />

Вам нужно только переопределить минимальную ширину, установленную на 100%, и важно, и результат будет таким:

enter image description here

Если вы не примените его, вы всегда получите это:

enter image description here

Ответ 6

Чтобы получить желаемый результат, вы должны установить "box-sizing: border-box" против стандартного значения "box-sizing: content-box". Это именно то, о чем вы говорите (из MDN):

Содержание ящика

Это начальное и значение по умолчанию, указанное в стандарте CSS. Свойства ширины и высоты измеряются, включая только содержимое, но не прописку, границу или маржу.

границы окна

Свойства ширины и высоты включают в себя содержимое, заполнение и границу, но не маржу.


Ссылка: https://developer.mozilla.org/en-US/docs/Web/CSS/box-sizing

Совместимость для этого CSS хороша.

Ответ 7

просто добавьте:

width: 100% !important;

Ответ 8

Как насчет?

    input[type="text"] {
          max-width:none;
   }

Проверка того, что некоторый файл css вызывает проблемы. По умолчанию bootstrap отображается по всей ширине. Например, в каталоге MVC Content является site.css, и существует ограничение, ограничивающее определение.

input,select,textarea {
max-width: 280px;}

Ответ 9

Используйте .container-fluid, если вы хотите использовать в качестве родителя полную ширину, охватывающую всю ширину вашего окна просмотра.