css - Bootstrap 列推/拉未按预期工作

标签 css html twitter-bootstrap

我想针对小、中、大屏幕尺寸进行以下设计::

enter image description here

对于特别小的屏幕,我希望它是:

(image here)

这是我的代码:

.one {
  background-color: #00CCFF;
}
.two {
  background-color: #FFCCCC;
}
.three {
  background-color: #99CCFF;
}
.four {
  background-color: #CCFF33;
}
.five {
  background-color: #FF9900;
}
.six {
  background-color: #996666;
}
.mytab {
  height: 50px;
}
.abc {
  height: 100px;
  background-color: #090;
}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet"/>
<div class="row">
  <div class="col-xs-12 col-sm-9 col-sm-push-3 abc">ABC</div>
  <div class="col-xs-12 col-sm-3 col-sm-pull-9">
    <div class="row">
      <div class="col-xs-4 col-sm-12 one mytab">1</div>
      <div class="col-xs-4 col-sm-12 two mytab">2</div>
      <div class="col-xs-4 col-sm-12 three mytab">3</div>
    </div>
  </div>
  <div class="col-xs-12 col-sm-9 col-sm-push-3">
    <div class="row">
      <div class="col-xs-4 four mytab">4</div>
      <div class="col-xs-4 five mytab">5</div>
      <div class="col-xs-4 six mytab">6</div>
    </div>
  </div>
</div>
<!-- row -->

上面的代码只会导致超小尺寸的正确布局。对于所有其他尺寸,我得到以下结果:

Capture-now (image here)

我不需要空格。推/拉可能是我做错了什么。任何建议/代码更改建议都会非常有帮助。

最佳答案

您不需要使用pushpull 类来实现您想要的输出。对 CSS 进行以下更改:

  • ABC div 上,删除 .col-sm-push-3 并添加 .pull-rightdiv float 右边
  • 在包含123 的父div 上,删除.col- sm-pull-9
  • 在包含456 的父div 上,删除.col- sm-push-3

.one {
  background-color: #00CCFF;
}
.two {
  background-color: #FFCCCC;
}
.three {
  background-color: #99CCFF;
}
.four {
  background-color: #CCFF33;
}
.five {
  background-color: #FF9900;
}
.six {
  background-color: #996666;
}
.mytab {
  height: 50px;
}
.abc {
  height: 100px;
  background-color: #090;
}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet"/>
<div class="row">
  <div class="col-xs-12 col-sm-9 pull-right abc">ABC</div>
  <div class="col-xs-12 col-sm-3">
    <div class="row">
      <div class="col-xs-4 col-sm-12 one mytab">1</div>
      <div class="col-xs-4 col-sm-12 two mytab">2</div>
      <div class="col-xs-4 col-sm-12 three mytab">3</div>
    </div>
  </div>
  <div class="col-xs-12 col-sm-9">
    <div class="row">
      <div class="col-xs-4 four mytab">4</div>
      <div class="col-xs-4 five mytab">5</div>
      <div class="col-xs-4 six mytab">6</div>
    </div>
  </div>
</div>

为什么会这样?

当有足够的空间容纳它们时,左浮动元素应该彼此相邻堆叠。虽然这似乎应该发生在您的原始示例中,但它具有欺骗性,因为您使用了相对定位将框移动到所需位置。

实际上,包含123div 实际上位于parent div(它出现在左边是因为它被25%推到了left)所以没有空间给 456 div 适合,因此它被推到一个新行。

关于css - Bootstrap 列推/拉未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32329994/

相关文章:

javascript - ngClick 上的三元条件

android - Twitter bootstrap Holo 主题

javascript - 从选定的 Bootstrap 按钮组(复选框)获取数据值并分配给输入

html - 如何连续更改 bootstrap 3 中元素的顺序?

html - 将 bootstrap.css 文件链接到 Play 框架中的 scala.html 页面

html - Mac OS 中的神秘缩进 1px

css - @font-face 在 windows 和 mac 上抗锯齿

javascript 返回 404 错误和未捕获的引用

php - 我可以让一个数字出现在我的页面上然后让它每 z 秒增加 x

jquery - 分区单选按钮