angularjs - CSS 中的渐进定位框分两列

标签 angularjs css twitter-bootstrap-3 sass

我正在为菜单构建类似于此 UI 的内容:

enter image description here

我正在寻找一种好方法来实现它。 我在这个元素中使用 Bootstrap 。 该容器是 Bootstrap 的 container-fluid ,位于其他 DIV 中,占屏幕宽度的 50%。这就是我使用 container-fluid 的原因 - 因为这不是固定宽度的容器。

我可以使用 bootstrap (3) Grid (col-xx-x) 或任何其他 CSS 解决方案。

这就是我到目前为止所做的,使用float: left

* {
  box-sizing: border-box;
}

.container-fluid {
  margin-top: 75px;
}

.menu-items {
  padding: 0;
  position: relative;
  list-style-type: none;
  text-align: center;
}

.menu-item {
  display: inline-block;
  float: left;
  width: 50%;
  height: 250px;
}

.menu-item:nth-child(odd) {
  margin-top: -65px;
}
.menu-item:nth-child(even) {
  margin-top: 95px;
}

.image-wrapper{
  display: inline-block;
}

.image {
  background-color: gray;
  width: 80px;
  height: 100px;
}
<div class="container-fluid">
  <ul class="menu-items">
    <li class="menu-item">
      <div class="image-wrapper">
        <div class="image"></div>
      </div>
      <div class="text-wrapper">
        <span>Item 1</span>
      </div>
    </li>
    <li class="menu-item">
      <div class="image-wrapper">
        <div class="image"></div>
      </div>
      <div class="text-wrapper">
        <span>Item 2</span>
      </div>
    </li>
    <li class="menu-item">
      <div class="image-wrapper">
        <div class="image"></div>
      </div>
      <div class="text-wrapper">
        <span>Item 3</span>
      </div>
    </li>
    <li class="menu-item">
      <div class="image-wrapper">
        <div class="image"></div>
      </div>
      <div class="text-wrapper">
        <span>Item 4</span>
      </div>
    </li>
  </ul>
</div>

你会如何实现它?

像我一样使用 float ? Flex 不是向后兼容性问题的选择。 使用引导网格? 其他方式?

最佳答案

您可以使用纯 CSS,通过 floatclear 来实现此目的,您只需向 block 添加 margin 即可。演示:

.container:after {
  content: "";
  display: table;
  clear: both;
}

.a,
.c {
  float: left;
}

.c {
  margin-top: 10px;
}

.b,
.d {
  float: right;
  margin-top: -30px;
}

.clear {
  clear: both;
}

/* just styles for demo */
.container {
  background-color: #e0e0e0;
  padding: 30px;
}

/* just styles for demo */
.item {
  background-color: orange;
  font-size: 2em;
  color: white;
  padding: 10px;
}
<div class="container">
  <div class="item a">One</div>
  <br class="clear" />
  <div class="item b">Two</div>
  <br class="clear" />
  <div class="item c">Three</div>
  <br class="clear" />
  <div class="item d">Four</div>
  <br class="clear" />
</div>

关于angularjs - CSS 中的渐进定位框分两列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45249848/

相关文章:

javascript - 绑定(bind)AngularJS Controller 数据查看

javascript - 将特殊字符转换为 HTML

javascript - AngularJS - 在 POST 请求的正文中发送数据

php - 如何分离表头?

drop-down-menu - Twitter Bootstrap 问题 : Right align the caret in the dropdown header

javascript - 如何使用 angucomplete-alt 中的值数组作为本地数据?

jquery - 在缩略图上显示鼠标上的链接图像

javascript - 滑入新内容的最佳方法是什么?

angularjs - 带有 AngularStrap 选择元素的 onchange 事件

html - 将 Bootstrap 3 div 放在居中的 div 中以居中