用uniapp写一个页面,后端传输的数据是一个list集合,其中每一个元素包含有一段文字和三张图片,要求文字显示在上方,图片显示在文字下面,一段文字和三张图片为一个小模块,图片要求能够自适应,而且一行要显示三张图片
时间: 2023-12-22 16:03:23 浏览: 121
好的,以下是一个示例代码:
```html
<template>
<view class="container">
<view v-for="(item, index) in dataList" :key="index" class="item">
<view class="text">{{ item.text }}</view>
<view class="images">
<view v-for="(image, i) in item.images" :key="i" class="image">
<image :src="image.url" mode="aspectFit" />
</view>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
dataList: [] // 后端传输的数据
};
}
};
</script>
<style scoped>
.container {
padding: 10px;
}
.item {
margin-bottom: 10px;
}
.text {
font-size: 16px;
line-height: 24px;
margin-bottom: 10px;
}
.images {
display: flex;
flex-wrap: wrap;
}
.image {
width: calc(33.33% - 5px);
margin-right: 5px;
margin-bottom: 5px;
}
.image:last-child {
margin-right: 0;
}
</style>
```
上面的代码使用了 `v-for` 指令来渲染数据列表,同时使用 `flex` 布局来实现图片自适应和一行显示三张图片的效果。其中,每个图片元素的宽度设置为 `calc(33.33% - 5px)`,因为三张图片之间需要有间隙,所以减去了 `5px` 的右边距。最后一张图片去掉右边距即可。
希望能对你有所帮助!