左右固定,flex布局 固定的图片个数 中间距离自适应

      <div class="bookView" v-loading="state.bookViewLoading">
        <div class="bookEle" v-for="(item, index) in state.bookViewData" :key="item.id">
          <el-image @click="toDetail(item)" :src="item.imageUrl" lazy>
            <template #error>
              <div class="image-slot">
                <img
                  @click="toDetail(item)"
                  src="@/assets/image/dashboard/noPicture.png"
                  style="width: 100%; height: 100%"
                  alt=""
                />
              </div>
            </template>
          </el-image>
          <div class="iaIcon" v-show="item.isAI">AI</div>
          <p @click="toDetail(item)">{{ item.bookName }}</p>
        </div>
      </div>
// // 动态计算每行放几个图片,及每个图片之间的自适应间距
const adjustImageSpacing = () => {
  const container = document.querySelector('.bookView')
  // 获取容器宽度并减去padding
  const containerWidth1 = container.offsetWidth
  const containerWidth = Math.floor(container.getBoundingClientRect().width)
  nextTick(() => {
    // 计算每行最多可放置的图片数量
    // const maxImagesPerRow = Math.floor(containerWidth / (159 + 28))
    // 计算每个图片之间的间距
    const gap = Math.floor((containerWidth - 6 * 159) / (6 - 1))
    // 设置图片间距,第一个和最后一个图片除外
    for (let i = 0; i < state.bookViewData.length; i++) {
      if ((i + 1) % 6 !== 0 && (i + 1) % 6 !== 1) {
        container.children[i].style.marginRight = `${gap}px`
      } else if ((i + 1) % 6 === 0) {
        container.children[i].style.marginRight = '0'
      } else if ((i + 1) % 6 === 1) {
        container.children[i].style.marginRight = `${gap}px`
      }
    }
  })
}

  • 10
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Flex布局可以实现图片自适应效果。通过设置容器的display属性为flex,可以让容器内的元素按照弹性布局排列。在Flex布局中,可以利用flex属性来控制元素的伸缩性,使其能够自适应容器的宽度。 具体实现方法如下: 1. 在CSS代码中,使用flex布局进行排列。可以使用flex-wrap属性来确定是否换行,并使用justify-content属性来控制元素在主轴上的对齐方式。 2. 根据图片个数和容器的宽度,计算出每个图片的宽度,并设置对应的样式。 3. 如果一行图片没有撑满容器的宽度,可以通过生成一个div元素并将图片撑满来实现自适应效果。 4. 将图片的数据按照一定的规则转化为二维数组,方便进行展示。 通过以上步骤,可以实现flex布局下的图片自适应效果。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Flex布局做出自适应页面(语法和案例)](https://download.csdn.net/download/weixin_38732842/13129690)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [flex布局(图片自适应展示)](https://blog.csdn.net/lydia_love/article/details/117264153)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [弹性盒子布局宽度自适应-图片自适应](https://blog.csdn.net/weixin_46078934/article/details/122837838)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值