我目前在我的项目中使用 Material UI。它运行良好,但我无法弄清楚的一件事是如何使用 JSS 设置子组件和兄弟组件的样式。
例如,Material UI 的组件呈现如下:
<div class="MuiFormControl-root-36 MuiFormControl-marginNormal-37">
<label class="MuiFormLabel-root-45 MuiInputLabel-root-40 MuiInputLabel-formControl-41 MuiInputLabel-animated-44 MuiInputLabel-shrink-43" data-shrink="true">Field label</label>
<div class="MuiInput-root-52 MuiInput-
formControl-53"><input aria-invalid="false" class="MuiInput-input-60"
name="fieldname" type="text" value=""></div>
</div>
从Material UI 文档中,我知道这只是一些较低级别组件的包装器。我可以像这样使用这些单独的组件createMuiTheme()
:
MuiInput: {
formControl: {
'label + &': {
marginTop: '30px'
}
},
root: {
'&$focused': {
boxShadow: '0px 3px 8px rgba(108, 108, 108, 0.16)'
},
borderRadius: '40px',
padding: '7px 16px',
background: 'white',
transition: 'box-shadow 0.2s',
}
}
我不明白的是如何定位这些组件中的孩子和/或兄弟姐妹 - 例如,在我的createMuiTheme
函数中,我如何定位 MuiFormControl 组件内的 MuiFormLabel 组件?或者,如果 MuiFormLabel 组件具有某个类,我如何定位 MuiInput 组件?我知道我可以使用普通的 CSS(例如'& label')来定位元素,但我不知道如何定位组件/类,因为类名是动态的。