使用样式在React.js中设置背景

Mar*_*cel 9 javascript css reactjs

我想通过使用样式定义在React.js中添加背景图像,它的工作原理如下:

let imgUrl = 'images/berlin.jpg'    
let styles = {
        root: {
            backgroundImage: 'url(' + imgUrl + ')',
            overflow: 'hidden',
        },
        ...
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

如您所见,图像在x方向上重复.所以我想扩展它:

let imgUrl = 'images/berlin.jpg'
let styles = {
    root: {
        backgroundImage: 'url(' + imgUrl + ')',
        backgroundImage: {
            flex: 1,
            resizeMode: 'cover', // or 'stretch'
        },
        overflow: 'hidden',
    },
    ...
Run Code Online (Sandbox Code Playgroud)

但图像不再加载:

在此输入图像描述

那么如何在React.js中设置背景图像并进行调整呢?

Mar*_*cel 10

这有效:

    let imgUrl = 'images/berlin.jpg'
    let styles = {
        root: {
            backgroundImage: 'url(' + imgUrl + ')',
            backgroundSize: 'cover',
            overflow: 'hidden',
        },
        ...
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述


Eri*_*dán 8

如果您使用图像作为背景,最好使用 'backgroundImage' 属性。

如果您使用 'background' 属性,这可能会导致重新加载组件时出现问题(例如,'cover' 属性将无法正确应用)。

提出的解决方案:

let imgUrl = 'images/berlin.jpg'; 

<div className = 'Component-Bg' 
     style = {{ backgroundImage: `url(${imgUrl})`,
                backgroundSize: 'cover', 
                backgroundPosition: 'center center',
                backgroundRepeat: 'no-repeat',
              }}>
</div>
Run Code Online (Sandbox Code Playgroud)


Rod*_*osa 7

澄清另一个答案

let imgUrl = 'images/berlin.jpg'
let styles = {
    root: {
       backgroundImage: `url(${ imgUrl })`
       backgroundRepeat  : 'no-repeat',
       backgroundPosition: 'center',
  }
}
Run Code Online (Sandbox Code Playgroud)


FLC*_*ers 4

你有没有尝试过这样的事情:\xc2\xa0

\n\n
let imgUrl = \'images/berlin.jpg\'\nlet styles = {\nroot: {\n\n    background: \'url(\'+ imgUrl + \') noRepeat center center fixed\',\n    backgroundSize: \'cover\',\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

受到这篇文章的启发:在后台拉伸和缩放 CSS 图像 - 仅使用 CSS

\n

  • 凉爽的。您是否应该将最终代码发布给其他会问的人? (7认同)