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

CSS实现多个同样式div容器单列多行排列的布局方案

实现方案

问题定位

原有代码无法实现单列多行排布,核心问题有两个:

  • .dot类设置了position: absolute和固定的top/left偏移、位移变换,所有带该类的元素会脱离普通文档流,全部重叠在同一坐标位置,无法按顺序排列
  • 父容器.right仅配置了flex方向、换行属性,未声明display: flex,flex布局规则完全不生效,同时设置的float属性会和flex布局产生冲突,导致布局错乱

具体修改步骤

  • 保留.dot类所有和卡片视觉效果相关的样式(阴影、圆角、内部flex布局、固定宽度、hover动效等),删除绝对定位、固定偏移、位移变换属性,新增下外边距拉开卡片之间的垂直距离
  • 调整父容器.right样式:删除冲突的float属性,声明为flex容器,设置纵向排列规则,可根据需要配置对齐方式控制整列卡片的水平位置
  • 在父容器内放入6个.dot结构,所有卡片完全复用原有样式即可

完整修改代码

CSS部分

.dot:hover{
    box-shadow: 0 15px 30px rgba(0,0,0,.5);
}
.dot{
    padding: 20px;
    box-sizing: border-box;
    background: #D3D3D3;
    border-radius: 4px;
    box-shadow: 0 5px 15px rgba(0,0,0,.5);
    display: flex;
    width: 600px;
    transition: .5s;
    margin-bottom: 20px;
}
.dot .imgBx{
    width: 150px;
    flex: 0 0 150px;
}
.dot .imgBx img{
    max-width: 100%;
}
.dot .content{
    padding-left: 20px;
}
.dot .content p{
    text-align: justify;
}

.right{
    display: flex;
    flex-direction: column;
    /* 如需整列靠右对齐保留该行,居中改为center,靠左改为flex-start */
    align-items: flex-end;
    width: 100%;
    padding: 20px;
    box-sizing: border-box;
}

HTML部分

<div class="right">
    <div class="dot">
        <div class="imgBx">
            <img src="{% static 'images/banner/bg.PNG' %}">
        </div>
        <div class="content">
            <p>Bangladesh's apparel exporters concerned as NBR firm on bond licencing</p>
        </div>
    </div>
    <div class="dot">
        <div class="imgBx">
            <img src="{% static 'images/banner/bg.PNG' %}">
        </div>
        <div class="content">
            <p>第二条资讯内容</p>
        </div>
    </div>
    <div class="dot">
        <div class="imgBx">
            <img src="{% static 'images/banner/bg.PNG' %}">
        </div>
        <div class="content">
            <p>第三条资讯内容</p>
        </div>
    </div>
    <div class="dot">
        <div class="imgBx">
            <img src="{% static 'images/banner/bg.PNG' %}">
        </div>
        <div class="content">
            <p>第四条资讯内容</p>
        </div>
    </div>
    <div class="dot">
        <div class="imgBx">
            <img src="{% static 'images/banner/bg.PNG' %}">
        </div>
        <div class="content">
            <p>第五条资讯内容</p>
        </div>
    </div>
    <div class="dot">
        <div class="imgBx">
            <img src="{% static 'images/banner/bg.PNG' %}">
        </div>
        <div class="content">
            <p>第六条资讯内容</p>
        </div>
    </div>
</div>

调整卡片间距可修改.dot的margin-bottom数值,调整整列卡片水平位置修改.right的align-items属性值即可,不需要给单个卡片添加定位。

内容的提问来源于stack exchange,提问作者Hania Hafeez Khan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 01:33:18