В настоящее время я использую 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>
Из документации 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
, как я могу настроить таргетинг на компонент MuiFormLabel, который находится внутри компонента MuiFormControl? Или как я могу настроить таргетинг на компонент MuiInput, если у компонента MuiFormLabel есть определенный класс? Я знаю, что могу настроить таргетинг на element с помощью обычного CSS (например, '& label'), но я не знаю, как настроить таргетинг на компонент / класс, поскольку имена классов являются динамическими.