Я переопределяю компонент <ExpansionPanelSummary/> в пользовательском интерфейсе материала, чтобы иметь меньшую маржу. Для этого я использую тему с переопределениями.
const theme = createMuiTheme({
overrides: {
MuiExpansionPanelSummary: {
expanded: {
marginTop: 5,
marginBottom: 5,
},
content: {
marginTop: 5,
marginBottom: 5,
},
}
},
Однако проблема, с которой я столкнулся, заключается в том, что в Material-UI, встроенном в css, одновременно применяются два класса: содержание и расширенный.
.MuiExpansionPanelSummary-content-567.MuiExpansionPanelSummary-expanded-564 {
margin: 20px 0;
}
Как я могу переопределить несколько примененных классов? Можно ли для этого создать правило темы?





Получил сегодня это работает. Требуемое поле находится в классе expanded для содержимого, поэтому правила должны выглядеть так, чтобы получить более высокую специфичность CSS. Ищите '&.expanded'.
const useStyles = makeStyles(theme => ({
expansionPanelSummaryContent: {
backgroundColor: 'red',
'&.expanded': {
margin: 0,
backgroundColor: 'yellow',
},
},
}));
export default function MyComponent(props) {
const classes = useStyles();
return (
<ExpansionPanel expanded = {props.expanded}>
<ExpansionPanelSummary
classes = {{
content: classes.expansionPanelSummaryContent,
expanded: 'expanded'
}}
>
...
</ExpansionPanelSummary>
</ExpansionPanel>
);
}
Хорошо, у меня есть обходной путь, но он все еще не полностью отвечает на мой вопрос. Вместо того, чтобы использовать число 5 в качестве переопределения, я могу использовать «5px! Important», однако это по-прежнему не создает правила, когда используются два класса.