我正在尝试在div
中显示背景图像,尽管它对于标准img
标签来说可以正常工作,但我无法使其在div
下工作。
我究竟做错了什么?
下面是我导入图像的位置:
import imgPackage from '../img/package.png';
下面是两段代码-div
不显示任何内容,而img
可以正常工作。
<div
style={{
height: '50px',
width: '50px',
backgroundImage: 'url(${ imgPackage })'
}}
/>
<img src={imgPackage} alt="Smiley face" height="42" width="42" />
在div backgroundImage
中,我尝试了以下操作,但没有成功
backgroundImage: 'url(${ imgPackage })'
backgroundImage: 'url('+{ imgPackage }+')'
backgroundImage: 'url(../img/package.png)'
我在做什么错? 谢谢!
答案 0 :(得分:4)
您正在尝试使用模板文字,但您使用的是单引号而不是反引号。
模板文字由反引号(``)(重音)括起来,而不是双引号或单引号。模板文字可以包含占位符。这些由美元符号和大括号($ {expression})表示。
<div
style={{
...,
backgroundImage: `url(${imgPackage})`
}}
/>
答案 1 :(得分:2)
尝试使用它。单引号上不能使用$ {}语法。它可以与``back tick
一起使用backgroundImage: `url(${ imgPackage })`
backgroundImage: 'url('+ imgPackage +')'
答案 2 :(得分:0)
您的任何尝试都是错误的。进行一些更改后,以下变体将起作用:
如果您喜欢ES6模板文字,则应使用反引号将其括起来:
backgroundImage: `url(${ imgPackage })`;
如果您喜欢纯字符串,则无需在url()
内添加额外的单引号:
backgroundImage: 'url( + { imgPackage } + )';
这种情况可能与您的webpack等中的适当url-loader一起使用。请考虑使用上面的2个示例。
backgroundImage: 'url(../img/package.png)'