我目前有一个CustomTextField样式的Mui Textfield,当鼠标悬停在上面时,它会改变输入的背景 colored颜色 和字体 colored颜色 .但是,我也想在悬停时更改标签的字体 colored颜色 .目前,输入背景在悬停时从黑色变为白色,而字体 colored颜色 则相反.我希望在悬停时标签 colored颜色 也从白色变为黑色.

我怎样才能做到这一点呢?我try 添加onMouseover和OnMouseLeave事件侦听器并手动设置标签 colored颜色 ,但添加onMouseover侦听器似乎完全 destruct 了Textfield.这是我的代码:

codesandbox.io/s/brave-dew-d472zl?file=/src/App.js

const CustomTextField = styled((props) => (
    <TextField
      InputLabelProps={{
        // getTextColor() checks a state variable called hoveredControl which just stores
        // the id of the currently hovered component. If the hoveredControl is this input,
        // set the text color to black otherwise, set to white.
        sx: { color: getTextColor(props.id) },
      }}
      InputProps={{ disableUnderline: true }}
      {...props}
    />
  ))(({ theme }) => ({
    "& .MuiFilledInput-root": {
      overflow: "hidden",
      borderRadius: 4,
      backgroundColor: "#232323",
      color: "#FFFFFF",
      border: "1px solid",
      borderColor: "#2D3843",
      transition: theme.transitions.create(["border-color", "background-color", "box-shadow"]),
      "&:hover": {
        backgroundColor: "#bdbdbd",
        color: "#000000",
      },
      "&.Mui-focused": {
        color: "#000000",
        backgroundColor: "#bdbdbd",
        boxShadow: `${alpha(theme.palette.primary.main, 0.25)} 0 0 0 2px`,
        borderColor: theme.palette.primary.main,
      },
    },
}));

推荐答案

我通过在设置了样式的TextField组件上使用以下css属性设法解决了这个问题:

"& label.Mui-focused": {
  color: "#000000" // Change label color when input is focused
},
"&:hover label": {
  color: "#000000" // Change label color when input is hovered
}

不需要在状态中存储任何内容,也不需要对MouseOver/MouseEnter侦听器执行任何花哨的操作.

链接到解决方案:https://codesandbox.io/s/brave-dew-d472zl?file=/src/Fixed.js

Css相关问答推荐

当滚动到页脚时,是否可以隐藏固定元素?

如何在元素上打孔才能看到下面的背景图像?

如何缩小 Select 元素的背景图像?

如何使用来自单独模块的代码将自定义标头插入到使用 DT Shiny 呈现的表中?

如何更改 JqGrid 中的pager 背景 colored颜色 ?

如何阻止 Mud Blazor MudTable 列扩展以适合文本

努力将 CSS 样式应用于 Elm 应用程序

semantic-ui-react 使输入使用全宽度可用

图像占用尽可能多的空间但保持宽高比并包含在窗口高度中

整个列的 CSS Grid Margin Top

用css画3个三角形

关键帧不能动画回来

reactjs - 容器中水平行的png图像

你如何调试可打印的 CSS?

滚动到该 div 后如何使 div 固定?

如何更改 Angular Material 上 mat-icon 的大小?

bootstrap 程序中有 7 个相等的列

谷歌浏览器两种元素样式的区别

如何在 iOS 上获取带有 CSS 溢出的滚动条

Select 标签的占位符