css - React makeStyles 不设置背景图片

标签 css reactjs typescript material-ui create-react-app

尽管尝试了多种方法来为 backgroundImage 属性加载图像,但它从未出现在页面中。加载外部图像(例如来自谷歌)按预期工作。

我试过:

backgroundImage: `url(${Papyrus})`
backgroundImage: "url(" + Papyrus + ")"
backgroundImage: "url(../../assets/images/papyrus.png)"
backgroundImage: Papyrus
backgroundImage: "url(\"../../assets/images/papyrus.png\")"
backgroundImage: "url(assets/images/papyrus.png)"

它们都不起作用。图片在我查看我的网络审核时加载,我可以在静态文件夹中找到它,但它永远不会显示。

应用.tsx

import React from 'react';
import makeStyles from './app-styles';
import {Container} from "@material-ui/core";
import Description from "../description/description";

const App: React.FC = () => {
    const classes = makeStyles();
    return (
        <div className="App">
            <Container maxWidth={"xl"}>
                <div className={classes.row}>
                    <Description/>
                </div>
            </Container>
        </div>
    );
};

export default App;

描述.tsx

import * as React from "react";
import makeStyles from './description-styles';

interface DescriptionProps {
}

const Description: React.FC<DescriptionProps> = () => {
    const classes = makeStyles();

    return (
        <div className={classes.descriptionCard}>
            <p>Some text</p>
        </div>
    )
};

export default Description;

描述样式.tsx

import makeStyles from "@material-ui/core/styles/makeStyles";
import Papyrus from "../../assets/images/papyrus.png";

export default makeStyles(theme => ({
    descriptionCard: {
        backgroundImage: `url(${Papyrus})`,
        // margin: 'auto',
        height: '25vh',
        width: 'calc(20vw * 0.54 - 2%)',
        borderRadius: 8,
        display: 'flex',
        marginLeft: '10px',
        marginTop: '10px'
    },
    text: {

    }
}))

最佳答案

给背景图片添加一些额外的属性就可以了-

descriptionCard: {
        backgroundImage: `url(${Papyrus})`,
        backgroundPosition: 'center', 
        backgroundSize: 'cover', 
        backgroundRepeat: 'no-repeat',
        // margin: 'auto',
        height: '25vh',
        width: 'calc(20vw * 0.54 - 2%)',
        borderRadius: 8,
        display: 'flex',
        marginLeft: '10px',
        marginTop: '10px'
    }

我不确定为什么我们需要这些额外的属性(也许有人可以添加到答案中),但有时图像需要定义某些行为,如大小、位置等。

关于css - React makeStyles 不设置背景图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57254046/

相关文章:

typescript - 如何让 Yarn 扁平化我的 TypeScript 类型?

javascript - 如何在 TypeScript 中为日期添加一天

css - 我应该在哪个 CSS 样式表中放置我的网络字体?

javascript - 与 webpack 捆绑时,react-router-dom 项目因 publicPath 而中断

reactjs - React-navigation:是否可以将回调传递给子级(例如changeHandler)?

javascript - 如何使用 Electron 和 React 从外部配置文件管理动态变量

Angular 11 - 验证 for 循环中生成的子表单

html - 无法对齐 bootstrap html 代码中的 div

jquery - 多个 SlideToggle jQuery

javascript - 光窗