小程序加载background-image背景图片

本文详细解析了在微信小程序开发中,如何解决CSS背景图加载失败的问题。文章指出,微信小程序仅支持线上图片和base64图片作为背景,不支持本地图片。提供了两种解决方法:一是将图片转换为base64格式并直接在WXSS中引用;二是使用线上图片资源。

问题描述 

 当开发小程序的时候,如果想在css里面加载 background-image 背景图,会报错

.radio_bkg_on {
  background-image: url(../../img/tick_blue.png);
  background-repeat: no-repeat;
  background-size:14px 11px;
  padding-left:0.7em;
}

 

 错误原因

 报错原因很明确: 微信小程序通过background-image设置背景:只支持线上图片和base64图片,不支持本地图片。

 

解决方法

1. base64图片设置步骤如下:

1.1 在网站http://imgbase64.duoshitong.com/上将图片转成base64格式的文本

1.2 在WXSS中使用以上文本:background-image: url(“data:image/png;base64,iVBORw0KGgo=…”);

 

2.使用线上图片

### UniApp 小程序中使用本地图片作为 `background-image` 的方法 在 UniApp 开发的小程序中,要将本地图片设置为背景图,可以采用如下几种方式: #### 方式一:通过相对路径引用资源文件夹中的图片 如果项目中有名为 `static/images/background.jpg` 的图片,则可以在页面样式部分这样定义背景图像[^1]: ```css page { background-image: url('/static/images/background.jpg'); background-size: cover; } ``` 这种方式适用于静态资源已经放置于项目的特定目录下,并且该位置不会随着构建过程而改变的情况。 #### 方式二:利用 base64 编码内联图片数据 对于较小尺寸的图标类图形素材,可以直接将其转换成 Base64 字符串并嵌入到 CSS 或者 HTML 中。例如: ```html <view class="bg-base64"></view> ``` ```css .bg-base64{ width: 100%; height: 300px; /* 设置高度 */ background-repeat: no-repeat; background-position: center; background-size: contain; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUA...');/* 这里省略了base64编码后的字符串*/ } ``` 不过需要注意的是,这种方法会增加HTML文档大小,因此只适合处理体积很小的图片。 #### 方式三:动态加载网络或本地存储内的图片 当需要根据实际情况来决定显示哪张图片时(比如用户上传的照片),可以通过 JavaScript 动态修改元素样式的 backgroundImage 属性实现。假设有一个保存着图片地址变量 imgSrc ,那么就可以这样做: ```javascript this.$nextTick(() => { this.$refs.background.style.backgroundImage = 'url('+imgSrc+')'; }); ``` 同时,在模板里面给定一个 ref 名字以便后续操作 DOM : ```html <view :ref="'background'" style="width:100%;height:200px;"></view> ``` 以上就是在 UniApp 小程序环境中应用本地图片作为背景的方法介绍。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值