v-for动态图片列表展示以及动态给div添加背景图片

本文展示了如何在Vue.js中使用v-for指令动态渲染图片列表,并通过内联样式动态设置div背景图片。通过数据绑定,实现了每个列表项的背景图片和文字内容的展示。同时,CSS代码确保了布局的美观和响应式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

v-for动态图片列表以及动态给div添加背景图片方法

效果如下图所示:

在这里插入图片描述

HTML:

<div class="branchWorkshop">
	 <ul>
		 <li v-for="(item,i) in workShopList" :key="i">
			<div class="workshopImg" 
			:style="{ 'background-image': 'url(' + item.imgUrl + ')',
			'background-repeat':'no-repeat','background-size':'cover'}">
			</div>
			<span style="color:white">{{item.label}}</span>
		</li>
	 </ul>
</div>

JS:

<script>
export default {
    data(){
        return{
        	workShopList:[{
				id: 1
				imgUrl: "/static/manyou/ws.png"
				label: "demo"
        	},{
				id: 2
				imgUrl: "/static/manyou/zz.png"
				label: "demo"
        	},{
	        	id: 3
				imgUrl: "/static/manyou/ym.png"
				label: "demo"
        	},{
	        	id: 4
				imgUrl: "/static/manyou/zxn.png"
				label: "demo"
        	},{
	        	d: 5
				imgUrl: "/static/manyou/ns.png"
				label: "demo"
        	},
        	{
	        	d: 6
				imgUrl: "/static/manyou/wm.png"
				label: "demo"
        	}
        	
        	]
        }
    }
}
</script>

CSS:

<style>
.branchWorkshop{
  width: 400px;
  height: 650px;
  overflow: hidden;
}
.branchWorkshop ul{
  display: flex;
  width: 90%;
  height: 100%;
  margin:0;
  padding:0;
  flex-wrap: wrap;
  /* 垂直居中 */
  align-items: center;
  /* ul里面的字体图片水平居中 */
  text-align:center; 
  /* ul盒子里面的内容水平居中 */
  margin:0 auto;  
}
.branchWorkshop li{
  width: 30%;
  height: 15%;
  list-style: none;
  /* li在ul里面水平居中 */
  margin:0 auto;
  margin-right: 2%;
 
}
.workshopImg{
  width: 100%;
  height: 100%;
}
</style>

总结:
动态给元素添加背景图片的方法:

<div class="workshopImg" 
	:style="{ 'background-image': 'url(' + item.imgUrl + ')',
	'background-repeat':'no-repeat','background-size':'cover'}">
</div>
### 实现带有图片的卡片组件列表 为了在 `Element UI` 的 `el-card` 组件中创建包含图片列表,需利用该组件支持的各种属性和嵌套结构。具体来说,通过配置 `el-card` 的不同部分并加入展示功能。 #### 使用 `el-card` 属性构建基础布局 每个 `el-card` 可以拥有头部 (`header`) 和主体 (`body`) 部分,在这里主要关注于如何向其中添加图片以及其它辅助信息如标题或描述文字。对于想要显示封面的情况,可以直接将 `<img>` 标签放置于 `el-card-body` 内部[^1]: ```html <template> <div class="card-list"> <!-- 卡片循环 --> <el-row :gutter="20"> <el-col v-for="(item, index) in items" :key="index" :span="8"> <el-card :body-style="{ padding: '0px' }"> <!-- 封面图片 --> <img :src="item.imageUrl" alt="" style="width: 100%; height: auto;" /> <!-- 描述区域 --> <div style="padding: 14px;"> <p>{{ item.title }}</p> <p>{{ item.description }}</p> <!-- 更多操作按钮或其他内容 --> </div> </el-card> </el-col> </el-row> </div> </template> <script> export default { data() { return { items: [ { imageUrl: "path/to/image.jpg", title: "Title One", description: "Description one..." }, // 添加更多项... ] }; } }; </script> ``` 上述代码片段展示了如何在一个响应式的网格系统内排列多个卡片实例,并为每张卡片设置了不同的背景图片路径、标题及简介说明。注意这里的 `:body-style` 是动态绑定样式的语法糖形式,它允许内部样式定义更加灵活[^4]。 #### 关键点总结 - **图片加载**:确保所提供的图片链接有效且能够正常访问。 - **样式调整**:根据实际需求自定义卡片内的各个元素样式,比如改变字体大小、颜色或是间距等。 - **交互设计**:考虑是否需要增加点击事件或者其他互效果来增强用户体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值