CSS多列避免中断

标签 css css-multicolumn-layout

我正在尝试使用 CSS 创建一个多列布局,其中有一些元素之间有标题。我尝试使用 break-after: avoid 来防止标题位于列的底部,但它似乎不起作用

这是显示我的问题的片段:

.columns-3 {
  column-count: 3;
}

.column-heading {
  font-weight: bold;
  break-after: avoid-column;
}
<div class="columns-3">
  <div class="column-heading">
    Heading
  </div>
  <div class="column-item">
    item
  </div>
  <div class="column-item">
    item
  </div>
  <div class="column-item">
    item
  </div>
  <div class="column-item">
    item
  </div>
  <div class="column-heading">
    Heading
  </div>
  <div class="column-item">
    item
  </div>
  <div class="column-item">
    item
  </div>
  <div class="column-item">
    item
  </div>
</div>

我还尝试使用 avoid-column 而不是 avoid 或避免在标题之后对元素进行中断

.column-heading + .column-item {
  break-before: avoid;
}

这是错误还是我误解了这些属性?
是否有另一种方法可以仅使用 css 来执行此操作,还是我必须在 JS/服务器代码中执行此操作?

最佳答案

试试这个:

    .columns-3 {
      column-count: 3;
    }

    .column-heading {
      font-weight: bold;
      break-after: avoid-column;
    }
<div class="columns-3">
  <div class="column-heading">
    Heading
  </div>
  <div class="column-heading">
    Heading
  </div>
</div>
<div class="columns-3">
  <div class="column-item">
    item
  </div>
  <div class="column-item">
    item
  </div>
  <div class="column-item">
    item
  </div>
  <div class="column-item">
    item
  </div>
  <div class="column-item">
    item
  </div>
  <div class="column-item">
    item
  </div>
  <div class="column-item">
    item
  </div>
</div>

关于CSS多列避免中断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53446169/

相关文章:

css - 同时旋转多个元素

jquery - 在元素上使用 jQuery fadeIn/fadeOut 会扰乱其定位

html - SCSS 中的 For 循环与变量组合

css - 在多列文本中,将 div 粘贴到底部

css - 两列 div 问题

html - 即使在 :avoid; 的情况下,CSS 列也会在 Chrome 中将元素分开

javascript - jQuery - 将数据从 jQuery 函数传递到特定的 div?

javascript - 使用 Angular 样式加载 CSS

css - 网格元素内的多列

html - 如何让我的色谱柱达到平衡?