当前位置: 首页 > 面试题库 >

使用createMuiTheme覆盖div,p和body的默认样式

羊舌源
2023-03-14
问题内容

这也许是一个简单的“材质UI主题自定义”问题。

我想做的是覆盖默认样式<body>(以及将来的其他常用标签)。现在在我的React树的根目录:

import theme from './mui-theme'


ReactDOM.render(
  <Router>
    <ThemeProvider theme={theme}>
      <StylesProvider injectFirst>
        {/* CssBaseline kickstart an elegant, consistent, and simple baseline to build upon. */}
        <CssBaseline />
        <App />
      </StylesProvider>
    </ThemeProvider>
  </Router>,
  document.getElementById('root'),
);

有一个主题,它指定了一些内容,但省略了 'body1'

const theme = useTheme()console.log(theme)显示其定义为:

typography:
  body1:
    fontFamily: "Roboto,"Helvetica Neue""
    fontSize: "1rem"
    fontWeight: 400
    lineHeight: 1.5

这是我想要的设置。但是,要使用该设置,我必须将Typography标记与一起使用variant='body1'。否则,a中的文本将div具有提供的样式CssBaseline。这是body标签上的规则:font- size: .875rem;我想覆盖它。

人们是否使用createMuiTheme覆盖了CssBaseline提供的样式?如果是这样,我添加:

body: {
    fontSize: '1rem',
  },

哪个显示在上console.log(theme),但是如何告诉<body>标签实际使用该样式?


问题答案:

这是一个覆盖以下方面的示例CssBaseline

import PropTypes from "prop-types";
import { withStyles } from "@material-ui/core/styles";

const styles = theme => ({
  "@global": {
    body: {
      ...theme.typography.body1
    }
  }
});

function MyCssBaseline() {
  return null;
}

MyCssBaseline.propTypes = {
  classes: PropTypes.object.isRequired
};

export default withStyles(styles)(MyCssBaseline);




import React from "react";
import ReactDOM from "react-dom";
import CssBaseline from "@material-ui/core/CssBaseline";
import MyCssBaseline from "./MyCssBaseline";

function App() {
  return (
    <>
      <CssBaseline />
      <MyCssBaseline />
      <span>
        Here is some text in the body that is getting the body1 styling due to
        MyCssBaseline.
      </span>
    </>
  );
}
ReactDOM.render(<App />, document.querySelector("#root"));

参考:html" target="_blank">https : //material-
ui.com/styles/advanced/#global-css



 类似资料:
  • 问题内容: 我已经创建了自己的主题作为单独的Maven项目,并且已正确加载了该主题。 现在,我想更改组件的大小。例如,一个。它有一个名为的类ui-orderlist-list,它primefaces.css使用200x200的固定尺寸定义。无论我在我的工作中做什么theme.css,它都会被此属性覆盖,并且我无法将内容 扩大。 对于其他组件,我可能只想覆盖一个组件实例,而不是全部。 谁能告诉我该怎

  • 问题内容: 我已经能够覆盖所有名称以“ android:”为前缀的主题,但是Android themes.xml还定义了似乎无法被覆盖的属性。例如: colorTheground是在Theme.Light xml中定义的,但是在此处添加它可以使我 错误。如何为整个应用程序覆盖该样式? 问题答案: 您可以用修改属性(如)的方式覆盖标准属性,只是不要忘记添加如下前缀:

  • 问题内容: 我想覆盖Java外观。我只想显示不同的按钮。 我想要Windows Look and Feel的所有功能,但仅按钮有所不同。希望你明白我的意思。 还告诉我如何制作圆形的JtabbedPane ??? 问题答案: 自定义GUI类 调用您的自定义GUI类

  • 问题内容: 我有一个模板与此: Django自动将此翻译为Terminarsesión西班牙语。但是,我想将其翻译为Cerrarsesión。 我试图将此文字添加到.po文件中,但是在编译消息时出现错误,指出该文字重复。 有没有一种方法可以更改/覆盖默认的Django翻译? 谢谢。 问题答案: 最简单的方法是收集在django.contrib.admin语言环境文件夹中找到的.po文件,然后重新编

  • 我试图将Spring应用程序(大部分)转换为Spring Boot应用程序。在应用程序中,我有一个HTTP基本过滤器,收集用户名和密码,然后在DataSource实现中作为变量传递。 在这个数据源中,getConnection()方法是这样的: (由于StackOverflow格式问题,\n作为新行) 在Spring中,我可以毫无问题地实现@autowiledPrivate DataSource

  • 问题内容: 我有一个静态html,imgs,flash内容文件夹,它位于webapp文件夹之外。现在,我正在使用符号链接将该文件夹映射到我的webapp目录中。我的问题是,当我取消部署应用程序时,它会遵循符号链接并删除所有这些文件。 我尝试实现的解决方案之一是特殊的servlet,它包装了默认的servlet,但是使用了不同的相对路径。我在找出如何以覆盖默认servlet路径的方式包装默认serv