You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在不使用CSS columns或column-count属性的情况下创建上下连续的列

实现兼容PDF的两列垂直排列布局

需求说明

要实现两列垂直排列的布局(左列依次显示1、3、5、7,右列依次显示2、4、6、8),但必须避免使用columns、column-count和grid-template-rows: masonry属性,因为页面需要支持PDF渲染,这些属性无法被PDF兼容。

你当前尝试的浮动代码会按行排列内容(12、34、56、78),不符合预期效果:

.container{max-height: 200px;}
.item{width: 50%;float: left;}
<div class="container">
  <div class="item">1</div>
  <div class="item">2</div>
  <div class="item">3</div>
  <div class="item">4</div>
  <div class="item">5</div>
  <div class="item">6</div>
  <div class="item">7</div>
  <div class="item">8</div>
</div>

解决方案

最兼容PDF渲染的方式是拆分内容到两个独立的列容器,结构简单且渲染稳定:

代码示例

.container {
  max-height: 200px;
}
.column {
  width: 50%;
  float: left;
  box-sizing: border-box; /* 防止宽度溢出 */
}
.item {
  /* 按需添加样式,比如内边距、边框 */
  padding: 8px;
}
<div class="container">
  <!-- 左列容器 -->
  <div class="column">
    <div class="item">1</div>
    <div class="item">3</div>
    <div class="item">5</div>
    <div class="item">7</div>
  </div>
  <!-- 右列容器 -->
  <div class="column">
    <div class="item">2</div>
    <div class="item">4</div>
    <div class="item">6</div>
    <div class="item">8</div>
  </div>
</div>

如果是动态生成的内容,不管是后端渲染还是前端JS处理,只需把奇数项放进左列容器、偶数项放进右列容器即可,完全不依赖PDF不兼容的CSS属性。


内容的提问来源于stack exchange,提问作者h3n

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 16:52:50