Ich versuche Material ui zu lernen. Ich möchte das Textfeld auf meiner Seite vergrößern. Die mit dem Feld eingebetteten Stile ändern jedoch Höhe, Breite und andere Eigenschaften mit Ausnahme der Größe. Folgendes ist mein Code:
const styles = {
container: {
display: 'flex',
flexWrap: 'wrap',
},
textField: {
// marginLeft: theme.spacing.unit,
// marginRight: theme.spacing.unit,
width: 300,
margin: 100,
fontSize: 50 //??? Doesnt work
}
}
Folgendes ist die zustandslose Komponente (React):
const Searchbox = (props) => {
const { classes } = props;
return (
<TextField
onKeyDown={props.onKeyDown}
id="with-placeholder"
label="Add id"
placeholder="id"
className={classes.textField}
margin="normal"
autoFocus={true}
helperText={"Add an existing id or select "}
/>
);
};
export default withStyles(styles)(Searchbox);
Ich verstehe voll und ganz, dass es keine Raketenwissenschaft gibt, da es ein direkter CSS-Ansatz für die Verwendung von Stilen ist.
Ich kann jedoch nicht die Grundschriftgröße für mein Textfeld überschreiben. Jede Hilfe wird geschätzt
Wie auf der Seite TextField API Stile auf die InputProps-Elemente angegeben, wird der Stil auf das Eingabeelement angewendet
Hier ist der Code
const styles = {
container: {
display: 'flex',
flexWrap: 'wrap',
},
textField: {
width: 300,
margin: 100,
},
//style for font size
resize:{
fontSize:50
},
}
<TextField
id="with-placeholder"
label="Add id"
placeholder="id"
InputProps={{
classes: {
input: classes.resize,
},
}}
className={classes.textField}
margin="normal"
autoFocus={true}
helperText={"Add an existing id or select "}/>
Die einfachste Möglichkeit, die Schriftgröße sowohl des Eingabeetiketts als auch des Eingabetexts zu ändern, besteht in der Verwendung des Inline-Stils:
<TextField
label="input label name here"
margin="normal"
inputProps={{style: {fontSize: 40}}} // font size of input text
InputLabelProps={{style: {fontSize: 40}}} // font size of input label
/>
Ich bin auf Version 3.8.1 und habe vielleicht eine etwas einfachere Lösung.
Ein TextField
inputProps={{
style: {fontSize: 15}
}}
Dies kann jedoch auch die Anpassung von lineHeight
beinhalten, damit es schöner aussieht.
Versuchen Sie es mit der Stütze inputStyle
inputStyle -> Überschreibt die Inline-Styles der Eingabe von TextField Element. Wenn multiLine den Wert false hat: Definieren Sie den Stil der Eingabe Element. Wenn multiLine den Wert true hat: Definieren Sie den Stil des Containers von die textarea.
<TextField
inputStyle={{ fontSize: "50px" }}
hintText="Hint Text"
/>
<TextField inputStyle={styles.textField} />
Hier ist der vollständige Code:
import React from 'react';
import TextField from 'material-ui/TextField';
const styles = {
textField: {
fontSize: 50, //works!
}
}
const Searchbox = (props) => {
return (
<TextField
onKeyDown={props.onKeyDown}
id="with-placeholder"
label="Add id"
placeholder="id"
inputStyle={styles.textField}
margin="normal"
autoFocus={true}
helperText={"Add an existing id or select "}
/>
);
};
export default Searchbox;
Ich musste Folgendes tun, um die Größe des Texts vor (Label) und nach (Eingabetext) zu ändern. Der Benutzer interagiert mit der TextField-Komponente
<TextField
id="MyTextField"
InputProps={{
classes: {
input: classes.formTextInput
}
}}
InputLabelProps={{
classes: {
root: classes.formTextLabel
}
}}
/>
<TextField
type="text"
className={classes.financing_input}
placeholder={this.props.CustomerInfoData.phone}
name="phone"
id="fixInputSize" //Works
onChange={this.handleChange}
/>
//in your css file
#fixInputSize{
font-family: Roboto;
font-size: 11px;
}