material-uiのField
内のすべてのGrid
sをスタイルすることは可能ですか?私はすでにcssでそれを行う方法を知っていますが、jssでこれを行う方法を見つけることができません私はこれを試しましたが機能しません:
const styles = {
shopForm: {
textAlign: 'center',
Field: {
width: '60%'
}
}
}
styles
をどのように変更すればよいですか?このタイプのスタイル設定はjssで可能ですか?これを行うために使用されるCSSでは:
.shopForm Field
{...}
Material-uiを使用しています
<Grid item lg={4} className={classes.shopForm}>
<Field
name="name"
type="text"
label="name"
component={TextField}
/>
<Field
name="plaque"
type="text"
label="plaque"
component={TextField}
/>
<Field
name="unit"
type="text"
label="unit"
component={TextField}
/>
<Field
name="text"
type="text"
label="text"
component={TextField}
multiline
row={3}
/>
</Grid>
しばらくして、ある種の答えを見つけてください! Field
コンポーネント自体は他の要素で構成されているため、スタイルを設定することはできませんが、materialUIコンポーネント内にある要素をスタイルできます。
shopForm: {
textAlign : 'center',
'& input' :{
width: '60%',
color:'grey'
},
'& label':{
fontSize:'15px'
}
したがって、最初にスタイルを設定する要素を見つけてから、親のクラスにスタイルを指定する必要があります。
<Grid item lg={4} className={classes.shopForm}>
<Field
name="name"
type="text"
label="name"
component={TextField}
/>
<Field
name="plaque"
type="text"
label="plaque"
component={TextField}
/>
<Field
name="unit"
type="text"
label="unit"
component={TextField}
/>
<Field
name="text"
type="text"
label="text"
component={TextField}
multiline
row={3}
/>
</Grid>
ClassNamesをフィールドに追加し、CSSを追加できます。
<Grid item lg={4} className={classes.shopForm}>
<Field
className="grid-field"
name="name"
type="text"
label="name"
component={TextField}
/>
<Field
className="grid-field"
name="plaque"
type="text"
label="plaque"
component={TextField}
/>
<Field
</Grid>
そして通常のCSSファイルを作成します:
.grid-field {
font-size: 20px;
}
はい、インストールできますstyle-it
npm
からのパッケージコンポーネントに特定のスタイルを適用したり、すべてのコンポーネントにスタイルを適用したりできるのはとても楽しいです。
CSSファイルを作成する必要はありません。スタイルをコンポーネントにすぐに追加できます。
npm i style-it
上記のコンポーネントでは、style
はAppA
コンポーネントにのみ適用されます
import React from "react";
import Style from 'style-it';
class AppA extends React.Component {
render() {
return (
<div>
<Style>
{`
.someClass {
font-size: small;
font-family: arial;
background: #f1f1f1;
}
h1 {
font-size: large;
color: red
}
input[type=text] {
width: 50%;
padding: 12px 20px;
margin: 8px 0;
box-sizing: border-box;
}
`}
</Style>
<h1> Component A this defualt style for h1 red</h1>
<input type='text' defaultValue='ss' />
</div>
)
}
}
export default AppA
すべてのコンポーネントにスタイルを適用するには、Style要素をメインコンポーネントに移動する必要があります。CodeSandboxで例を作成しました
このように試すことができます
//create a css what you want
const styles = {
shopForm: {
textAlign : 'center',
},
field :{
width: '60%'
}
}
<Grid item lg={4} style={styles.shopForm}>
<Field
name="name"
type="text"
label="name"
component={TextField}
style={styles.field} //add the style to the Field
/>
<Grid >