You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改MUI TextField非悬浮状态下的标签文字颜色?

解决MUI TextField非悬浮状态标签颜色修改问题

你的问题出在选的类名不对——.MuiInputBase-root-MuiOutlinedInput-root是输入框的容器类,根本管不到标签的颜色。要修改非悬浮(非聚焦)状态的标签,得针对标签本身的类来写样式,同时注意别用动态生成的类名(比如.css-1sumxir-xxx),这类名会随编译变化,用MUI提供的全局类名才稳。

正确的样式写法

直接在sx里替换你那行无效的代码,加上这两个规则:

  • 未输入内容、非聚焦时的标签颜色
  • 已输入内容、标签浮在上方的非聚焦状态颜色

完整代码示例:

<TextField 
    className="w-full my-2"
    id="outlined-basic" 
    label="Distance (miles)" 
    variant="outlined"
    onChange={(e) => {setSearchParams({...searchParams, dist: e.target.value})} }
    sx={{
        // 聚焦时边框颜色
        "&.Mui-focused .MuiOutlinedInput-notchedOutline": {  
            border: "1px solid #3B82F6",
        },

        // 聚焦时标签颜色
        "& .MuiInputLabel-root.Mui-focused": {
            color: "#3B82F6",
        },

        // 默认边框颜色 
        "& .MuiOutlinedInput-notchedOutline": {  
            border: "1px solid #F1F4F9",
        },
        
        // 未输入内容、非聚焦时的标签颜色
        "& .MuiInputLabel-root": {
            color: "#F1F4F9"
        },

        // 已输入内容、标签上浮后的非聚焦颜色(可选,按需添加)
        "& .MuiInputLabel-root.MuiFormLabel-filled": {
            color: "#F1F4F9"
        },

        // 输入框文字颜色(如果需要的话)
        "& .MuiInputBase-input": {
            color: "#F1F4F9"
        }
    }}
/>

额外说明

  • inputProps={{ sx: {color: '#F1F4F9'} }}没用的原因是:inputProps是给原生<input>元素加属性,而MUI的输入框文字样式被内部类覆盖了,直接在sx里选.MuiInputBase-input才管用。
  • 避免用动态类名(比如你之前写的.css-1sumxir-MuiFormLabel-root-MuiInputLabel-root),这类名是MUI编译时随机生成的,换环境可能就失效了,用MuiInputLabel-root这种全局类名才可靠。

内容的提问来源于stack exchange,提问作者strangecarr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 13:15:33