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

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.xdnf.cn/news/14805.html

相关文章:

  • linux_git的使用
  • 如何调节笔记本电脑亮度?其实有很多种方式可以调整亮度
  • 深入剖析MYSQL MVCC多版本并发控制+ReadView视图快照规避幻读问题
  • AD7780BRUZ-REEL ADI 24位低功耗ADC转换器 高精度传感器信号链一站式解决方案
  • js中的FileReader对象
  • 指针篇(7)- 指针运算笔试题(阿里巴巴)
  • 计算机科学导论(1)哈佛架构
  • 高功率的照明LN2系列助力电子元件薄膜片检测
  • 二叉树题解——验证二叉搜索树【LeetCode】后序遍历
  • 【狂飙AGI】第8课:AGI-行业大模型(系列2)
  • LangChain 全面入门
  • [ctfshow web入门] web94 `==`特性与intval特性
  • 【Python小工具】使用 OpenCV 获取视频时长的详细指南
  • 【Note】《深入理解Linux内核》Chapter 9 :深入理解 Linux 内核中的进程地址空间管理机制
  • FASTAPI+VUE3平价商贸管理系统
  • MySQL数据库----DML语句
  • 论文阅读笔记——Autoregressive Image Generation without Vector Quantization
  • uniapp打包微信小程序主包过大问题_uniapp 微信小程序时主包太大和vendor.js过大
  • 深度学习-逻辑回归
  • 深入理解 Redis Cluster:分片、主从与脑裂
  • Gemini CLI初体验
  • MySQL 8.0 OCP 1Z0-908 题目解析(17)
  • SciPy 安装使用教程
  • 数据结构:数组在编译器中的表示(Array Representation by Compiler)
  • NumPy-核心函数transpose()深度解析
  • MediaCrawler:强大的自媒体平台爬虫工具
  • 【python】OOP:Object-Oriented Programming
  • DHCP中继及动态分配
  • 全双工和半双工在以太网报文收发过程中的核心区别
  • 读书笔记:《DevOps实践指南》