反应组件中的背景图像

Rom*_*man 7 html javascript css reactjs material-ui

我正在构建一个页面,我希望一个material-ui元素使用background-imageCSS属性来获得背景图像.我当然用google搜索了,并且有解决方案但由于某种原因我看不到那个图像.

PS1:即使将MUI元素改为常规也根本没有帮助我.

PS2:当我在内部使用容器时,它会显示,但这不是我想要的.

UPDATE1:尝试向容器添加高度和宽度,仍然没有运气......

import React from 'react';

import Paper from 'material-ui/Paper';

import IconButton from 'material-ui/IconButton';
import ActionHome from 'material-ui/svg-icons/action/home';


const styles = {
    paperContainer: {
        backgroundImage: `url(${"static/src/img/main.jpg"})`
    }
};

export default class Home extends React.Component{
    render(){
        return(
            <Paper style={styles.paperContainer}>

            </Paper>
        )
    }
}
Run Code Online (Sandbox Code Playgroud)

Rom*_*man 16

我已经为我的案例找到了解决方法。实际上以像素为单位设置容器高度有帮助。

这是代码:

import React from 'react';


const styles = {
    paperContainer: {
        height: 1356,
        backgroundImage: `url(${"static/src/img/main.jpg"})`
    }
};

export default class Home extends React.Component {
    render() {
        return (
            <div style={styles.paperContainer}>
            </div>
        )
    }
}
Run Code Online (Sandbox Code Playgroud)


Rom*_*llc 12

您必须使用相对路径导入图像,如下所示.

import React from 'react';

import Paper from 'material-ui/Paper';

import IconButton from 'material-ui/IconButton';
import ActionHome from 'material-ui/svg-icons/action/home';

import Image from '../img/main.jpg'; // Import using relative path


const styles = {
    paperContainer: {
        backgroundImage: `url(${Image})`
    }
};

export default class Home extends React.Component{
    render(){
        return(
            <Paper style={styles.paperContainer}>
                Some text to fill the Paper Component
            </Paper>
        )
    }
}
Run Code Online (Sandbox Code Playgroud)


Mel*_*eli 10

我让它适用于material-ui,其中我的父元素上的填充是24px,所以我在背景图像的宽度上添加了48px以使其工作......

const styles = {
   heroContainer: {
     height: 800,
     backgroundImage: `url(${"../static/DSC_1037.jpg"})`,
     backgroundSize: 'cover',
     backgroundPosition: 'center',
     width: `calc(100vw + 48px)`,
     margin: -24,
     padding: 24,
   }
  };
<Grid
    container
    direction="column"
    justify="flex-end"
    alignItems="right"
    style={styles.heroContainer} >
    <Grid item>Goes here</Grid>
</Grid>
Run Code Online (Sandbox Code Playgroud)