html - bootstrap 3 - 崩溃 'jump' 行为

标签 html css twitter-bootstrap

我在使用 bootstrap 的折叠功能时遇到了一个奇怪的行为。折叠和展开时,div 会呈现“跳跃”行为。

这显示在 following fiddle.

这是代码

<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>

最佳答案

collapse 中的Jump 是由于 .well (margin) 类 CSS。

.well 类添加 margin-bottom: 20px;collapse 得到 display:none 时会导致跳转> 属性(property)。而.wellpadding也在这次跳转中起作用。

为了让它collapse更平滑,在.collapseDIV中添加.well类 如下所示,还有这个 CSS


为了快速升级,.well 类添加了 margin-bottom、padding 和 min-height,这会导致 jump,因为它会影响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>

关于html - bootstrap 3 - 崩溃 'jump' 行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42465877/

相关文章:

javascript - 单页滚动改变图片效果(过渡)

javascript - 错误位置的动画加载

html - 如何将文本放置在与图像相同的高度

html - 限制在输入 html 标签处显示的字符

javascript - 如何进行自动工具提示验证消息?

javascript - 如何使 Bootstrap 轮播从单击按钮时的第一张幻灯片开始?

css - Bootstrap 全屏谷歌地图没有响应

html - Firefox 中 DIV 的位置有时不正确

jquery - 动态调整元素大小,但保持其背景比例

html - 如何在 SVG 标签上循环 CSS 动画