Div, использующие d-inline, отображаются в двух строках

#bootstrap-4 #inline #col

#bootstrap-4 #встроенный #col

Вопрос:

Я пытаюсь отобразить два или три div в одной строке, но они всегда отображаются в двух. Вот мой jsfiddle, и код приведен ниже. Два блока кода одинаковы, за исключением того, что во втором используются два div, так как я думал, что это может иметь значение, но это не так. Как мне сделать все это в одной строке в Bootstrap4, используя row / col?

     <div class="row justify-content-center"> 
      <div class="col-3 d-inline-block">Title</div>     
      <form>
        <div class="col-2 d-inline-block">Search
           <input type="text" name="search">
        </div>
      </form>
    </div>     
     
    <div class="row justify-content-center"> 
      <div class="col-3 d-inline-block">Title</div>     
      <form>
        <div class="col-2 d-inline-block">Search</div>
        <div class="col d-inline-block"><input type="text" name="search"></div>
      </form>
     </div>    
  

Ответ №1:

Строки ( .row ) и столбцы ( .col-* ) начальной загрузки создаются с помощью flex box. Столбцы должны быть прямыми дочерними элементами строк, чтобы они вступали в силу. Тот факт, что у вас есть <form /> , который переносит метку поиска и ввод прерывает это.

Если вы хотите создать встроенную форму, для .form-inline этой цели есть класс:https://getbootstrap.com/docs/4.5/components/forms/#inline-forms

Вы можете попробовать следующий макет для встроенной формы:

 <div class="container">    
    <div class="row justify-content-center align-items-center"> 
        <div class="col-3">Title</div>     
        <form class="form-inline">
            <label for="search" class="mr-2">Search</label>
            <input id="search" type="text" name="search" class="form-control" />
        </form>
    </div>    
</div>
  
  • .align-items-center : элементы в строке должны располагаться по вертикали, необязательно
  • .form-inline : сделайте форму встроенной, обязательно
  • .mr-2 : поместите правое поле на метку поиска, чтобы между формой и самой формой был пробел, необязательно

введите описание изображения здесь

демонстрация: https://jsfiddle.net/davidliang2008/Lt9fy6wb/11 /

Комментарии:

1. Это сработало отлично. Я ценю, что вы упомянули вертикальный центр, поскольку я боролся с этим в другом фрагменте кода. Спасибо.