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

如何将HTML/CSS/原生JS实现的折叠面板按钮调整为并排显示

实现折叠按钮并排的解决方案

实现起来不需要修改现有JS逻辑,仅调整HTML结构和CSS样式即可,操作如下:

核心修改思路

  • 给所有折叠模块套一个父容器,使用Flex布局实现子元素水平排列
  • 调整边距和宽度规则,避免展开内容时布局错位
  • 增加自适应规则,小屏幕下自动折行避免溢出

修改后的完整代码

HTML

<section class = "Title">
    <p> Title of Example</p>
    <!-- 新增父容器包裹所有折叠模块 -->
    <div class="collapse-wrapper">
        <div class = "collapse">
            <button class = "collapse__button"> Example 1 </button> 
                <div class="collapse__content">
                    <p>
                        writing
                    </p>
                </div>
        </div>
        
        <div class = "collapse">
            <button class = "collapse__button"> Example 2 </button> 
                <div class="collapse__content">
                    <p>
                        more writing
                    </p>
                </div>
        </div>
    </div>
</section>

CSS

/* 新增父容器样式 */
.collapse-wrapper {
    display: flex;
    justify-content: center;
    gap: 3em; /* 控制两个折叠模块之间的间距 */
    flex-wrap: wrap; /* 小屏幕自动折行 */
}
/* 给每个折叠模块固定宽度,避免展开内容时布局变形 */
.collapse {
    width: 200px;
}
.collapse__button {
    padding: 1em 2em ;
    background: var(--clr-dark);
    color: var(--clr-light);
    text-decoration: none;
    cursor: pointer;
    font-size: .8rem;
    text-transform: uppercase;
    letter-spacing: 2px;
    font-weight: var(--fw-bold);
    transition: transform 200ms ease-in-out;
    width: 100%; /* 按钮撑满折叠模块宽度 */
    margin: 2em 0; /* 去掉原有的左右margin,用父容器gap控制间距 */
    border: 8px var(--clr-accent);
    border-radius: 20px;
}
.collapse__button:hover{
    transform: scale(1.1);
    background: var(--clr-accent);
}
.collapse__button::after{
    content: "\25be";
    float: right;
    transform: scale(1);
}
.collapse__content{
    overflow: hidden;
    max-height: 0;
    transition: max-height 0.2s;
    padding: 0 15px;
}
.collapse__button--active::after{
    content: "\25b4";
}
.Title{
    text-align: center;
}

JavaScript(无需修改,可直接沿用)

document.querySelectorAll(".collapse__button").forEach(button =>{
    button.addEventListener("click", () =>{
        const collapseContent = button.nextElementSibling;
        button.classList.toggle("collapse__button--active");
        if (button.classList.contains("collapse__button--active")){
            collapseContent.style.maxHeight = collapseContent.scrollHeight + "px";
        }else{
            collapseContent.style.maxHeight = 0;
        }
    });
});

如果需要调整按钮间距,直接修改.collapse-wrapper的gap值即可;如果需要调整按钮宽度,同步修改.collapse的width值就行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 18:27:04