如何更改材质 ui TextField 的标签大小?

Posted

技术标签:

【中文标题】如何更改材质 ui TextField 的标签大小?【英文标题】:How can I change the label size of a material ui TextField? 【发布时间】:2019-06-28 17:40:11 【问题描述】:

我有一个如下定义的 TextField:

<TextField
  id="standard-with-placeholder"
  label="First Name"
  className=classes.textField
  margin="normal"
/>

它看起来像这样:

但我希望它看起来像这样:

“名字”文本较大。如何调整标签文字大小?目前我的样式对象是空的。我认为这应该是 CSS 应该去的地方,但我不确定标签文本的 CSS 会是什么样子。

谢谢

【问题讨论】:

您确定不是placeholder 应该更改样式吗?我看到了一个标签道具,但你能告诉我们什么是 html 渲染吗 【参考方案1】:

这是一个如何在 Material-UI 的 v4 中修改标签字体大小的示例(v5 示例进一步向下)。此示例还修改了输入的字体大小,假设您希望这些大小保持同步,但您可以在沙箱中进行尝试以查看更改其中一个或另一个的效果。

import React from "react";
import ReactDOM from "react-dom";

import TextField from "@material-ui/core/TextField";
import  withStyles  from "@material-ui/core/styles";

const styles = 
  inputRoot: 
    fontSize: 30
  ,
  labelRoot: 
    fontSize: 30,
    color: "red",
    "&$labelFocused": 
      color: "purple"
    
  ,
  labelFocused: 
;
function App( classes ) 
  return (
    <div className="App">
      <TextField
        id="standard-with-placeholder"
        label="First Name"
        InputProps= classes:  root: classes.inputRoot  
        InputLabelProps=
          classes: 
            root: classes.labelRoot,
            focused: classes.labelFocused
          
        
        margin="normal"
      />
    </div>
  );

const StyledApp = withStyles(styles)(App);
const rootElement = document.getElementById("root");
ReactDOM.render(<StyledApp />, rootElement);

以下是 Material-UI v5 的等效示例,使用 styled 代替 withStyles

import React from "react";
import ReactDOM from "react-dom";

import MuiTextField from "@material-ui/core/TextField";
import  inputClasses  from "@material-ui/core/Input";
import  inputLabelClasses  from "@material-ui/core/InputLabel";
import  styled  from "@material-ui/core/styles";

const TextField = styled(MuiTextField)(`
  .$inputClasses.root 
    font-size: 30px;
  
  .$inputLabelClasses.root 
    font-size: 30px;
    color: red;
    &.$inputLabelClasses.focused 
      color: purple;
    
  
`);
function App() 
  return (
    <div className="App">
      <TextField
        id="standard-with-placeholder"
        label="First Name"
        margin="normal"
        variant="standard"
      />
    </div>
  );

const rootElement = document.getElementById("root");
ReactDOM.render(<App />, rootElement);

以下是文档的相关部分:

https://material-ui.com/api/text-field/ https://material-ui.com/api/input/ https://material-ui.com/api/input-label/ https://material-ui.com/api/form-label/

【讨论】:

这似乎没有任何作用。我认为项目中使用的自定义引导版本中的 CSS 可能会覆盖它。像这样在 javascript 中定义 CSS 时如何添加 !important? 您关于“!important”的问题已在here 得到解答。我会警告说,如果您正在与大量渗入的全局样式作斗争,您可能会遇到很多烦人的问题,试图让 Material-UI 组件看起来正确。

以上是关于如何更改材质 ui TextField 的标签大小?的主要内容,如果未能解决你的问题,请参考以下文章

使用材质 ui 和 React,在 TextField 中更改 `carrot` 的样式

如何在反应中更改material-ui Textfield标签样式

如何在错误和焦点上更改 Material-UI TextField 底部和标签颜色

无法在材质 UI TextField 中键入文本

材质 UI - 概述的 TextField 不呈现轮廓

我的材质 UI 自定义类被材质 UI 的默认类覆盖