我正在尝试为MuiTab提供CSS替代,以增加字体大小。
在material-ui上使用有关CSS覆盖的文档,我设法增加了大多数元素的字体大小,但是我被卡在那些使用媒体查询的元素上,因为它们会产生比我使用覆盖提供的更为具体的CSS规则
theme.ts:
import { createMuiTheme } from '@material-ui/core';
const fontSizeStyle = {
fontSize: '1rem',
};
const fontFamilyStyle = {
fontFamily: '"Ubuntu", sans-serif'
};
const theme = createMuiTheme({
overrides: {
MuiTab: {
root: {
...fontFamilyStyle,
...fontSizeStyle,
},
label: fontSizeStyle,
},
}
});
export default theme;
这会产生适用于MuiTab的以下CSS规则:
该规则由以下文件生成:
https://github.com/mui-org/material-ui/blob/master/packages/material-ui/src/Tab/Tab.js
[theme.breakpoints.up('md')]: {
fontSize: theme.typography.pxToRem(13),
},
没有人有示例如何使用createMuiTheme函数覆盖此媒体查询吗?我没有断点,所以也许我还需要指定断点,以便能够在替代中使用它们。
亲切的问候
答案 0 :(得分:1)
我通过以下方式对其进行了解决:
MuiTab: {
root: {
minWidth: 0,
'@media (min-width: 0px)': {
minWidth: 0
}
}
}
答案 1 :(得分:0)
我也面临同样的问题。我阅读了有关Breakpoints的文档,并找到了解决这种情况的方法,但是我发现它有点丑陋,因为我必须使用Tab
属性在每个classes
中应用覆盖的样式。
注意:我不知道使用createMuiTheme
函数解决此问题的方法
将样式应用于breakpoints
样式。在这种情况下,
const styles = theme => ({
mediaFont:{
[theme.breakpoints.up('md')]: {
fontSize:fontSizeStyle.fontSize,
},
},
});
将以上样式应用于TabLabel
<Tab label="Item One" classes={{label:classes.mediaFont}} />
这有效。检出Demo Sandbox here
答案 2 :(得分:0)
CSS具有一种机制,可强制不太具体的规则覆盖更具体的规则:!important。
const fontSizeStyle = {
fontSize: '1rem !important',
};
答案 3 :(得分:0)
指定如下
let theme = createMuiTheme({});
theme = {
...theme,
overrides: {
MuiTab: {
root: {
[theme.breakpoints.up("xs")]: {
minHeight: 10
}
}
}
}
}
export default theme;
theme.breakpoints
公开了四种帮助方法来创建CSS媒体查询:
theme.breakpoints.up(key)
theme.breakpoints.down(key)
theme.breakpoints.only(key)
theme.breakpoints.between(start, end)
每个key
是一个断点,并与固定的屏幕宽度匹配。
允许的键值为xs|sm|md|lg|xl
有关更多信息,请参见material-ui docs