如何调整 MUI Tooltip 字体大小?
How to adjust MUI Tooltip font size?
我用 MUI 实现了工具提示,但 fontSize
太小了。我不能用 .scss
.
来改变它
import React from "react";
import "./InfoTooltip.scss";
import InfoIcon from '@material-ui/icons/Info';
import Tooltip from '@material-ui/core/Tooltip';
const InfoTooltip: React.FC<{ children?: any }> = ({ children }) => {
const [label, ...rest] = children;
return (
<div className="info-tooltip-container">
<div className="label-container">
<Tooltip title={label}>
<InfoIcon style={{ fontSize: '24px' }} />
</Tooltip>
</div>
{rest}
</div>
);
};
export default InfoTooltip;
.info-tooltip-container {
.label-container {
font-size: 18px;
}
label {
font-size: 18px;
}
}
https://mui.com/components/tooltips/#main-content
您可以直接在道具title中添加自定义组件。
如果需要,您可以将 inline-styles
添加到刚刚添加的组件中。
包括 font-size
<Tooltip title={<h1 style={{ color: "lightblue" }}>title</h1>}>
<InfoIcon />
</Tooltip>
参考:MUI 工具提示文档:customized-tooltips
您可以在全局级别或组件级别。
执行此操作
全球水平
这样应用程序中的所有 Tooltip
都会获得样式。
首先你需要创建一个theme.js
文件:
'use strict';
import { createMuiTheme } from '@material-ui/core/styles';
const theme = createMuiTheme({
overrides: {
MuiTooltip: {
tooltip: {
fontSize: "1em",
},
},
},
});
export default theme;
然后将其导入到您的主要应用程序组件中,这样它将应用于所有应用程序组件:
'use strict';
import React from "react";
import { ThemeProvider } from '@material-ui/styles';
import CssBaseline from '@material-ui/core/CssBaseline';
import theme from 'theme.js';
export default class App extends React.Component {
render() {
return (
<ThemeProvider theme={theme}>
<CssBaseline />
{/* Your app content */}
</ThemeProvider>
);
}
}
组件级别
通过这种方法,您可以为每个组件定义不同的样式。
'use strict';
import React from "react";
import { makeStyles } from '@material-ui/core/styles';
import Tooltip from "@material-ui/core/Tooltip";
const useStyles = makeStyles({
tooltip: {
fontSize: "1em",
},
});
export default class MyComponent extends React.Component {
const classes = useStyles();
render() {
return (
<Tooltip classes={{tooltip: classes.tooltip}} />
);
}
}
您也可以使用Typography
并直接设置fontSize
。 Box
或 Typography
等组件继承了 system props,允许您使用顶级属性更改样式:
<Tooltip title={<Typography fontSize={30}>title</Typography>}>
<IconButton>
<DeleteIcon />
</IconButton>
</Tooltip>
现场演示
使用 MUI v5
这将更改 <ThemeProvider>
中所有工具提示的字体大小
import React from "react";
import { createTheme, CssBaseline, ThemeProvider } from '@mui/material';
const theme = createTheme({
components: {
MuiTooltip: {
styleOverrides: {
tooltip: {
fontSize: '1em'
}
}
}
}
});
export default function App() {
return <ThemeProvider theme={theme}>
{/* Your app content */}
<CssBaseline />
</ThemeProvider>;
}
我用 MUI 实现了工具提示,但 fontSize
太小了。我不能用 .scss
.
import React from "react";
import "./InfoTooltip.scss";
import InfoIcon from '@material-ui/icons/Info';
import Tooltip from '@material-ui/core/Tooltip';
const InfoTooltip: React.FC<{ children?: any }> = ({ children }) => {
const [label, ...rest] = children;
return (
<div className="info-tooltip-container">
<div className="label-container">
<Tooltip title={label}>
<InfoIcon style={{ fontSize: '24px' }} />
</Tooltip>
</div>
{rest}
</div>
);
};
export default InfoTooltip;
.info-tooltip-container {
.label-container {
font-size: 18px;
}
label {
font-size: 18px;
}
}
https://mui.com/components/tooltips/#main-content
您可以直接在道具title中添加自定义组件。
如果需要,您可以将 inline-styles
添加到刚刚添加的组件中。
包括 font-size
<Tooltip title={<h1 style={{ color: "lightblue" }}>title</h1>}>
<InfoIcon />
</Tooltip>
参考:MUI 工具提示文档:customized-tooltips
您可以在全局级别或组件级别。
执行此操作全球水平
这样应用程序中的所有 Tooltip
都会获得样式。
首先你需要创建一个theme.js
文件:
'use strict';
import { createMuiTheme } from '@material-ui/core/styles';
const theme = createMuiTheme({
overrides: {
MuiTooltip: {
tooltip: {
fontSize: "1em",
},
},
},
});
export default theme;
然后将其导入到您的主要应用程序组件中,这样它将应用于所有应用程序组件:
'use strict';
import React from "react";
import { ThemeProvider } from '@material-ui/styles';
import CssBaseline from '@material-ui/core/CssBaseline';
import theme from 'theme.js';
export default class App extends React.Component {
render() {
return (
<ThemeProvider theme={theme}>
<CssBaseline />
{/* Your app content */}
</ThemeProvider>
);
}
}
组件级别
通过这种方法,您可以为每个组件定义不同的样式。
'use strict';
import React from "react";
import { makeStyles } from '@material-ui/core/styles';
import Tooltip from "@material-ui/core/Tooltip";
const useStyles = makeStyles({
tooltip: {
fontSize: "1em",
},
});
export default class MyComponent extends React.Component {
const classes = useStyles();
render() {
return (
<Tooltip classes={{tooltip: classes.tooltip}} />
);
}
}
您也可以使用Typography
并直接设置fontSize
。 Box
或 Typography
等组件继承了 system props,允许您使用顶级属性更改样式:
<Tooltip title={<Typography fontSize={30}>title</Typography>}>
<IconButton>
<DeleteIcon />
</IconButton>
</Tooltip>
现场演示
使用 MUI v5
这将更改 <ThemeProvider>
import React from "react";
import { createTheme, CssBaseline, ThemeProvider } from '@mui/material';
const theme = createTheme({
components: {
MuiTooltip: {
styleOverrides: {
tooltip: {
fontSize: '1em'
}
}
}
}
});
export default function App() {
return <ThemeProvider theme={theme}>
{/* Your app content */}
<CssBaseline />
</ThemeProvider>;
}