在Reactjs中将背景图像设置为全屏

时间:2018-01-16 19:04:53

标签: reactjs

我正在尝试在React中设置背景图像,但它只覆盖了高度的75%。

组件似乎没有占用所有高度。

解决方案是什么?

在index.js中:

ReactDOM.render(<Login />, document.getElementById('root'));

在index.css中:

html, body, .Login-component {
  height: 100%;
}

在Login.js中:

render() {
    return (
      <div className='Login-component'>
    );
}

在Login.css中

.Login-component {
    background: url(../static/login-bg.jpg) no-repeat center center fixed;
  background-size: cover;
}

最终结果:Screen shot

5 个答案:

答案 0 :(得分:10)

使用vh和vw属性:

const styles = {
    container: {
        backgroundImage: `url(${backgroundImage})`,
        backgroundPosition: 'center',
        backgroundSize: 'cover',
        backgroundRepeat: 'no-repeat',
        width: '100vw',
        height: '100vh'
    }
};

答案 1 :(得分:4)

尝试使用特定的属性值。

在Index.css中:

body, html {
    height: 100%;
    margin: 0;
}

在Login.css中:

.Login-component {
    /* The image used */
    background-image: url(../static/login-bg.jpg);

    /* Full height */
    height: 100%; 

    /* Center and scale the image nicely */
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
}

答案 2 :(得分:4)

图像应该在src文件夹中,除此之外,在组件内部执行以下操作.-

const imgMyimageexample = require('../assets/imageexample.jpg');
const divStyle = {
  width: '88%',
  height: '800px',
  backgroundImage: `url(${imgMyimageexample})`,
  backgroundSize: 'cover'   <---- This is important
};

export default class Mycomponent extends React.Component {
  render() {
    return (
      <div className="cComponent" style={divStyle} >
        <h1 align="center">Some header example</h1>
      </div>
    );
  }
}

答案 3 :(得分:0)

虽然没有任何代码很难排除故障,但请检查要将反应组件渲染到的根元素。在组件样式中设置height: '100%'将在其父div的上下文中。

答案 4 :(得分:0)

编辑CSS。

这可能就是你要找的东西:

<Component style={{ minHeight: '100%' }} /> 

如果您的意思是背景图片没有覆盖整个高度,那么将className添加到您的组件中,导入CSS,您可以执行this

之类的操作