将元素对齐到上一行的底部

Align element to bottom of previous row

我正在使用 angular 从服务器加载项目列表并使用以下方法在页面上显示它们:

<div class="col-sm-6 col-md-4" ng-repeat="activity in activities">
    <img ng-src="[[ act.icon ]]" height="100" alt="">
    <h3>[[ act.title ]]</h3>
    <a class="btn btn-king small color smooth-scroll" ng-click="joinActivity(activity)">Join</a>
    <p>[[ act.description ]]<br>
        Duration: [[ activity.num_times ]] time<br>
        Points: [[ activity.points ]]<br>
    </p>
</div>

如您所见,小型显示屏应显示每行 2 个活动,中等和上等宽度为 3 个。我遇到的问题是并非所有行都显示所需的活动数。我的意思可以在下图中看到。

这与以下事实有关:某些活动的文本比其他活动多,因此它们的高度更高。下面的行将在尽可能高的位置插入下一个 activity,通常会弄乱格式。

我觉得有一些简单的 css 修复方法,但我似乎无法弄清楚。目标是下图。任何帮助将不胜感激。

您需要清除行并重置并在不同的断点再次应用这些清除。

clearing-bootstrap-3-columns

在您的情况下,您需要做的就是 md 屏幕上的每第二个项目之后和 sm 屏幕上的每第三个项目之后 清除行 屏幕。

像这样:

  <div ng-repeat="activity in activities">

    <!-- your item -->
    <div class="col-sm-6 col-md-4">
      <img ng-src="[[ act.icon ]]" height="100" alt="">
      <h3>[[ act.title ]]</h3>
      <a class="btn btn-king small color smooth-scroll" ng-click="joinActivity(activity)">Join</a>
      <p>[[ act.description ]]<br>
        Duration: [[ activity.num_times ]] time<br>
        Points: [[ activity.points ]]<br>
      </p>
    </div>

    <!-- clear row after every 3rd item on MD screens -->
    <div class="clearfix visible-md" ng-if="($index+1) % 3 === 0"></div> 

    <!-- clear row after every 2nd item on SM screens -->
    <div class="clearfix visible-sm" ng-if="($index+1) % 2 === 0"></div> 
  </div>

这里是plunker for demo