如何在缩小时修复 angular-gridster 项目的重叠

how to fix overlapping of angular-gridster items while shrinking

我正在使用 angularjs 1.5.8 并尝试实现这样的 angular gridster 布局

并且在移动模式下元素堆叠在彼此之下。我的gridster-options如下

 this.standardItems = [
        { sizeX: 2, sizeY: 1, row: 0, col: 0 },  
        { sizeX: 2, sizeY: 1, row: 1, col: 0 },
        { sizeX: 4, sizeY: 2, row: 0, col: 2 },
        { sizeX: 2, sizeY: 1, row: 2, col: 0 },
        { sizeX: 2, sizeY: 1, row: 2, col: 2 },
        { sizeX: 2, sizeY: 1, row: 2, col: 4 },
    ];

    $scope.gridsterOpts2 = {
        margins: [20, 20],
        outerMargin: false,
        swapping: false,
        pushing: false,
        rowHeight: 'match',
        mobileBreakPoint: 600,
        margins: [10, 10],
        floating: false,
        isMobile: true,
        draggable: {
            enabled: false
        },
        resizable: {
            enabled: false,
            handles: ['n', 'e', 's', 'w', 'se', 'sw']
        }
    };

我也用过下面的样式

.smalltiles{
  min-height: 30%;
}

.largetile{
  min-height: 60%;
}

.gridster .gridster-item {
  -webkit-box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
  -moz-box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
  box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
  color: #004756;
  background: #ffffff;
  padding-top: 5px;
  padding-bottom: 0px;
  background: blue;
  font-size: 50px;
  color:white;
}
.gridster{
  min-height:100%;
}
.gridster-item{
  margin-bottom: 10px;
}

当网格在桌面屏幕上缩小时看起来很好,或者在全屏下网格重叠并且彼此下方的元素开始像这样重叠。

我该如何处理。是不是我排版错了先谢谢了。

注意: 如果给出一个使用 bootstrap css 类 的例子会更好

终于成功地通过将 ng-class="{smalltiles:item.sizeY<2,largetile:item.sizeY>1}" 添加到 gridster 项目来复制您的问题,请参阅 https://jsfiddle.net/cerwwxd8/9/,并尝试将 2 (SMALL TILE) 移动到 3(大瓷砖)。此 fiddle 使用 min-height CSS 规则。

这里 https://jsfiddle.net/cerwwxd8/10/ 所有 min-height CSS 规则都替换为 height CSS 规则,这里移动 2 (SMALL TILE ) 以上 3 (LARGE TILE) 不会产生重叠。

顺便说一句:此 fiddle 中的索引使用 attr() CSS 函数打印,该函数从 tabindex HTML 属性 内容 CSS 规则:

.smalltiles{
  text-align: center;
  height: 30%;
}
.smalltiles:after {
  font-size: 0.5em;
  content: attr(tabindex) ' (SMALL TILE)';
}

.largetile{
  text-align: center;
  height: 60%;
}
.largetile:after {
  font-size: 0.7em;
  content: attr(tabindex) ' (LARGE TILE)'
}