技术文摘
父元素内两行子元素排布,超出隐藏,点击省略号按钮显示并现横向滚动条的实现方法
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的综合运用,就能完美实现父元素内两行子元素排布,超出隐藏,点击省略号按钮显示并现横向滚动条的功能,为网页增添更加精致的交互效果。
- Echarts中实现发光3D图的方法
- JavaScript清除HTML标签属性的方法
- 原生JavaScript操作DOM实现HTML内容插入或删除的方法
- CSS布局中H标签溢出div背景原因探究
- Element-UI按钮点击后背景色残留问题的解决方法
- JavaScript 闭包中双括号()()是如何实现的
- 在 HTML 里怎样借助 PHP 条件判断来更改 input 元素的 readOnly 属性
- 表单输入框 readOnly 属性:代码实现控制可编辑性的方法
- CSS 实现逼真水球与波纹效果的方法
- Echarts 中借助 Echarts-gl 创建类似 3D 发光效果图表的方法
- Yii 2.0中Confirm弹框不显示的解决办法
- JavaScript 正则表达式怎样清除 HTML 标签的全部属性
- 利用ECharts-GL库创建发光3D图标的方法
- Nuxt移动端项目rem计算致CSS变形的解决方法
- JavaScript获取HTML上传文件绝对路径的方法