[解決済み] formcontrollabel - material-ui | Reactのデフォルトのtypography classを変更するには?
質問
formControlLabelのデフォルトプロパティを次のように変更したい。
body
から
caption
. 試してみたら、うまくいきました。
<FormControlLabel
value="all"
control={<Radio color="primary" />}
label={
<Typography variant="caption">
first
</Typography>
}
labelPlacement="end"
/>
しかし、これは私が望む効果ではありません。この場合、元のスパンを含むもう1つのスパンを含めるだけです。
時々、デフォルトの要素クラスを変更しようとして同じ問題に陥ることがあります。残念ながら、ドキュメントではこのような場合にどうすればよいかを理解する助けにはなりませんでした。
サンプルコードと他の失敗例はこちら こちら .
のデフォルトクラスプロパティを変更したいだけです。
MuiTypography-root MuiFormControlLabel-label MuiTypography-body1
から
MuiTypography-root MuiFormControlLabel-label MuiTypography-caption
新しいspan要素を含めずに
解決方法は?
FormControlLabel
が行います。
ではない
を制御するためのメカニズムを提供します。
Typography
バリアントを使用します。これは以前から求められていたもので、この問題で議論されています。
https://github.com/mui-org/material-ui/issues/16643
.
主な選択肢は以下の通りです。
-
テキストを独自の
Typography
を希望するバリアント(質問で示されたように)で表示します。 -
使用方法
label
とTypography
要素の代わりに直接FormControlLabel
模倣 その実装 -
CSS クラスを使用して
body1
のスタイリングと一致するようにcaption
スタイリング ( https://github.com/mui-org/material-ui/blob/v4.5.2/packages/material-ui/src/styles/createTypography.js#L73 )
この例では、最初のオプションと最後のオプションを並べて見ることができます。
import React from "react";
import ReactDOM from "react-dom";
import FormControlLabel from "@material-ui/core/FormControlLabel";
import Radio from "@material-ui/core/Radio";
import Typography from "@material-ui/core/Typography";
import { makeStyles } from "@material-ui/core/styles";
const useStyles = makeStyles(theme => ({
label: {
fontSize: theme.typography.pxToRem(12),
letterSpacing: "0.03333em",
lineHeight: 1.66
}
}));
function App() {
const classes = useStyles();
return (
<>
<FormControlLabel
value="all"
control={<Radio color="primary" />}
label={<Typography variant="caption">first</Typography>}
labelPlacement="end"
/>
<FormControlLabel
value="all"
control={<Radio color="primary" />}
label="first"
labelPlacement="end"
classes={classes}
/>
</>
);
}
const rootElement = document.getElementById("root");
ReactDOM.render(<App />, rootElement);
この2つのオプションは、全く同じには見えません。のラインハイトが
body1
の場合、余分なラッパーレイヤーがない場合と比較して、テキストが1ピクセルか2ピクセル下に移動してしまいますので、最後のオプションをお勧めします。
関連
-
[解決済み] SVGサークル内の画像にボーダーを追加する方法
-
[解決済み] MUI Boxは何のためのコンポーネントですか?
-
[解決済み] jest: テストスイートの実行に失敗しました。予期しないトークンのインポート
-
[解決済み] ReactjsのEsLintの "react / jsx-props-no-spreading "エラーを無効化する。
-
[解決済み] Webpack のコンパイルに失敗した
-
[解決済み] ESLintとTSLintの違い【クローズド】について
-
[解決済み] Reactコンポーネントに条件付きで属性を追加するにはどうすればよいですか?
-
[解決済み] クエリ文字列からパラメータ値を取得する方法は?
-
[解決済み] Reactでネストした状態のプロパティを更新する方法
-
[解決済み】React Jsでクラス属性を条件付きで適用する。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Reactを使用したMapBoxのCSSが欠落している件
-
[解決済み】Warning.Itが表示されるのはなぜですか?Functions are not valid as a React child?
-
[解決済み] React テキストを挟んだ横長の仕切りを作る
-
[解決済み] react-router-domを使用する際に「Function components cannot be given refs」を回避するにはどうすればよいですか?
-
[解決済み] ReactJS giving error Uncaught TypeError: Super expression は null か関数でなければならず、undefined ではありません。
-
[解決済み] react - createMuiThemeとcreateThemeの違い。
-
[解決済み] MUI Boxは何のためのコンポーネントですか?
-
[解決済み] Webpack のコンパイルに失敗した
-
[解決済み] は、gatsby-imageで動作する良いreactのカルーセルコンポーネントはありますか?[って聞かれます。]
-
[解決済み] React JSXのforEach()でHTMLが出力されない