Mar*_*Lau 3 reactjs material-ui
我试图通过类名overide覆盖Input组件的样式。
我尝试了以下方法:
const style = theme => ({
input: {
width: '20%',
borderRadius: 4,
backgroundColor: 'white',
border: '1px solid #ced4da',
fontSize: 20,
'&:focus': {
width: '40%',
borderColor: '#80bdff',
boxShadow: '0 0 0 0.2rem rgba(0,123,255,.25)',
},
}
});
class test extends Component {
// UI
render() {
const {classes} = this.props
return (
<AppBar position="static">
<Toolbar>
<Input className={classes.input} />
</Toolbar>
</AppBar>
);
}
}
export default withStyles(style)(test);
Run Code Online (Sandbox Code Playgroud)
谢谢
最好的方法是重写组件focused公开的样式Input,但要使用类而不是类名。
为此,您应该首先创建一个CSS样式类,专门用于重点输入:
const styles = theme => ({
input: {
width: '20%',
borderRadius: 4,
backgroundColor: 'white',
border: '1px solid #ced4da',
fontSize: 20,
},
// Separate this part into it's own CSS class
inputFocused: {
width: '40%',
borderColor: '#80bdff',
boxShadow: '0 0 0 0.2rem rgba(0,123,255,.25)',
backgroundColor: "#00FF00",
},
});
Run Code Online (Sandbox Code Playgroud)
然后像这样覆盖focused样式Input:
<Input
className={classes.input}
classes={{ focused: classes.inputFocused}}
/>
Run Code Online (Sandbox Code Playgroud)
当您将所有这些结合在一起时,一个完整的工作示例将如下所示:
import React from 'react';
import PropTypes from 'prop-types';
import { withStyles } from 'material-ui/styles';
import Input from 'material-ui/Input';
const styles = theme => ({
input: {
width: '20%',
borderRadius: 4,
backgroundColor: 'white',
border: '1px solid #ced4da',
fontSize: 20,
},
// Separate this part into it's own CSS class
inputFocused: {
width: '40%',
borderColor: '#80bdff',
boxShadow: '0 0 0 0.2rem rgba(0,123,255,.25)',
backgroundColor: "#00FF00",
},
});
function Inputs(props) {
const { classes } = props;
return (
<div className={classes.container}>
<Input
className={classes.input}
classes={{ focused: classes.inputFocused}}
/>
</div>
);
}
Inputs.propTypes = {
classes: PropTypes.object.isRequired,
};
export default withStyles(styles)(Inputs);
Run Code Online (Sandbox Code Playgroud)
您可以在此处阅读有关使用类覆盖组件样式的更多信息。
| 归档时间: |
|
| 查看次数: |
4895 次 |
| 最近记录: |