Bootstrap flex, вызывающий переполнение div

#html #jquery #css #bootstrap-4 #flexbox

#HTML #jquery #css #bootstrap-4 #flexbox

Вопрос:

Я использую Bootstrap 4. Я столкнулся со странной проблемой. Я добавляю html с помощью jquery. div имеет call .col-md-9 d-flex. Когда другие div добавляются к основному div (в родительском каталоге col-md-9), он переполняется и занимает всю страницу (ширину) и перекрывает другой div (col-md-3). Код задается как

 <div class="container-fluid">
              <div class="row">
                  <div class="col-md-9 filters-div d-flex"><!-- the dynamic code will append to this div-->
                         <div class="col-md-2 col-xs-6">      
                            <div class="form-group">
                              <label>Date and time range:</label>

                              <div class="input-group">
                                <div class="input-group-prepend">
                                  <span class="input-group-text"><i class="far fa-clock"></i></span>
                                </div>
                                <input type="text" id="reservationdate" class="form-control float-right datetimepicker-input" data-toggle="datetimepicker" data-target="#reservationdate">
                              </div>
                              <!-- /.input group -->
                            </div>
                          <!-- /.form group -->
                          </div> 
                          
                    </div>
                    <div class="col-md-3 d-flex">
                      <div class="my-div">
                        <a href="javascript:void(0)" data-toggle="modal" data-target="#modal-default">
                              <i class="fas fa-filter"></i>Add Filters
                            </a>
                        <a href="#" class="btn btn-secondary close-result">Cancel</a>
                        <a href="javascript:void(0)" class="btn btn-success get-result">Submit</a>

                      </div>
                    </div>
                  </div>
              </div>
  

Jquery, который создает элемент dom, выглядит следующим образом

 $(document).delegate(".add-filter","click",function(){
    $val=$("#filter-add").val();
    $text=$('#filter-add option:selected').text();
  $new_text=$text.replace(/ /g, "-");

    $html="<div class='col-md-2 col-xs-6 delete-all' id='" $new_text "'><div class='form-group'>";
    $html ="<label>" $text ":</label>";
    $html ="<div class='input-group'>";
    $html ="<input type='text' class='form-control float-right'><div class='input-group-prepend'><span class='input-group-text delete-filter' data-text='" $text "' data-value='" $val "'><i class='fas fa-trash'></i></span> </div></div>";
    $html ="</div></div>";

    $(".filters-div").append($html);
    $("#filter-add option:selected").remove();
    $('#filter-add').prop('selectedIndex',0);

});
  

Дайте мне знать, в чем проблема. Пример здесь

Обновить:

Скриншот прилагается следующим образом

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

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

1. Какой конкретно элемент переполняется?

2. тот, который добавляется динамически из jquery. Когда вы их добавляете.

3. @kb_ вы можете попробовать ссылку, если вы добавите фильтр более 5, вы увидите проблему.

4. @kb_ я также добавил скриншот

Ответ №1:

Вы можете использовать flex-wrap для вашего div:

 <div class="col-md-9 filters-div d-flex flex-wrap"><!-- the dynamic code will append to this div-->
  

Вместо этого, если вы не хотите переносить, вы можете уменьшить максимальную ширину col-md-2:

 .col-md-2 {
    max-width: 12% !important;
}
  

Ваша проблема зависит от col-md-2: когда у вас их много, вы получаете проблему.