当前位置: 首页 > 知识库问答 >
问题:

更改焦点上物料UI文本字段的样式,反应

寿元白
2023-03-14

我第一次学习材料界面。我想自定义材质UI的文本字段。当文本字段未被选中时,我可以更改其样式;当文本字段聚焦时,我无法更改其样式。我正在使用ThemeProvider将样式注入组件。我试过这个密码

import React from "react";
import Checkbox from "@material-ui/core/Checkbox";
import TextField from "@material-ui/core/TextField";

import {
  createMuiTheme,
  makeStyles,
  createStyles,
  Theme as AugmentedTheme,
  ThemeProvider
} from "@material-ui/core/styles";
import { orange, blue, green } from "@material-ui/core/colors";

const useStyles = makeStyles(theme =>
  createStyles({
    root: {
      color: green[900],
      "&.Mui-focused": {
        border:"2px solid blue",
    }
    },

  })
);

function CustomCheckbox() {
  const classes = useStyles();

  return (
    <TextField
    variant='outlined'
    classes={{
      root:classes.root,
    }}      
    />
  );
}
const theme = createMuiTheme({
});

export default function CustomStyles() {
  return (
    <ThemeProvider theme={theme}>
      <CustomCheckbox />
    </ThemeProvider>
  );
}

问题:
如何更改焦点文本字段的样式?我们将不胜感激

共有2个答案

庄瀚玥
2023-03-14

要自定义MUI TextField输入元素的边框样式:

const useStyles = makeStyles(theme =>
  createStyles({
    root: {
      color: green[900],
      "& .MuiOutlinedInput-root": {
        "& fieldset": {
          borderColor: "rgba(0, 0, 0, 0.23)"  // default
        },
        "&.Mui-focused fieldset": {
          border: "2px solid red"             // focus
        }
      }
    }
  })
);

在线试用:https://codesandbox.io/s/style-text-field-3unyl

顺便提一下,公认的答案是:

牟焱
2023-03-14

实际上,您可能需要设置InputProps的类Name:

<TextField variant="outlined" InputProps={{ className: classes.root }} />

如果还想删除字段集的边框(或仅控制该边框),可以使用以下设置:

const useStyles = makeStyles(theme =>
  createStyles({
    root: {
      color: green[900],
      "&.Mui-focused": {
        border: "2px solid red",
        '& .MuiOutlinedInput-notchedOutline': {
          border: 'none'
        }
      }
    }
  })
);

您可以在这里找到一个工作示例:检查以下内容:https://codesandbox.io/s/style-text-field-htbem?file=/src/App.js

您可以在此处找到有关MUI与输入组件一起使用的不同类的更多信息:https://material-ui.com/api/input/#css

 类似资料:
  • 问题:我想更改输入元素焦点上按钮的样式。 下面是模板代码: 以下是css代码: 预期输出:在输入框 1的焦点上。将1倍宽度的边框应用于输入框 2。更改按钮的背景颜色 实际输出: 1。边框应用于输入框 2。按钮的背景色没有变化 http://jsfiddle.net/6Y8GL/7/

  • 在JavaFX中没有的情况下,有没有方法在TableView中为TableCell设置样式? 我尝试了此解决方案https://community.oracle.com/thread/3528543?start=0&tstart=0,但它随机无法突出显示行

  • 我是swift编程的新手,我需要设计带有浮动占位符输入的登录页面。我已经使用POD安装了MDCTextInput。 添加的导入 并且在viewDidLoad()下面添加的代码中, Material iOS Github链接为:material-components-ios

  • 我有一个材质ui自动完成元素 当我单击按钮时,我希望这个元素得到焦点。 我尝试使用这里描述的引用,如何以编程方式对焦点输入作出反应 它适用于其他元素,但不适用于自动完成 请帮忙

  • 我想得到一个文本字段,每当我点击/点击/聚焦该字段时,它可以选择该字段中当前的全部文本。我自己也在其他React应用程序中使用了一个执行,但这种方法似乎不适用于材质UI。使用Material UI TextFields,我可以看到所选内容简短地覆盖了全文,然后返回到文本末尾闪烁的光标。 你知道怎么做吗?

  • 问题内容: 我有一个用netbeans开发的应用程序,我想在显示面板时将焦点设置为一定。我已经阅读了许多文章,并尝试了各种方法,但没有奏效。主要问题之一是在哪里放置所需的代码,我认为在我的情况下是 有一些指示使用Window Listener的帖子,但是随着netbeans生成GUI,我无法看到如何实现接口,因为我无法编辑创建jPANEL等的代码。整个过程非常令人沮丧,我真的没有相信这应该很困难。