技术文摘
父元素内两行子元素排布,超出隐藏,点击省略号按钮显示并现横向滚动条的实现方法
2025-01-09 12:45:27 小编
在网页设计中,父元素内两行子元素排布,并实现超出隐藏,点击省略号按钮显示并出现横向滚动条的效果,能够有效提升页面的美观度与用户体验。下面为大家详细介绍这一实现方法。
进行HTML结构搭建。创建一个父元素,在其中放置子元素内容,同时添加一个用于触发显示隐藏功能的省略号按钮元素。例如:
<div class="parent">
<div class="content">
<!-- 子元素内容 -->
</div>
<button class="ellipsis-btn">...</button>
</div>
接着,使用CSS来设置基本样式。将父元素设置固定宽度和高度,超出部分隐藏,即overflow: hidden。子元素内容根据需求设置合适的字体大小、行高等样式,并确保在两行显示时不溢出。对于省略号按钮,将其初始状态设置为隐藏,当满足一定条件时再显示。
.parent {
width: 300px;
height: 60px; /* 根据两行文本高度设定 */
overflow: hidden;
position: relative;
}
.content {
font-size: 16px;
line-height: 30px; /* 假设一行文本高度为30px */
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
}
.ellipsis-btn {
position: absolute;
bottom: 0;
right: 0;
display: none;
}
然后,通过JavaScript实现交互功能。监听省略号按钮的点击事件,当按钮被点击时,修改父元素的overflow属性为auto,同时显示横向滚动条,并隐藏省略号按钮。
const ellipsisBtn = document.querySelector('.ellipsis-btn');
const parent = document.querySelector('.parent');
ellipsisBtn.addEventListener('click', function() {
parent.style.overflow = 'auto';
this.style.display = 'none';
});
最后,还需添加逻辑判断,当子元素内容实际不超过两行时,不显示省略号按钮。通过获取子元素内容的高度并与父元素高度对比来实现。
const content = document.querySelector('.content');
if (content.offsetHeight <= parent.offsetHeight) {
ellipsisBtn.style.display = 'none';
} else {
ellipsisBtn.style.display = 'block';
}
通过以上HTML、CSS和JavaScript的综合运用,就能完美实现父元素内两行子元素排布,超出隐藏,点击省略号按钮显示并现横向滚动条的功能,为网页增添更加精致的交互效果。
- 2024 快应用开发者大会:AI 助力,构建未来智慧服务新生态
- C++中“{}初始化”的探索:优雅与高效融合
- MongoDB 6.0 推出全新迁移工具 MongoSync
- 微服务架构拆分的七条黄金准则
- 公司生产环境所采用的消息中间件是什么?
- Spring 异常与响应的统一处理探讨
- 深入解析 Java 中的并发原子类
- Spring Boot 助力动态加载 jar 包与动态配置,令人称赞!
- 告别 if 判断泛滥 试试规则执行器 真香!
- Spring Boot 与 devtools 实现轻松热部署
- 面试官提问:解释原型链工作原理,该如何回答?
- Python 在实战中解析抽象语法树
- JVM 类加载的五大过程全解析(附图解)
- 可哈希对象的定义及哈希值计算方式
- 引入 JaCoCo 引发的类型转换问题探讨,你懂了吗?