当前位置: 首页 > news >正文

css-多条记录,自动换行与自动并行布局及gap兼容

实现这样的内容布局,当一段文案长度超过当前行的时候自动占据一行,其他相近的不超过一行自动放在一行间隔隔开
在这里插入图片描述

关键实现原理:

  1. 弹性布局容器

    .history-container {display: flex;flex-wrap: wrap;gap: 12px;
    }
    
    • 使用flex-wrap: wrap允许项目自动换行
    • gap属性设置项目之间的间距
  2. 单行文本处理

    .history-item {white-space: nowrap;overflow: hidden;text-overflow: ellipsis;
    }
    
    • 默认单行显示,超出部分显示省略号
  3. 多行文本处理

    .history-item.multi-line {white-space: normal;word-break: break-all;
    }
    
    • 当添加.multi-line类时,文本自动换行
    • word-break: break-all允许在任意字符间断行
  4. 智能换行判断

    document.querySelectorAll('.history-item').forEach(item => {if (item.textContent.length > 20) {item.classList.add('multi-line');}
    });
    
    • 通过JS自动检测文本长度,超过阈值(20字符)时添加多行样式
  5. 响应式设计

    • 容器使用max-width: 600px限制最大宽度
    • 项目使用max-width: 100%防止溢出
    • 使用相对单位(px)确保布局稳定

当gap不被识别

浏览器兼容性对比

方法兼容性优点缺点
gap 属性现代浏览器简洁直观IE、旧版移动浏览器不支持
margin 替代所有浏览器完全兼容需要负边距技巧
padding + margin所有浏览器简单易用容器需要额外空间
CSS Grid + marginIE10+强大布局能力需要理解负边距

实现

方案1:使用 margin 替代 gap
.history-container {display: flex;flex-wrap: wrap;/* 移除 gap: 12px; */margin: -6px; /* 负边距抵消子元素边距 */
}.history-item {margin: 6px; /* 替代 gap */
}
方案2:使用 padding + margin 组合
.history-container {display: flex;flex-wrap: wrap;padding: 6px; /* 容器内边距 */
}.history-item {margin: 6px; /* 项目外边距 */
}
方案3:使用 CSS Grid + margin
.history-container {display: grid;grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));/* 使用 margin 替代 gap */
}.history-item {margin: 6px;
}
http://www.dtcms.com/a/266957.html

相关文章:

  • 智能私域运营中枢:从客户视角看 SCRM 的体验革新与价值重构
  • $route
  • Dash 安装使用教程
  • 浅层神经网络:原理与Python实现
  • Golang服务端处理Unity 3D游戏地图与碰撞的详细实现
  • docker运行的一些常用命令
  • SAP入门到放弃系列-流程订单-Process Instruction Category-自定义设置
  • QNetworkAccessManager异步请求有时候操作UI控件崩溃问题
  • ASP.NET MVC架构 路由提取
  • 第2期汽车模型数字工程沙龙,世冠科技分享汽车控制系统开发国产应用
  • 飞凌OK3568核心板与FPGA之间PCIe通信测试操作手册
  • FPGA实现40G网卡NIC,基于PCIE4C+40G/50G Ethernet subsystem架构,提供工程源码和技术支持
  • Day05: Python 中的并发和并行(1)
  • 堆的应用(建堆、堆排序、TOP-K问题)
  • 网安系列【3】之深入理解内容安全策略(CSP)
  • 迁移Ubuntu启动文件到另一块硬盘
  • ubuntu 18.04配置镜像源
  • 操作Choose Boot Java Run time for the IDE 导致AS重新安装后依然无法启动(已解决)
  • 考研408《计算机组成原理》复习笔记,第三章(3)——多模块存储器
  • Web前端:全选框的使用
  • Abase和ByteKV存储方案对比
  • 【C#】入门
  • tmux 左下角会话名显示不全的解决方法
  • SpringBoot-规划多模块目录结构
  • 项目介绍:Awesome System Prompts
  • 免费PDF处理软件,支持多种操作
  • 开源项目XYZ.ESB:数据库到数据库(DB->DB)集成
  • 系统架构师
  • Class5多层感知机的从零开始实现
  • Linux awk 命令