Bootstrap 3 - сбой "переход"
Я получаю странное поведение при использовании функции коллапса начальной загрузки. При свертывании и разворачивании div
демонстрирует поведение "прыжка".
Это показано в следующей скрипте.
Здесь код
<button class="btn btn-default" type="button" data-toggle="collapse" data-target="#refine-search" aria-expanded="false" aria-controls="refine-search">
Refine Search
<span class="caret"></span>
</button>
<div class="collapse refine-search-collapse-container well" id="refine-search">
<form class="form-horizontal">
<div class="form-group">
<div class="col-sm-6">
<select class="form-control">
<option value="">ad</option>
<option value="">sfsd</option>
<option value="">sdf</option>
<option value="">sf</option>
<option value="">sdf</option>
</select>
</div>
</div>
<div class="form-group">
<div class="col-sm-6">
<select class="form-control">
<option value="">Blah1</option>
<option value="">Blah2</option>
<option value="">Blah3</option>
<option value="">Blah4</option>
<option value="">Blah5</option>
</select>
</div>
</div>
<div class="form-group">
<div class="col-sm-6">
<input type="number" class="form-control">
</div>
</div>
<div class="form-group">
<div class="col-sm-6">
<select class="form-control">
<option value="">Yes</option>
<option value="">No</option>
</select>
</div>
</div>
</form>
</div>
<div class="">
<h3>Search Result</h3>
</div>
Ответы
Ответ 1
Перейти в collapse
обусловлен .well
классом CSS.
.well
класс добавляет margin-bottom: 20px;
, который вызывает скачок, когда свойство collapse
получает свойство display:none
. И padding
of .well
также играет роль в этом прыжке.
Чтобы сделать его collapse
более плавным, добавьте класс .well
внутри .collapse
DIV
как показано ниже, и это CSS
.
Чтобы быстро его увеличить, .well
добавляет класс margin-bottom, padding, and min-height
, который вызывает прыжок, так как он влияет на коробку-модель на display:none
.
.refine-search-collapse-container .well {
margin-bottom: 0;
}
<link href="http://netdna.bootstrapcdn.com/bootstrap/3.1.0/css/bootstrap.min.css" rel="stylesheet" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="http://netdna.bootstrapcdn.com/bootstrap/3.1.0/js/bootstrap.min.js"></script>
<button class="btn btn-default" type="button" data-toggle="collapse" data-target="#refine-search" aria-expanded="false" aria-controls="refine-search">
Refine Search
<span class="caret"></span>
</button>
<div class="collapse refine-search-collapse-container" id="refine-search">
<form class="form-horizontal well">
<div class="form-group">
<div class="col-sm-6">
<select class="form-control">
<option value="">ad</option>
<option value="">sfsd</option>
<option value="">sdf</option>
<option value="">sf</option>
<option value="">sdf</option>
</select>
</div>
</div>
<div class="form-group">
<div class="col-sm-6">
<select class="form-control">
<option value="">Blah1</option>
<option value="">Blah2</option>
<option value="">Blah3</option>
<option value="">Blah4</option>
<option value="">Blah5</option>
</select>
</div>
</div>
<div class="form-group">
<div class="col-sm-6">
<input type="number" class="form-control">
</div>
</div>
<div class="form-group">
<div class="col-sm-6">
<select class="form-control">
<option value="">Yes</option>
<option value="">No</option>
</select>
</div>
</div>
</form>
</div>
<div class="">
<h3>Search Result</h3>
</div>
Ответ 2
Я обновил вашу скрипку, перейдя по ссылке, может быть, это может вам помочь.
JSFiddle
Поместите свой класс well
с помощью элемента form
и просто добавьте ниже CSS
Код CSS -
.well{
margin-bottom:0px;
}
Ответ 3
У вас не должно быть никаких дополнений или полей на складном элементе. Это то, что вызывает эффект прыжка.
т.е.: в вашем случае у него есть дополнительные классы, которые добавляют отступы и поля.
<div class="refine-search-collapse-container well collapse">
Если вы хотите сохранить все текущие стили, такие как .well
и т.д., лучше всего обернуть существующий сворачиваемый элемент вокруг другого тега и сделать родительский div разборным элементом,
См. обновленный пример:
В вашем случае вам понадобится .clearfix
на сбрасываемом элементе, так как он имеет дочерний элемент, который будет переполняться из-за класса .well
http://jsfiddle.net/vuk1dbag/19/
Ответ 4
Привет, это ваш fiddle после обновления. Ваш код должен выглядеть так:
<div class="container">
<div class="row">
<div class="col-xs-12">
<button class="btn btn-default" type="button" data-toggle="collapse" data-target="#refine-search" aria-expanded="false" aria-controls="refine-search">
Refine Search
<span class="caret"></span>
</button>
</div>
<div class="clearfix"></div>
<div class="col-xs-12">
<form class="form-horizontal collapse" id="refine-search">
<div class="form-group">
<div class="col-sm-6">
<select class="form-control">
<option value="">ad</option>
<option value="">sfsd</option>
<option value="">sdf</option>
<option value="">sf</option>
<option value="">sdf</option>
</select>
</div>
</div>
<div class="form-group">
<div class="col-sm-6">
<select class="form-control">
<option value="">Blah1</option>
<option value="">Blah2</option>
<option value="">Blah3</option>
<option value="">Blah4</option>
<option value="">Blah5</option>
</select>
</div>
</div>
<div class="form-group">
<div class="col-sm-6">
<input type="number" class="form-control">
</div>
</div>
<div class="form-group">
<div class="col-sm-6">
<select class="form-control">
<option value="">Yes</option>
<option value="">No</option>
</select>
</div>
</div>
</form>
</div>
<div class="clearfix"></div>
<div class="col-xs-12">
<h3>Search Result</h3>
</div>
</div>
</div>
Ответ 5
Не должно быть padding-bottom or padding-top
для этих div с классом .collapse. Это дополнение делает эффект перехода
Ответ 6
Это старая ошибка, которая не будет исправлена в версии 3. Установите margin-bottom
для well
на 0. Возможно, вам придется установить верхнее и нижнее поля и/или заполнение других элементов на 0, также в зависимости от где они относительно того, что вы разрушаете (в этом случае хорошо). Тебе просто придется поиграть, к сожалению.
Кроме того, если вы свернете/развернете несколько элементов близко друг к другу и захотите отрегулировать пространство между ними после установки полей и/или отступов в 0 (что будет все вместе), хак, который работает (но который я презираю, используя ) поместить пустой div
между ними и вместо этого отрегулировать верхний и нижний отступы или поля.
Здесь вопрос о Github: https://github.com/twbs/bootstrap/issues/12093
Ответ 7
Удалите класс well
из этого следующего div
, он будет работать нормально; без эффекта прыжка.
<div class="collapse refine-search-collapse-container well" id="refine-search">
По умолчанию refine-search-collapse-container
div
не принимает никакой высоты, но при нажатии на кнопку Refine Search
, чтобы скрыть секцию refine-search-collapse-container
, она принимает высоту "40 пикселей". Это вызывает проблему, поэтому эта проблема с прыжками произошла.
![enter image description here]()