传地址给组件并让该组件用到地址在背景图片中的方法

在开发中,作者遇到一个问题,即如何在一个通用组件中动态设置背景图片。他们尝试使用CSS的`attr`属性但未成功,最终通过在模板语言中拼接字符串并应用到`style`属性来动态设置背景图片。这种方法在保持组件复用性的同时解决了问题,但也提到其他如相对定位的解决方案,以及对响应式设计的考虑。
摘要由CSDN通过智能技术生成

问题

这是我在开发中遇到的问题。在网站的分页面中,背景图片的格式几乎一模一样。只是上面的文字和图片不一样而已。

在这里插入图片描述
所以我希望写一个组件,然后页面只需要传入背景图片地址和标题就可以显示出相关内容。

于是我动手写了,大致思路是一个盒子,内部通过相对定位固定上面的标题,然后盒子有一个背景图片。

问题来了,怎么给盒子设置背景图片?

分析

盒子的背景图片,最先想到的应该是css。我一开始也想到的是这个办法,通用的样式代码是这样的:

.box {
	background: url('图片地址');
	background-size: 100%, 100%;
	background-repeat: no-repeat;
}

但是问题来了,如何动态的识别接收到的url并放入css中?这时候我就想到了attr。我们可以设置自定义属性,然后在css中通过attr用到它。

但是经过尝试,失败了。

按照这种方式,先设置一个value:
在这里插入图片描述
然后在css中用到:
在这里插入图片描述
显然是行不通的。因为background后面,还有一串很长的代码包裹。

所以再去找了其他方法,最后发现结果。

处理方法

通过拼接字符串的方法,在节点中通过style实现:

我给大家看一下我的结构:

<template>
    <div class="box">
      <!-- 图片 -->
      <div class="show" :style="{backgroundImage: 'url(' +thisurl+ ')'}">
        <div class="showdel">
          <h1>{{title}}</h1>
        <h4>{{secondtitle}}</h4>
        </div>
      </div>
    </div>
  </template>

其实针对于整个问题,处理方式也不止一种,我们当然也可以写一个盒子,在里面放一张图片,然后把标题设置为相对定位在图片上进行定位。这样的方式还是有点麻烦的,做的不好响应式容易出现问题。

还有就是,因为这一个小点并了解解决方法,虽然有点钻牛角尖,但是是一件有收获的事情。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值