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

使用display:flex无法让API拉取的图文数据并排展示该如何解决

问题原因

  • display:flex设置对象错误:flex是容器属性,需要加在要排列元素的直接父级上,你给子元素img设置flex不会生效
  • DOM结构不合理:动态生成的图片和名称没有分组包裹,无法实现每组图文并排的效果
  • JS拼接HTML时未处理map返回的数组,会在页面上渲染出多余的逗号分隔符

修复代码

CSS修改

*{
    padding: 0;
    margin: 0;
    box-sizing: border-box;
}

/* 父容器设置flex,实现多组条目自动换行排列 */
#contain {
    display: flex;
    flex-wrap: wrap;
    gap: 24px;
    padding: 20px;
}

/* 每组演员条目单独设置flex,实现单组内图文并排 */
.actor-card {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 12px;
    border: 1px solid #eee;
    border-radius: 10px;
}

#contain img{
    width:12rem;
    border: 1px solid fuchsia;
    border-radius: 10px;
}

JavaScript修改

async function getMyData(){
     const response = await fetch(api)
     const myData = await response.json()
     const contain = document.querySelector('#contain');
     // 给每组图文包裹独立容器,map后加join('')消除多余逗号
     contain.innerHTML = myData.map(actor =>`
        <div class="actor-card">
            <img src='${actor.img}' alt='${actor.name}'>
            <h3>${actor.name}</h3>
        </div>
     `).join('')
}

getMyData()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 23:36:03