You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React 18.2.0搭配Material UI v4中makeStyles不生效问题求助

解决Material UI v4 makeStyles设置页面背景黑色无效的问题

问题原因

你的代码里.App容器仅设置了backgroundColor: 'black',但该容器默认未占满整个视口高度,同时浏览器默认的body样式(比如默认margin、背景色)也会导致黑色背景无法完整显示。

修复方案

1. 调整容器样式,确保占满视口

修改makeStyles中的样式,给.App添加高度、宽度属性,同时可选全局覆盖body默认样式:

import './App.css';
import { BrowserRouter, Route, Routes} from 'react-router-dom';
import Header from './components/Header';
import Homepage from './Pages/Homepage';
import CoinPage from './Pages/CoinPage';
import { makeStyles } from '@material-ui/core';

// 将useStyles定义移到组件外部(Material UI推荐写法)
const useStyles = makeStyles(() => ({
  App: {
    backgroundColor: 'black',
    minHeight: '100vh', // 强制容器占满视口高度
    width: '100%',
    margin: 0,
    padding: 0,
  },
  // 全局样式:覆盖body的默认margin和背景色
  '@global': {
    body: {
      margin: 0,
      padding: 0,
      backgroundColor: 'black',
    },
  },
}));

function App() {
  const classes = useStyles();
  return (
    <BrowserRouter>
      <div className={classes.App}>
        <Header/>
        <Routes>
          <Route path='/' element={<Homepage />} />
          <Route path='/coins/:id' element={<CoinPage/>}/>
        </Routes>
      </div>
    </BrowserRouter>
  )
}

export default App;

2. 排查全局样式冲突

打开App.css,确认里面没有设置body或父元素的背景色、margin等样式,避免覆盖你设置的黑色背景。

3. 检查子组件样式

验证Header、Homepage等子组件是否设置了独立的背景色,如果子组件有白色背景,会覆盖父容器的黑色,需要同步修改这些子组件的背景色为黑色或透明。


内容的提问来源于stack exchange,提问作者prem jadwani

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 20:45:15