Как реализовать CSS вложенные правила в JSS?
Я хотел бы знать, как работать с CSS-комбинаторами в материале UI или в Jss в целом? Я стараюсь, как показано ниже.
card: {
cardHeader:{
marginTop:"30px"
}
}
2 ответа
Для JSX вроде
<div className={classes.card}>
<div className={classes.cardHeader}></div>
</div>
вы можете использовать:
card: {
'& $cardHeader': {
marginTop: 30,
}
}
Таргетинг на вложенные классы может быть полезен, если вы переопределите стили JSS по умолчанию в компонентах пользовательского интерфейса материала.
Это было бы то же самое, что написание CSS(не путать с SCSS или SASS). JSS преобразует все js в чистый CSS, почти все свойства CSS должны работать и здесь.
card: {
'& .cardHeader': {
marginTop: 30 // px is default
}
}
Вам нужно будет настроить плагины, спасибо @ricovitch за указание на это. По умолчанию вы можете проверить этот jss-preset-default. Для реакции вы можете просто использовать реактив-jss со встроенными настройками по умолчанию.
Material-UI включает в себя набор плагинов JSS, которые описаны здесь: https://material-ui.com/customization/css-in-js/
В этом наборе плагинов есть jss-nested, который учитывает вложенные правила: http://cssinjs.org/jss-nested/
Но в вашем примере кода на самом деле нет необходимости во вложенных правилах, так как вам просто нужно одно: "cardHeader"